#define RD_REG_BYTE(addr) readb(addr)
#define RD_REG_WORD(addr) readw(addr)
#define RD_REG_DWORD(addr) readl(addr)
+#define RD_REG_BYTE_RELAXED(addr) readb_relaxed(addr)
+#define RD_REG_WORD_RELAXED(addr) readw_relaxed(addr)
+#define RD_REG_DWORD_RELAXED(addr) readl_relaxed(addr)
#define WRT_REG_BYTE(addr, data) writeb(data,addr)
#define WRT_REG_WORD(addr, data) writew(data,addr)
#define WRT_REG_DWORD(addr, data) writel(data,addr)
#define MAX_OUTSTANDING_COMMANDS 1024
/* ISP request and response entry counts (37-65535) */
-#define REQUEST_ENTRY_CNT 2048 /* Number of request entries. */
+#define REQUEST_ENTRY_CNT_2100 128 /* Number of request entries. */
+#define REQUEST_ENTRY_CNT_2200 2048 /* Number of request entries. */
#define RESPONSE_ENTRY_CNT_2100 64 /* Number of response entries.*/
#define RESPONSE_ENTRY_CNT_2300 512 /* Number of response entries.*/
-/* Calculations for SG segments */
-#define SEGS_PER_REQUEST_32 3
-#define SEGS_PER_CONT_32 7
-#define SG_SEGMENTS_32 (SEGS_PER_REQUEST_32 + \
- (SEGS_PER_CONT_32 * (REQUEST_ENTRY_CNT - 2)))
-#define SEGS_PER_REQUEST_64 2
-#define SEGS_PER_CONT_64 5
-#define SG_SEGMENTS_64 (SEGS_PER_REQUEST_64 + \
- (SEGS_PER_CONT_64 * (REQUEST_ENTRY_CNT - 2)))
-
/*
* SCSI Request Block
*/
#define SRB_BUSY BIT_8 /* Command is in busy retry state */
#define SRB_FO_CANCEL BIT_9 /* Command don't need to do failover */
-#define SRB_IOCTL BIT_10 /* IOCTL command. */
+#define SRB_IOCTL BIT_10 /* IOCTL command. */
+#define SRB_TAPE BIT_11 /* FCP2 (Tape) command. */
/*
* SRB state definitions
#define RFT_ID_SNS_CMD_SIZE 60
#define RFT_ID_SNS_DATA_SIZE 16
-#define RFF_ID_SNS_SCMD_LEN 8
-#define RFF_ID_SNS_CMD_SIZE 32
-#define RFF_ID_SNS_DATA_SIZE 16
-
#define RNN_ID_SNS_SCMD_LEN 10
#define RNN_ID_SNS_CMD_SIZE 36
#define RNN_ID_SNS_DATA_SIZE 16
} cmd;
uint8_t rft_data[RFT_ID_SNS_DATA_SIZE];
- uint8_t rff_data[RFF_ID_SNS_DATA_SIZE];
uint8_t rnn_data[RNN_ID_SNS_DATA_SIZE];
uint8_t gan_data[GA_NXT_SNS_DATA_SIZE];
uint8_t gid_data[GID_PT_SNS_DATA_SIZE];
request_t *request_ring_ptr; /* Current address. */
uint16_t req_ring_index; /* Current index. */
uint16_t req_q_cnt; /* Number of available entries. */
+ uint16_t request_q_length;
dma_addr_t response_dma; /* Physical address. */
response_t *response_ring; /* Base virtual address */
uint8_t node_name[WWN_SIZE];
uint8_t nvram_version;
- uint8_t optrom_major;
- uint8_t optrom_minor;
uint32_t isp_abort_cnt;
/* Adapter I/O statistics for failover */