diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli4.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli4.h | 21 |
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 | ||
594 | enum lpfc_sge_type { | 613 | enum lpfc_sge_type { |