11 #define MAX_PART (1 << NWD_SHIFT)
15 #define IO_NEEDS_RETRY 3
88 # define PERF_MODE_INT 0
89 # define DOORBELL_INT 1
90 # define SIMPLE_MODE_INT 2
91 # define MEMQ_MODE_INT 3
134 #ifdef CONFIG_CISS_SCSI_TAPE
135 struct cciss_scsi_adapter_data_t *scsi_ctlr;
164 #define SA5_DOORBELL 0x20
165 #define SA5_REQUEST_PORT_OFFSET 0x40
166 #define SA5_REPLY_INTR_MASK_OFFSET 0x34
167 #define SA5_REPLY_PORT_OFFSET 0x44
168 #define SA5_INTR_STATUS 0x30
169 #define SA5_SCRATCHPAD_OFFSET 0xB0
171 #define SA5_CTCFG_OFFSET 0xB4
172 #define SA5_CTMEM_OFFSET 0xB8
174 #define SA5_INTR_OFF 0x08
175 #define SA5B_INTR_OFF 0x04
176 #define SA5_INTR_PENDING 0x08
177 #define SA5B_INTR_PENDING 0x04
178 #define FIFO_EMPTY 0xffffffff
179 #define CCISS_FIRMWARE_READY 0xffff0000
181 #define SA5_PERF_INTR_PENDING 0x04
182 #define SA5_PERF_INTR_OFF 0x05
183 #define SA5_OUTDB_STATUS_PERF_BIT 0x01
184 #define SA5_OUTDB_CLEAR_PERF_BIT 0x01
185 #define SA5_OUTDB_CLEAR 0xA0
186 #define SA5_OUTDB_CLEAR_PERF_BIT 0x01
187 #define SA5_OUTDB_STATUS 0x9C
190 #define CISS_ERROR_BIT 0x02
192 #define CCISS_INTR_ON 1
193 #define CCISS_INTR_OFF 0
203 #define CCISS_BOARD_READY_WAIT_SECS (120)
204 #define CCISS_BOARD_NOT_READY_WAIT_SECS (100)
205 #define CCISS_BOARD_READY_POLL_INTERVAL_MSECS (100)
206 #define CCISS_BOARD_READY_ITERATIONS \
207 ((CCISS_BOARD_READY_WAIT_SECS * 1000) / \
208 CCISS_BOARD_READY_POLL_INTERVAL_MSECS)
209 #define CCISS_BOARD_NOT_READY_ITERATIONS \
210 ((CCISS_BOARD_NOT_READY_WAIT_SECS * 1000) / \
211 CCISS_BOARD_READY_POLL_INTERVAL_MSECS)
212 #define CCISS_POST_RESET_PAUSE_MSECS (3000)
213 #define CCISS_POST_RESET_NOOP_INTERVAL_MSECS (4000)
214 #define CCISS_POST_RESET_NOOP_RETRIES (12)
215 #define CCISS_POST_RESET_NOOP_TIMEOUT_MSECS (10000)
258 static void SA5B_intr_mask(
ctlr_info_t *h,
unsigned long val)
275 static void SA5_performant_intr_mask(
ctlr_info_t *h,
unsigned long val)
307 unsigned long register_value
313 printk(
"cciss: Read %lx back from board\n", register_value);
319 printk(
"cciss: FIFO Empty read\n");
322 return ( register_value);
327 static unsigned long SA5_performant_completed(
ctlr_info_t *h)
357 return register_value;
364 unsigned long register_value =
367 printk(
"cciss: intr_pending %lx\n", register_value);
379 unsigned long register_value =
382 printk(
"cciss: intr_pending %lx\n", register_value);
389 static bool SA5_performant_intr_pending(
ctlr_info_t *h)
422 SA5_performant_intr_mask,
424 SA5_performant_intr_pending,
425 SA5_performant_completed,