aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc.h')
-rw-r--r--drivers/scsi/lpfc/lpfc.h14
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
49enum 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. */
49struct lpfc_dmabuf { 55struct 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;