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