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.h58
1 files changed, 38 insertions, 20 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli4.h b/drivers/scsi/lpfc/lpfc_sli4.h
index c4483feb8b71..c7217d579e0f 100644
--- a/drivers/scsi/lpfc/lpfc_sli4.h
+++ b/drivers/scsi/lpfc/lpfc_sli4.h
@@ -137,9 +137,11 @@ struct lpfc_sli4_link {
137 uint8_t speed; 137 uint8_t speed;
138 uint8_t duplex; 138 uint8_t duplex;
139 uint8_t status; 139 uint8_t status;
140 uint8_t physical; 140 uint8_t type;
141 uint8_t number;
141 uint8_t fault; 142 uint8_t fault;
142 uint16_t logical_speed; 143 uint16_t logical_speed;
144 uint16_t topology;
143}; 145};
144 146
145struct lpfc_fcf_rec { 147struct lpfc_fcf_rec {
@@ -367,23 +369,39 @@ struct lpfc_sli4_hba {
367 PCI BAR1, control registers */ 369 PCI BAR1, control registers */
368 void __iomem *drbl_regs_memmap_p; /* Kernel memory mapped address for 370 void __iomem *drbl_regs_memmap_p; /* Kernel memory mapped address for
369 PCI BAR2, doorbell registers */ 371 PCI BAR2, doorbell registers */
370 /* BAR0 PCI config space register memory map */ 372 union {
371 void __iomem *UERRLOregaddr; /* Address to UERR_STATUS_LO register */ 373 struct {
372 void __iomem *UERRHIregaddr; /* Address to UERR_STATUS_HI register */ 374 /* IF Type 0, BAR 0 PCI cfg space reg mem map */
373 void __iomem *UEMASKLOregaddr; /* Address to UE_MASK_LO register */ 375 void __iomem *UERRLOregaddr;
374 void __iomem *UEMASKHIregaddr; /* Address to UE_MASK_HI register */ 376 void __iomem *UERRHIregaddr;
375 void __iomem *SLIINTFregaddr; /* Address to SLI_INTF register */ 377 void __iomem *UEMASKLOregaddr;
376 /* BAR1 FCoE function CSR register memory map */ 378 void __iomem *UEMASKHIregaddr;
377 void __iomem *STAregaddr; /* Address to HST_STATE register */ 379 } if_type0;
378 void __iomem *ISRregaddr; /* Address to HST_ISR register */ 380 struct {
379 void __iomem *IMRregaddr; /* Address to HST_IMR register */ 381 /* IF Type 2, BAR 0 PCI cfg space reg mem map. */
380 void __iomem *ISCRregaddr; /* Address to HST_ISCR register */ 382 void __iomem *STATUSregaddr;
381 /* BAR2 VF-0 doorbell register memory map */ 383 void __iomem *CTRLregaddr;
382 void __iomem *RQDBregaddr; /* Address to RQ_DOORBELL register */ 384 void __iomem *ERR1regaddr;
383 void __iomem *WQDBregaddr; /* Address to WQ_DOORBELL register */ 385 void __iomem *ERR2regaddr;
384 void __iomem *EQCQDBregaddr; /* Address to EQCQ_DOORBELL register */ 386 } if_type2;
385 void __iomem *MQDBregaddr; /* Address to MQ_DOORBELL register */ 387 } u;
386 void __iomem *BMBXregaddr; /* Address to BootStrap MBX register */ 388
389 /* IF type 0, BAR1 and if type 2, Bar 0 CSR register memory map */
390 void __iomem *PSMPHRregaddr;
391
392 /* Well-known SLI INTF register memory map. */
393 void __iomem *SLIINTFregaddr;
394
395 /* IF type 0, BAR 1 function CSR register memory map */
396 void __iomem *ISRregaddr; /* HST_ISR register */
397 void __iomem *IMRregaddr; /* HST_IMR register */
398 void __iomem *ISCRregaddr; /* HST_ISCR register */
399 /* IF type 0, BAR 0 and if type 2, BAR 0 doorbell register memory map */
400 void __iomem *RQDBregaddr; /* RQ_DOORBELL register */
401 void __iomem *WQDBregaddr; /* WQ_DOORBELL register */
402 void __iomem *EQCQDBregaddr; /* EQCQ_DOORBELL register */
403 void __iomem *MQDBregaddr; /* MQ_DOORBELL register */
404 void __iomem *BMBXregaddr; /* BootStrap MBX register */
387 405
388 uint32_t ue_mask_lo; 406 uint32_t ue_mask_lo;
389 uint32_t ue_mask_hi; 407 uint32_t ue_mask_hi;
@@ -466,6 +484,7 @@ struct lpfc_sglq {
466 struct list_head clist; 484 struct list_head clist;
467 enum lpfc_sge_type buff_type; /* is this a scsi sgl */ 485 enum lpfc_sge_type buff_type; /* is this a scsi sgl */
468 enum lpfc_sgl_state state; 486 enum lpfc_sgl_state state;
487 struct lpfc_nodelist *ndlp; /* ndlp associated with IO */
469 uint16_t iotag; /* pre-assigned IO tag */ 488 uint16_t iotag; /* pre-assigned IO tag */
470 uint16_t sli4_xritag; /* pre-assigned XRI, (OXID) tag. */ 489 uint16_t sli4_xritag; /* pre-assigned XRI, (OXID) tag. */
471 struct sli4_sge *sgl; /* pre-assigned SGL */ 490 struct sli4_sge *sgl; /* pre-assigned SGL */
@@ -532,7 +551,6 @@ int lpfc_sli4_post_all_rpi_hdrs(struct lpfc_hba *);
532struct lpfc_rpi_hdr *lpfc_sli4_create_rpi_hdr(struct lpfc_hba *); 551struct lpfc_rpi_hdr *lpfc_sli4_create_rpi_hdr(struct lpfc_hba *);
533void lpfc_sli4_remove_rpi_hdrs(struct lpfc_hba *); 552void lpfc_sli4_remove_rpi_hdrs(struct lpfc_hba *);
534int lpfc_sli4_alloc_rpi(struct lpfc_hba *); 553int lpfc_sli4_alloc_rpi(struct lpfc_hba *);
535void __lpfc_sli4_free_rpi(struct lpfc_hba *, int);
536void lpfc_sli4_free_rpi(struct lpfc_hba *, int); 554void lpfc_sli4_free_rpi(struct lpfc_hba *, int);
537void lpfc_sli4_remove_rpis(struct lpfc_hba *); 555void lpfc_sli4_remove_rpis(struct lpfc_hba *);
538void lpfc_sli4_async_event_proc(struct lpfc_hba *); 556void lpfc_sli4_async_event_proc(struct lpfc_hba *);
@@ -548,7 +566,7 @@ int lpfc_sli4_brdreset(struct lpfc_hba *);
548int lpfc_sli4_add_fcf_record(struct lpfc_hba *, struct fcf_record *); 566int lpfc_sli4_add_fcf_record(struct lpfc_hba *, struct fcf_record *);
549void lpfc_sli_remove_dflt_fcf(struct lpfc_hba *); 567void lpfc_sli_remove_dflt_fcf(struct lpfc_hba *);
550int lpfc_sli4_get_els_iocb_cnt(struct lpfc_hba *); 568int lpfc_sli4_get_els_iocb_cnt(struct lpfc_hba *);
551int lpfc_sli4_init_vpi(struct lpfc_hba *, uint16_t); 569int lpfc_sli4_init_vpi(struct lpfc_vport *);
552uint32_t lpfc_sli4_cq_release(struct lpfc_queue *, bool); 570uint32_t lpfc_sli4_cq_release(struct lpfc_queue *, bool);
553uint32_t lpfc_sli4_eq_release(struct lpfc_queue *, bool); 571uint32_t lpfc_sli4_eq_release(struct lpfc_queue *, bool);
554void lpfc_sli4_fcfi_unreg(struct lpfc_hba *, uint16_t); 572void lpfc_sli4_fcfi_unreg(struct lpfc_hba *, uint16_t);