xref: /linux/drivers/scsi/atp870u.h (revision 4413e16d9d21673bb5048a2e542f1aaa00015c2e)
1 #ifndef _ATP870U_H
2 #define _ATP870U_H
3 
4 #include <linux/types.h>
5 #include <linux/kdev_t.h>
6 
7 /* I/O Port */
8 
9 #define MAX_CDB 	12
10 #define MAX_SENSE 	14
11 #define qcnt	       	32
12 #define ATP870U_SCATTER 	128
13 #define ATP870U_CMDLUN  	1
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 long irq;
31 	unsigned char last_cmd[2];
32 	unsigned char in_snd[2];
33 	unsigned char in_int[2];
34 	unsigned char quhd[2];
35 	unsigned char quend[2];
36 	unsigned char global_map[2];
37 	unsigned char chip_ver;
38 	unsigned char scam_on;
39 	unsigned char host_id[2];
40 	unsigned int working[2];
41 	unsigned short wide_id[2];
42 	unsigned short active_id[2];
43 	unsigned short ultra_map[2];
44 	unsigned short async[2];
45 	unsigned short dev_id;
46 	unsigned char sp[2][16];
47 	unsigned char r1f[2][16];
48 	struct scsi_cmnd *quereq[2][qcnt];
49 	struct atp_id
50 	{
51 		unsigned char dirct;
52 		unsigned char devsp;
53 		unsigned char devtype;
54 		unsigned long tran_len;
55 		unsigned long last_len;
56 		unsigned char *prd_pos;
57 		unsigned char *prd_table;	/* Kernel address of PRD table */
58 		dma_addr_t prd_bus;		/* Bus address of PRD */
59 		dma_addr_t prdaddr;		/* Dynamically updated in driver */
60 		struct scsi_cmnd *curr_req;
61 	} id[2][16];
62     	struct Scsi_Host *host;
63     	struct pci_dev *pdev;
64 	unsigned int unit;
65 };
66 
67 #endif
68