blob: 9b839b1e895a1dd285fc7be1dbda7dcda53b275b [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#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
Linus Torvalds1da177e2005-04-16 15:20:36 -070013
14#define MAX_ADAPTER 8
15#define MAX_SCSI_ID 16
16#define ATP870U_MAX_SECTORS 128
17
18#define ATP885_DEVID 0x808A
19#define ATP880_DEVID1 0x8080
20#define ATP880_DEVID2 0x8081
21
22//#define ED_DBGP
23
24struct atp_unit
25{
26 unsigned long baseport;
27 unsigned long ioport[2];
28 unsigned long pciport[2];
Linus Torvalds1da177e2005-04-16 15:20:36 -070029 unsigned char last_cmd[2];
30 unsigned char in_snd[2];
31 unsigned char in_int[2];
32 unsigned char quhd[2];
33 unsigned char quend[2];
34 unsigned char global_map[2];
Linus Torvalds1da177e2005-04-16 15:20:36 -070035 unsigned char host_id[2];
36 unsigned int working[2];
37 unsigned short wide_id[2];
38 unsigned short active_id[2];
39 unsigned short ultra_map[2];
40 unsigned short async[2];
Linus Torvalds1da177e2005-04-16 15:20:36 -070041 unsigned char sp[2][16];
42 unsigned char r1f[2][16];
43 struct scsi_cmnd *quereq[2][qcnt];
44 struct atp_id
45 {
46 unsigned char dirct;
47 unsigned char devsp;
48 unsigned char devtype;
49 unsigned long tran_len;
50 unsigned long last_len;
51 unsigned char *prd_pos;
James Bottomleyb5683552005-09-15 08:59:36 -050052 unsigned char *prd_table; /* Kernel address of PRD table */
53 dma_addr_t prd_bus; /* Bus address of PRD */
54 dma_addr_t prdaddr; /* Dynamically updated in driver */
Linus Torvalds1da177e2005-04-16 15:20:36 -070055 struct scsi_cmnd *curr_req;
56 } id[2][16];
57 struct Scsi_Host *host;
58 struct pci_dev *pdev;
59 unsigned int unit;
60};
61
62#endif