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