diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h index 3062b39fbdb9..38ffa8d6e629 100644 --- a/drivers/scsi/lpfc/lpfc.h +++ b/drivers/scsi/lpfc/lpfc.h | |||
@@ -29,9 +29,10 @@ struct lpfc_sli2_slim; | |||
29 | #define LPFC_LC_HBA_Q_DEPTH 1024 /* max cmds per low cost hba */ | 29 | #define LPFC_LC_HBA_Q_DEPTH 1024 /* max cmds per low cost hba */ |
30 | #define LPFC_LP101_HBA_Q_DEPTH 128 /* max cmds per low cost hba */ | 30 | #define LPFC_LP101_HBA_Q_DEPTH 128 /* max cmds per low cost hba */ |
31 | 31 | ||
32 | #define LPFC_CMD_PER_LUN 30 /* max outstanding cmds per lun */ | 32 | #define LPFC_CMD_PER_LUN 3 /* max outstanding cmds per lun */ |
33 | #define LPFC_SG_SEG_CNT 64 /* sg element count per scsi cmnd */ | 33 | #define LPFC_SG_SEG_CNT 64 /* sg element count per scsi cmnd */ |
34 | #define LPFC_IOCB_LIST_CNT 2250 /* list of IOCBs for fast-path usage. */ | 34 | #define LPFC_IOCB_LIST_CNT 2250 /* list of IOCBs for fast-path usage. */ |
35 | #define LPFC_Q_RAMP_UP_INTERVAL 120 /* lun q_depth ramp up interval */ | ||
35 | 36 | ||
36 | /* Define macros for 64 bit support */ | 37 | /* Define macros for 64 bit support */ |
37 | #define putPaddrLow(addr) ((uint32_t) (0xffffffff & (u64)(addr))) | 38 | #define putPaddrLow(addr) ((uint32_t) (0xffffffff & (u64)(addr))) |
@@ -45,6 +46,11 @@ struct lpfc_sli2_slim; | |||
45 | 46 | ||
46 | #define MAX_HBAEVT 32 | 47 | #define MAX_HBAEVT 32 |
47 | 48 | ||
49 | enum lpfc_polling_flags { | ||
50 | ENABLE_FCP_RING_POLLING = 0x1, | ||
51 | DISABLE_FCP_RING_INT = 0x2 | ||
52 | }; | ||
53 | |||
48 | /* Provide DMA memory definitions the driver uses per port instance. */ | 54 | /* Provide DMA memory definitions the driver uses per port instance. */ |
49 | struct lpfc_dmabuf { | 55 | struct lpfc_dmabuf { |
50 | struct list_head list; | 56 | struct list_head list; |
@@ -167,6 +173,7 @@ struct lpfc_hba { | |||
167 | dma_addr_t slim2p_mapping; | 173 | dma_addr_t slim2p_mapping; |
168 | uint16_t pci_cfg_value; | 174 | uint16_t pci_cfg_value; |
169 | 175 | ||
176 | struct semaphore hba_can_block; | ||
170 | uint32_t hba_state; | 177 | uint32_t hba_state; |
171 | 178 | ||
172 | #define LPFC_INIT_START 1 /* Initial state after board reset */ | 179 | #define LPFC_INIT_START 1 /* Initial state after board reset */ |
@@ -286,6 +293,8 @@ struct lpfc_hba { | |||
286 | uint32_t cfg_fcp_bind_method; | 293 | uint32_t cfg_fcp_bind_method; |
287 | uint32_t cfg_discovery_threads; | 294 | uint32_t cfg_discovery_threads; |
288 | uint32_t cfg_max_luns; | 295 | uint32_t cfg_max_luns; |
296 | uint32_t cfg_poll; | ||
297 | uint32_t cfg_poll_tmo; | ||
289 | uint32_t cfg_sg_seg_cnt; | 298 | uint32_t cfg_sg_seg_cnt; |
290 | uint32_t cfg_sg_dma_buf_size; | 299 | uint32_t cfg_sg_dma_buf_size; |
291 | 300 | ||
@@ -337,7 +346,9 @@ struct lpfc_hba { | |||
337 | #define VPD_PORT 0x8 /* valid vpd port data */ | 346 | #define VPD_PORT 0x8 /* valid vpd port data */ |
338 | #define VPD_MASK 0xf /* mask for any vpd data */ | 347 | #define VPD_MASK 0xf /* mask for any vpd data */ |
339 | 348 | ||
349 | struct timer_list fcp_poll_timer; | ||
340 | struct timer_list els_tmofunc; | 350 | struct timer_list els_tmofunc; |
351 | |||
341 | /* | 352 | /* |
342 | * stat counters | 353 | * stat counters |
343 | */ | 354 | */ |
@@ -348,6 +359,7 @@ struct lpfc_hba { | |||
348 | struct lpfc_sysfs_mbox sysfs_mbox; | 359 | struct lpfc_sysfs_mbox sysfs_mbox; |
349 | 360 | ||
350 | /* fastpath list. */ | 361 | /* fastpath list. */ |
362 | spinlock_t scsi_buf_list_lock; | ||
351 | struct list_head lpfc_scsi_buf_list; | 363 | struct list_head lpfc_scsi_buf_list; |
352 | uint32_t total_scsi_bufs; | 364 | uint32_t total_scsi_bufs; |
353 | struct list_head lpfc_iocb_list; | 365 | struct list_head lpfc_iocb_list; |