#define _ATP870U_H
#include <linux/types.h>
+#include <linux/kdev_t.h>
/* I/O Port */
-#define MAX_CDB 12
-#define MAX_SENSE 14
-#define qcnt 32
-#define ATP870U_SCATTER 128
-#define ATP870U_CMDLUN 1
-
-struct atp_unit {
- unsigned long ioport;
- unsigned long pciport;
- unsigned char last_cmd;
- unsigned char in_snd;
- unsigned char in_int;
- unsigned char quhdu;
- unsigned char quendu;
+#define MAX_CDB 12
+#define MAX_SENSE 14
+#define qcnt 32
+#define ATP870U_SCATTER 128
+#define ATP870U_CMDLUN 1
+
+#define MAX_ADAPTER 8
+#define MAX_SCSI_ID 16
+#define ATP870U_MAX_SECTORS 128
+
+#define ATP885_DEVID 0x808A
+#define ATP880_DEVID1 0x8080
+#define ATP880_DEVID2 0x8081
+
+//#define ED_DBGP
+
+struct atp_unit
+{
+ unsigned long baseport;
+ unsigned long ioport[2];
+ unsigned long pciport[2];
+ unsigned long irq;
+ unsigned char last_cmd[2];
+ unsigned char in_snd[2];
+ unsigned char in_int[2];
+ unsigned char quhd[2];
+ unsigned char quend[2];
+ unsigned char global_map[2];
+ unsigned char chip_ver;
unsigned char scam_on;
- unsigned char global_map;
- unsigned char chip_veru;
- unsigned char host_idu;
- volatile int working;
- unsigned short wide_idu;
- unsigned short active_idu;
- unsigned short ultra_map;
- unsigned short async;
- unsigned short deviceid;
- unsigned char ata_cdbu[16];
- unsigned char sp[16];
- struct scsi_cmnd *querequ[qcnt];
- struct atp_id {
- unsigned char dirctu;
- unsigned char devspu;
- unsigned char devtypeu;
- unsigned long prdaddru;
- unsigned long tran_lenu;
- unsigned long last_lenu;
- unsigned char *prd_posu;
- unsigned char *prd_tableu;
- dma_addr_t prd_phys;
+ unsigned char host_id[2];
+ unsigned int working[2];
+ unsigned short wide_id[2];
+ unsigned short active_id[2];
+ unsigned short ultra_map[2];
+ unsigned short async[2];
+ unsigned short dev_id;
+ unsigned char sp[2][16];
+ unsigned char r1f[2][16];
+ struct scsi_cmnd *quereq[2][qcnt];
+ struct atp_id
+ {
+ unsigned char dirct;
+ unsigned char devsp;
+ unsigned char devtype;
+ unsigned long tran_len;
+ unsigned long last_len;
+ unsigned char *prd_pos;
+ unsigned char *prd_table;
+ dma_addr_t prdaddr;
struct scsi_cmnd *curr_req;
- } id[16];
- struct Scsi_Host *host;
- struct pci_dev *pdev;
+ } id[2][16];
+ struct Scsi_Host *host;
+ struct pci_dev *pdev;
unsigned int unit;
};