diff options
author | Himanshu Madhani <himanshu.madhani@qlogic.com> | 2013-02-09 04:29:48 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-11 02:04:12 -0500 |
commit | d5fcff04fca9287af3764fb6d32378504ea18582 (patch) | |
tree | 7e070c4d993927d076f569f0b30d5d3a75eb6991 /drivers/net/ethernet/qlogic | |
parent | daaba4fa17d7826807b0b131f796543b4099ef4a (diff) |
qlcnic: fix initialize NIC mailbox command
Register for firmware based Inter Driver Communication (IDC) using initialize
NIC as the first mailbox command
Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | 9 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 6 |
3 files changed, 12 insertions, 7 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index cdcbbb0e40cb..d23372e2a4a3 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | |||
@@ -1239,10 +1239,10 @@ void qlcnic_83xx_register_nic_idc_func(struct qlcnic_adapter *adapter, | |||
1239 | 1239 | ||
1240 | if (enable) { | 1240 | if (enable) { |
1241 | qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INIT_NIC_FUNC); | 1241 | qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INIT_NIC_FUNC); |
1242 | cmd.req.arg[1] = 1 | BIT_0; | 1242 | cmd.req.arg[1] = BIT_0 | BIT_31; |
1243 | } else { | 1243 | } else { |
1244 | qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_STOP_NIC_FUNC); | 1244 | qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_STOP_NIC_FUNC); |
1245 | cmd.req.arg[1] = 0 | BIT_0; | 1245 | cmd.req.arg[1] = BIT_0 | BIT_31; |
1246 | } | 1246 | } |
1247 | status = qlcnic_issue_cmd(adapter, &cmd); | 1247 | status = qlcnic_issue_cmd(adapter, &cmd); |
1248 | if (status) | 1248 | if (status) |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c index f6470027d0fc..c53832b02b3e 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c | |||
@@ -585,6 +585,9 @@ static int qlcnic_83xx_idc_check_fan_failure(struct qlcnic_adapter *adapter) | |||
585 | 585 | ||
586 | static int qlcnic_83xx_idc_reattach_driver(struct qlcnic_adapter *adapter) | 586 | static int qlcnic_83xx_idc_reattach_driver(struct qlcnic_adapter *adapter) |
587 | { | 587 | { |
588 | /* register for NIC IDC AEN Events */ | ||
589 | qlcnic_83xx_register_nic_idc_func(adapter, 1); | ||
590 | |||
588 | qlcnic_83xx_enable_mbx_intrpt(adapter); | 591 | qlcnic_83xx_enable_mbx_intrpt(adapter); |
589 | if ((adapter->flags & QLCNIC_MSIX_ENABLED)) { | 592 | if ((adapter->flags & QLCNIC_MSIX_ENABLED)) { |
590 | if (qlcnic_83xx_config_intrpt(adapter, 1)) { | 593 | if (qlcnic_83xx_config_intrpt(adapter, 1)) { |
@@ -2025,6 +2028,9 @@ int qlcnic_83xx_init(struct qlcnic_adapter *adapter) | |||
2025 | set_bit(QLC_83XX_MBX_READY, &adapter->ahw->idc.status); | 2028 | set_bit(QLC_83XX_MBX_READY, &adapter->ahw->idc.status); |
2026 | qlcnic_83xx_clear_function_resources(adapter); | 2029 | qlcnic_83xx_clear_function_resources(adapter); |
2027 | 2030 | ||
2031 | /* register for NIC IDC AEN Events */ | ||
2032 | qlcnic_83xx_register_nic_idc_func(adapter, 1); | ||
2033 | |||
2028 | if (!qlcnic_83xx_read_flash_descriptor_table(adapter)) | 2034 | if (!qlcnic_83xx_read_flash_descriptor_table(adapter)) |
2029 | qlcnic_83xx_read_flash_mfg_id(adapter); | 2035 | qlcnic_83xx_read_flash_mfg_id(adapter); |
2030 | 2036 | ||
@@ -2041,9 +2047,6 @@ int qlcnic_83xx_init(struct qlcnic_adapter *adapter) | |||
2041 | 2047 | ||
2042 | INIT_DELAYED_WORK(&adapter->idc_aen_work, qlcnic_83xx_idc_aen_work); | 2048 | INIT_DELAYED_WORK(&adapter->idc_aen_work, qlcnic_83xx_idc_aen_work); |
2043 | 2049 | ||
2044 | /* register for NIC IDC AEN Events */ | ||
2045 | qlcnic_83xx_register_nic_idc_func(adapter, 1); | ||
2046 | |||
2047 | /* Periodically monitor device status */ | 2050 | /* Periodically monitor device status */ |
2048 | qlcnic_83xx_idc_poll_dev_state(&adapter->fw_work.work); | 2051 | qlcnic_83xx_idc_poll_dev_state(&adapter->fw_work.work); |
2049 | 2052 | ||
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index d0aef32d0390..714124abf69a 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | |||
@@ -1174,8 +1174,6 @@ qlcnic_set_mgmt_operations(struct qlcnic_adapter *adapter) | |||
1174 | 1174 | ||
1175 | qlcnic_dev_set_npar_ready(adapter); | 1175 | qlcnic_dev_set_npar_ready(adapter); |
1176 | 1176 | ||
1177 | if (qlcnic_83xx_check(adapter)) | ||
1178 | qlcnic_83xx_register_nic_idc_func(adapter, 1); | ||
1179 | return err; | 1177 | return err; |
1180 | } | 1178 | } |
1181 | 1179 | ||
@@ -3063,6 +3061,8 @@ static int qlcnic_attach_func(struct pci_dev *pdev) | |||
3063 | } | 3061 | } |
3064 | 3062 | ||
3065 | if (qlcnic_83xx_check(adapter)) { | 3063 | if (qlcnic_83xx_check(adapter)) { |
3064 | /* register for NIC IDC AEN Events */ | ||
3065 | qlcnic_83xx_register_nic_idc_func(adapter, 1); | ||
3066 | err = qlcnic_83xx_setup_mbx_intr(adapter); | 3066 | err = qlcnic_83xx_setup_mbx_intr(adapter); |
3067 | if (err) { | 3067 | if (err) { |
3068 | dev_err(&adapter->pdev->dev, | 3068 | dev_err(&adapter->pdev->dev, |
@@ -3224,6 +3224,8 @@ int qlcnic_set_max_rss(struct qlcnic_adapter *adapter, u8 data, size_t len) | |||
3224 | } | 3224 | } |
3225 | 3225 | ||
3226 | if (qlcnic_83xx_check(adapter)) { | 3226 | if (qlcnic_83xx_check(adapter)) { |
3227 | /* register for NIC IDC AEN Events */ | ||
3228 | qlcnic_83xx_register_nic_idc_func(adapter, 1); | ||
3227 | err = qlcnic_83xx_setup_mbx_intr(adapter); | 3229 | err = qlcnic_83xx_setup_mbx_intr(adapter); |
3228 | if (err) { | 3230 | if (err) { |
3229 | dev_err(&adapter->pdev->dev, | 3231 | dev_err(&adapter->pdev->dev, |