aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShahed Shaikh <shahed.shaikh@qlogic.com>2013-10-25 10:38:37 -0400
committerDavid S. Miller <davem@davemloft.net>2013-10-26 00:04:49 -0400
commitd6994ca798f5897a4342f727b21d77e01d92f093 (patch)
tree18769c24f318e7981bbf13759a4a9cfa9c2fc0cb
parent598c45b309eb401510653fed45fe74efae93be4e (diff)
qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx adapter
Only 82xx adapter advertises QLCNIC_FW_CAPABILITY_MORE_CAPS bit. Reading this bit from 83xx adapter causes the driver to skip extra capabilities registers. Because of this, driver was not issuing qlcnic_fw_cmd_set_drv_version() for 83xx adapter. This bug was introduced in commit 8af3f33db05c6d0146ad14905145a5c923770856 ("qlcnic: Add support for 'set driver version' in 83XX"). Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c6
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index 3ca00e05f23d..ace217c447dd 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -2276,9 +2276,9 @@ int qlcnic_83xx_get_nic_info(struct qlcnic_adapter *adapter,
2276 temp = (cmd.rsp.arg[8] & 0x7FFE0000) >> 17; 2276 temp = (cmd.rsp.arg[8] & 0x7FFE0000) >> 17;
2277 npar_info->max_linkspeed_reg_offset = temp; 2277 npar_info->max_linkspeed_reg_offset = temp;
2278 } 2278 }
2279 if (npar_info->capabilities & QLCNIC_FW_CAPABILITY_MORE_CAPS) 2279
2280 memcpy(ahw->extra_capability, &cmd.rsp.arg[16], 2280 memcpy(ahw->extra_capability, &cmd.rsp.arg[16],
2281 sizeof(ahw->extra_capability)); 2281 sizeof(ahw->extra_capability));
2282 2282
2283out: 2283out:
2284 qlcnic_free_mbx_args(&cmd); 2284 qlcnic_free_mbx_args(&cmd);
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 9e61eb867452..d8f4897e9e82 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -1131,7 +1131,10 @@ qlcnic_initialize_nic(struct qlcnic_adapter *adapter)
1131 if (err == -EIO) 1131 if (err == -EIO)
1132 return err; 1132 return err;
1133 adapter->ahw->extra_capability[0] = temp; 1133 adapter->ahw->extra_capability[0] = temp;
1134 } else {
1135 adapter->ahw->extra_capability[0] = 0;
1134 } 1136 }
1137
1135 adapter->ahw->max_mac_filters = nic_info.max_mac_filters; 1138 adapter->ahw->max_mac_filters = nic_info.max_mac_filters;
1136 adapter->ahw->max_mtu = nic_info.max_mtu; 1139 adapter->ahw->max_mtu = nic_info.max_mtu;
1137 1140
@@ -2159,8 +2162,7 @@ void qlcnic_set_drv_version(struct qlcnic_adapter *adapter)
2159 else if (qlcnic_83xx_check(adapter)) 2162 else if (qlcnic_83xx_check(adapter))
2160 fw_cmd = QLCNIC_CMD_83XX_SET_DRV_VER; 2163 fw_cmd = QLCNIC_CMD_83XX_SET_DRV_VER;
2161 2164
2162 if ((ahw->capabilities & QLCNIC_FW_CAPABILITY_MORE_CAPS) && 2165 if (ahw->extra_capability[0] & QLCNIC_FW_CAPABILITY_SET_DRV_VER)
2163 (ahw->extra_capability[0] & QLCNIC_FW_CAPABILITY_SET_DRV_VER))
2164 qlcnic_fw_cmd_set_drv_version(adapter, fw_cmd); 2166 qlcnic_fw_cmd_set_drv_version(adapter, fw_cmd);
2165} 2167}
2166 2168