1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _ATP870U_H 3*4882a593Smuzhiyun #define _ATP870U_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/types.h> 6*4882a593Smuzhiyun #include <linux/kdev_t.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun /* I/O Port */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define MAX_CDB 12 11*4882a593Smuzhiyun #define MAX_SENSE 14 12*4882a593Smuzhiyun #define qcnt 32 13*4882a593Smuzhiyun #define ATP870U_SCATTER 128 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #define MAX_ADAPTER 8 16*4882a593Smuzhiyun #define MAX_SCSI_ID 16 17*4882a593Smuzhiyun #define ATP870U_MAX_SECTORS 128 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define ATP885_DEVID 0x808A 20*4882a593Smuzhiyun #define ATP880_DEVID1 0x8080 21*4882a593Smuzhiyun #define ATP880_DEVID2 0x8081 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun //#define ED_DBGP 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun struct atp_unit 26*4882a593Smuzhiyun { 27*4882a593Smuzhiyun unsigned long baseport; 28*4882a593Smuzhiyun unsigned long ioport[2]; 29*4882a593Smuzhiyun unsigned long pciport[2]; 30*4882a593Smuzhiyun unsigned char last_cmd[2]; 31*4882a593Smuzhiyun unsigned char in_snd[2]; 32*4882a593Smuzhiyun unsigned char in_int[2]; 33*4882a593Smuzhiyun unsigned char quhd[2]; 34*4882a593Smuzhiyun unsigned char quend[2]; 35*4882a593Smuzhiyun unsigned char global_map[2]; 36*4882a593Smuzhiyun unsigned char host_id[2]; 37*4882a593Smuzhiyun unsigned int working[2]; 38*4882a593Smuzhiyun unsigned short wide_id[2]; 39*4882a593Smuzhiyun unsigned short active_id[2]; 40*4882a593Smuzhiyun unsigned short ultra_map[2]; 41*4882a593Smuzhiyun unsigned short async[2]; 42*4882a593Smuzhiyun unsigned char sp[2][16]; 43*4882a593Smuzhiyun unsigned char r1f[2][16]; 44*4882a593Smuzhiyun struct scsi_cmnd *quereq[2][qcnt]; 45*4882a593Smuzhiyun struct atp_id 46*4882a593Smuzhiyun { 47*4882a593Smuzhiyun unsigned char dirct; 48*4882a593Smuzhiyun unsigned char devsp; 49*4882a593Smuzhiyun unsigned char devtype; 50*4882a593Smuzhiyun unsigned long tran_len; 51*4882a593Smuzhiyun unsigned long last_len; 52*4882a593Smuzhiyun unsigned char *prd_pos; 53*4882a593Smuzhiyun unsigned char *prd_table; /* Kernel address of PRD table */ 54*4882a593Smuzhiyun dma_addr_t prd_bus; /* Bus address of PRD */ 55*4882a593Smuzhiyun dma_addr_t prdaddr; /* Dynamically updated in driver */ 56*4882a593Smuzhiyun struct scsi_cmnd *curr_req; 57*4882a593Smuzhiyun } id[2][16]; 58*4882a593Smuzhiyun struct Scsi_Host *host; 59*4882a593Smuzhiyun struct pci_dev *pdev; 60*4882a593Smuzhiyun unsigned int unit; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun #endif 64