aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_sli4.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli4.h')
-rw-r--r--drivers/scsi/lpfc/lpfc_sli4.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli4.h b/drivers/scsi/lpfc/lpfc_sli4.h
index 298c8cd1a89d..9b8cda866176 100644
--- a/drivers/scsi/lpfc/lpfc_sli4.h
+++ b/drivers/scsi/lpfc/lpfc_sli4.h
@@ -39,6 +39,10 @@
39#define LPFC_FCP_IO_CHAN_MIN 1 39#define LPFC_FCP_IO_CHAN_MIN 1
40#define LPFC_FCP_IO_CHAN_MAX 16 40#define LPFC_FCP_IO_CHAN_MAX 16
41 41
42/* Number of channels used for Flash Optimized Fabric (FOF) operations */
43
44#define LPFC_FOF_IO_CHAN_NUM 1
45
42/* 46/*
43 * Provide the default FCF Record attributes used by the driver 47 * Provide the default FCF Record attributes used by the driver
44 * when nonFIP mode is configured and there is no other default 48 * when nonFIP mode is configured and there is no other default
@@ -399,6 +403,7 @@ struct lpfc_pc_sli4_params {
399 uint32_t if_page_sz; 403 uint32_t if_page_sz;
400 uint32_t rq_db_window; 404 uint32_t rq_db_window;
401 uint32_t loopbk_scope; 405 uint32_t loopbk_scope;
406 uint32_t oas_supported;
402 uint32_t eq_pages_max; 407 uint32_t eq_pages_max;
403 uint32_t eqe_size; 408 uint32_t eqe_size;
404 uint32_t cq_pages_max; 409 uint32_t cq_pages_max;
@@ -439,6 +444,8 @@ struct lpfc_sli4_lnk_info {
439 uint8_t lnk_no; 444 uint8_t lnk_no;
440}; 445};
441 446
447#define LPFC_SLI4_HANDLER_CNT (LPFC_FCP_IO_CHAN_MAX+ \
448 LPFC_FOF_IO_CHAN_NUM)
442#define LPFC_SLI4_HANDLER_NAME_SZ 16 449#define LPFC_SLI4_HANDLER_NAME_SZ 16
443 450
444/* Used for IRQ vector to CPU mapping */ 451/* Used for IRQ vector to CPU mapping */
@@ -507,7 +514,7 @@ struct lpfc_sli4_hba {
507 struct lpfc_register sli_intf; 514 struct lpfc_register sli_intf;
508 struct lpfc_pc_sli4_params pc_sli4_params; 515 struct lpfc_pc_sli4_params pc_sli4_params;
509 struct msix_entry *msix_entries; 516 struct msix_entry *msix_entries;
510 uint8_t handler_name[LPFC_FCP_IO_CHAN_MAX][LPFC_SLI4_HANDLER_NAME_SZ]; 517 uint8_t handler_name[LPFC_SLI4_HANDLER_CNT][LPFC_SLI4_HANDLER_NAME_SZ];
511 struct lpfc_fcp_eq_hdl *fcp_eq_hdl; /* FCP per-WQ handle */ 518 struct lpfc_fcp_eq_hdl *fcp_eq_hdl; /* FCP per-WQ handle */
512 519
513 /* Pointers to the constructed SLI4 queues */ 520 /* Pointers to the constructed SLI4 queues */
@@ -527,6 +534,17 @@ struct lpfc_sli4_hba {
527 uint32_t ulp0_mode; /* ULP0 protocol mode */ 534 uint32_t ulp0_mode; /* ULP0 protocol mode */
528 uint32_t ulp1_mode; /* ULP1 protocol mode */ 535 uint32_t ulp1_mode; /* ULP1 protocol mode */
529 536
537 struct lpfc_queue *fof_eq; /* Flash Optimized Fabric Event queue */
538
539 /* Optimized Access Storage specific queues/structures */
540
541 struct lpfc_queue *oas_cq; /* OAS completion queue */
542 struct lpfc_queue *oas_wq; /* OAS Work queue */
543 struct lpfc_sli_ring *oas_ring;
544 uint64_t oas_next_lun;
545 uint8_t oas_next_tgt_wwpn[8];
546 uint8_t oas_next_vpt_wwpn[8];
547
530 /* Setup information for various queue parameters */ 548 /* Setup information for various queue parameters */
531 int eq_esize; 549 int eq_esize;
532 int eq_ecount; 550 int eq_ecount;
@@ -589,6 +607,7 @@ struct lpfc_sli4_hba {
589 struct lpfc_vector_map_info *cpu_map; 607 struct lpfc_vector_map_info *cpu_map;
590 uint16_t num_online_cpu; 608 uint16_t num_online_cpu;
591 uint16_t num_present_cpu; 609 uint16_t num_present_cpu;
610 uint16_t curr_disp_cpu;
592}; 611};
593 612
594enum lpfc_sge_type { 613enum lpfc_sge_type {