diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2011-06-13 18:53:04 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-06-29 16:52:21 -0400 |
commit | be540a991e2097c313d7304e0daaf89d68011bb9 (patch) | |
tree | a44685889c9989546ffac1ee7ad1da7dd641c20c /drivers/scsi/bfa/bfad.c | |
parent | 8b070b4a022f86dd5098308e36426ce29b6b8960 (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.c | 5 |
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 */ | |||
53 | int ioc_auto_recover = BFA_TRUE; | 53 | int ioc_auto_recover = BFA_TRUE; |
54 | int bfa_linkup_delay = -1; | 54 | int bfa_linkup_delay = -1; |
55 | int fdmi_enable = BFA_TRUE; | 55 | int fdmi_enable = BFA_TRUE; |
56 | int fc_credit_recovery = BFA_TRUE; | ||
56 | int pcie_max_read_reqsz; | 57 | int pcie_max_read_reqsz; |
57 | int bfa_debugfs_enable = 1; | 58 | int bfa_debugfs_enable = 1; |
58 | int msix_disable_cb = 0, msix_disable_ct = 0; | 59 | int msix_disable_cb = 0, msix_disable_ct = 0; |
@@ -138,6 +139,9 @@ MODULE_PARM_DESC(msix_disable_ct, "Disable Message Signaled Interrupts " | |||
138 | module_param(fdmi_enable, int, S_IRUGO | S_IWUSR); | 139 | module_param(fdmi_enable, int, S_IRUGO | S_IWUSR); |
139 | MODULE_PARM_DESC(fdmi_enable, "Enables fdmi registration, default=1, " | 140 | MODULE_PARM_DESC(fdmi_enable, "Enables fdmi registration, default=1, " |
140 | "Range[false:0|true:1]"); | 141 | "Range[false:0|true:1]"); |
142 | module_param(fc_credit_recovery, int, S_IRUGO | S_IWUSR); | ||
143 | MODULE_PARM_DESC(fc_credit_recovery, "Enables FC Credit Recovery, default=1, " | ||
144 | "Range[false:0|true:1]"); | ||
141 | module_param(pcie_max_read_reqsz, int, S_IRUGO | S_IWUSR); | 145 | module_param(pcie_max_read_reqsz, int, S_IRUGO | S_IWUSR); |
142 | MODULE_PARM_DESC(pcie_max_read_reqsz, "PCIe max read request size, default=0 " | 146 | MODULE_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; |