aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa/bfad.c
diff options
context:
space:
mode:
authorKrishna Gudipati <kgudipat@brocade.com>2011-06-13 18:53:04 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-06-29 16:52:21 -0400
commitbe540a991e2097c313d7304e0daaf89d68011bb9 (patch)
treea44685889c9989546ffac1ee7ad1da7dd641c20c /drivers/scsi/bfa/bfad.c
parent8b070b4a022f86dd5098308e36426ce29b6b8960 (diff)
[SCSI] bfa: FC credit recovery and misc bug fixes.
- Introduce FC credit recovery. - Added module parameter to enable/disable credit recovery. Bug Fixes: - Removed check for ignoring plogi from initiator in switched fabric mode. - The ABTS for PLOGI is going out few millisecs earlier due to FW timer calibration (around 300 miilisecs earlier). So there is a window if an accept comes during this time HBA would have initiated an ABORT. - Added 1 to FC_ELS_TOV for compensating for FW timer. Signed-off-by: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfad.c')
-rw-r--r--drivers/scsi/bfa/bfad.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c
index 57cc50eacb0f..cdf84f67f0c2 100644
--- a/drivers/scsi/bfa/bfad.c
+++ b/drivers/scsi/bfa/bfad.c
@@ -53,6 +53,7 @@ int bfa_log_level = 3; /* WARNING log level */
53int ioc_auto_recover = BFA_TRUE; 53int ioc_auto_recover = BFA_TRUE;
54int bfa_linkup_delay = -1; 54int bfa_linkup_delay = -1;
55int fdmi_enable = BFA_TRUE; 55int fdmi_enable = BFA_TRUE;
56int fc_credit_recovery = BFA_TRUE;
56int pcie_max_read_reqsz; 57int pcie_max_read_reqsz;
57int bfa_debugfs_enable = 1; 58int bfa_debugfs_enable = 1;
58int msix_disable_cb = 0, msix_disable_ct = 0; 59int msix_disable_cb = 0, msix_disable_ct = 0;
@@ -138,6 +139,9 @@ MODULE_PARM_DESC(msix_disable_ct, "Disable Message Signaled Interrupts "
138module_param(fdmi_enable, int, S_IRUGO | S_IWUSR); 139module_param(fdmi_enable, int, S_IRUGO | S_IWUSR);
139MODULE_PARM_DESC(fdmi_enable, "Enables fdmi registration, default=1, " 140MODULE_PARM_DESC(fdmi_enable, "Enables fdmi registration, default=1, "
140 "Range[false:0|true:1]"); 141 "Range[false:0|true:1]");
142module_param(fc_credit_recovery, int, S_IRUGO | S_IWUSR);
143MODULE_PARM_DESC(fc_credit_recovery, "Enables FC Credit Recovery, default=1, "
144 "Range[false:0|true:1]");
141module_param(pcie_max_read_reqsz, int, S_IRUGO | S_IWUSR); 145module_param(pcie_max_read_reqsz, int, S_IRUGO | S_IWUSR);
142MODULE_PARM_DESC(pcie_max_read_reqsz, "PCIe max read request size, default=0 " 146MODULE_PARM_DESC(pcie_max_read_reqsz, "PCIe max read request size, default=0 "
143 "(use system setting), Range[128|256|512|1024|2048|4096]"); 147 "(use system setting), Range[128|256|512|1024|2048|4096]");
@@ -910,6 +914,7 @@ bfad_drv_init(struct bfad_s *bfad)
910 bfad->bfa_fcs.trcmod = bfad->trcmod; 914 bfad->bfa_fcs.trcmod = bfad->trcmod;
911 bfa_fcs_attach(&bfad->bfa_fcs, &bfad->bfa, bfad, BFA_FALSE); 915 bfa_fcs_attach(&bfad->bfa_fcs, &bfad->bfa, bfad, BFA_FALSE);
912 bfad->bfa_fcs.fdmi_enabled = fdmi_enable; 916 bfad->bfa_fcs.fdmi_enabled = fdmi_enable;
917 bfad->bfa_fcs.bbscn_enabled = fc_credit_recovery;
913 spin_unlock_irqrestore(&bfad->bfad_lock, flags); 918 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
914 919
915 bfad->bfad_flags |= BFAD_DRV_INIT_DONE; 920 bfad->bfad_flags |= BFAD_DRV_INIT_DONE;