1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds #ifndef _ATP870U_H 31da177e4SLinus Torvalds #define _ATP870U_H 41da177e4SLinus Torvalds 51da177e4SLinus Torvalds #include <linux/types.h> 61da177e4SLinus Torvalds #include <linux/kdev_t.h> 71da177e4SLinus Torvalds 81da177e4SLinus Torvalds /* I/O Port */ 91da177e4SLinus Torvalds 101da177e4SLinus Torvalds #define MAX_CDB 12 111da177e4SLinus Torvalds #define MAX_SENSE 14 121da177e4SLinus Torvalds #define qcnt 32 131da177e4SLinus Torvalds #define ATP870U_SCATTER 128 141da177e4SLinus Torvalds 151da177e4SLinus Torvalds #define MAX_ADAPTER 8 161da177e4SLinus Torvalds #define MAX_SCSI_ID 16 171da177e4SLinus Torvalds #define ATP870U_MAX_SECTORS 128 181da177e4SLinus Torvalds 191da177e4SLinus Torvalds #define ATP885_DEVID 0x808A 201da177e4SLinus Torvalds #define ATP880_DEVID1 0x8080 211da177e4SLinus Torvalds #define ATP880_DEVID2 0x8081 221da177e4SLinus Torvalds 231da177e4SLinus Torvalds //#define ED_DBGP 241da177e4SLinus Torvalds 251da177e4SLinus Torvalds struct atp_unit 261da177e4SLinus Torvalds { 271da177e4SLinus Torvalds unsigned long baseport; 281da177e4SLinus Torvalds unsigned long ioport[2]; 291da177e4SLinus Torvalds unsigned long pciport[2]; 301da177e4SLinus Torvalds unsigned char last_cmd[2]; 311da177e4SLinus Torvalds unsigned char in_snd[2]; 321da177e4SLinus Torvalds unsigned char in_int[2]; 331da177e4SLinus Torvalds unsigned char quhd[2]; 341da177e4SLinus Torvalds unsigned char quend[2]; 351da177e4SLinus Torvalds unsigned char global_map[2]; 361da177e4SLinus Torvalds unsigned char host_id[2]; 371da177e4SLinus Torvalds unsigned int working[2]; 381da177e4SLinus Torvalds unsigned short wide_id[2]; 391da177e4SLinus Torvalds unsigned short active_id[2]; 401da177e4SLinus Torvalds unsigned short ultra_map[2]; 411da177e4SLinus Torvalds unsigned short async[2]; 421da177e4SLinus Torvalds unsigned char sp[2][16]; 431da177e4SLinus Torvalds unsigned char r1f[2][16]; 441da177e4SLinus Torvalds struct scsi_cmnd *quereq[2][qcnt]; 451da177e4SLinus Torvalds struct atp_id 461da177e4SLinus Torvalds { 471da177e4SLinus Torvalds unsigned char dirct; 481da177e4SLinus Torvalds unsigned char devsp; 491da177e4SLinus Torvalds unsigned char devtype; 501da177e4SLinus Torvalds unsigned long tran_len; 511da177e4SLinus Torvalds unsigned long last_len; 521da177e4SLinus Torvalds unsigned char *prd_pos; 53b5683557SJames Bottomley unsigned char *prd_table; /* Kernel address of PRD table */ 54b5683557SJames Bottomley dma_addr_t prd_bus; /* Bus address of PRD */ 55b5683557SJames Bottomley dma_addr_t prdaddr; /* Dynamically updated in driver */ 561da177e4SLinus Torvalds struct scsi_cmnd *curr_req; 571da177e4SLinus Torvalds } id[2][16]; 581da177e4SLinus Torvalds struct Scsi_Host *host; 591da177e4SLinus Torvalds struct pci_dev *pdev; 601da177e4SLinus Torvalds unsigned int unit; 611da177e4SLinus Torvalds }; 621da177e4SLinus Torvalds 631da177e4SLinus Torvalds #endif 64