diff options
author | Manish Chopra <manish.chopra@qlogic.com> | 2013-05-23 17:04:35 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-05-25 02:05:05 -0400 |
commit | ee9e8b6c6e167e2400efd26b92b300ff1d3f8e8b (patch) | |
tree | 3d2258659a5ff28b87f5184c96503e3e2b1e3616 /drivers/net/ethernet/qlogic | |
parent | 2343f06a8c9549af27b885d36e26c59771d697f1 (diff) |
qlcnic: Enhance virtual NIC logging
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@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.h | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 36 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 44 |
3 files changed, 41 insertions, 40 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index e6f8beccbf3e..00a09573faab 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | |||
@@ -442,6 +442,7 @@ struct qlcnic_hardware_context { | |||
442 | u16 max_mtu; | 442 | u16 max_mtu; |
443 | u32 msg_enable; | 443 | u32 msg_enable; |
444 | u16 act_pci_func; | 444 | u16 act_pci_func; |
445 | u16 max_pci_func; | ||
445 | 446 | ||
446 | u32 capabilities; | 447 | u32 capabilities; |
447 | u32 capabilities2; | 448 | u32 capabilities2; |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index 1e699e6f29c8..f63a69570256 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | |||
@@ -2134,26 +2134,25 @@ out: | |||
2134 | int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *adapter, | 2134 | int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *adapter, |
2135 | struct qlcnic_pci_info *pci_info) | 2135 | struct qlcnic_pci_info *pci_info) |
2136 | { | 2136 | { |
2137 | struct qlcnic_hardware_context *ahw = adapter->ahw; | ||
2138 | struct device *dev = &adapter->pdev->dev; | ||
2139 | struct qlcnic_cmd_args cmd; | ||
2137 | int i, err = 0, j = 0; | 2140 | int i, err = 0, j = 0; |
2138 | u32 temp; | 2141 | u32 temp; |
2139 | struct qlcnic_cmd_args cmd; | ||
2140 | 2142 | ||
2141 | qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PCI_INFO); | 2143 | qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PCI_INFO); |
2142 | err = qlcnic_issue_cmd(adapter, &cmd); | 2144 | err = qlcnic_issue_cmd(adapter, &cmd); |
2143 | 2145 | ||
2144 | adapter->ahw->act_pci_func = 0; | 2146 | ahw->act_pci_func = 0; |
2145 | if (err == QLCNIC_RCODE_SUCCESS) { | 2147 | if (err == QLCNIC_RCODE_SUCCESS) { |
2146 | pci_info->func_count = cmd.rsp.arg[1] & 0xFF; | 2148 | ahw->max_pci_func = cmd.rsp.arg[1] & 0xFF; |
2147 | dev_info(&adapter->pdev->dev, | ||
2148 | "%s: total functions = %d\n", | ||
2149 | __func__, pci_info->func_count); | ||
2150 | for (i = 2, j = 0; j < QLCNIC_MAX_PCI_FUNC; j++, pci_info++) { | 2149 | for (i = 2, j = 0; j < QLCNIC_MAX_PCI_FUNC; j++, pci_info++) { |
2151 | pci_info->id = cmd.rsp.arg[i] & 0xFFFF; | 2150 | pci_info->id = cmd.rsp.arg[i] & 0xFFFF; |
2152 | pci_info->active = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; | 2151 | pci_info->active = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; |
2153 | i++; | 2152 | i++; |
2154 | pci_info->type = cmd.rsp.arg[i] & 0xFFFF; | 2153 | pci_info->type = cmd.rsp.arg[i] & 0xFFFF; |
2155 | if (pci_info->type == QLCNIC_TYPE_NIC) | 2154 | if (pci_info->type == QLCNIC_TYPE_NIC) |
2156 | adapter->ahw->act_pci_func++; | 2155 | ahw->act_pci_func++; |
2157 | temp = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; | 2156 | temp = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; |
2158 | pci_info->default_port = temp; | 2157 | pci_info->default_port = temp; |
2159 | i++; | 2158 | i++; |
@@ -2165,18 +2164,21 @@ int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *adapter, | |||
2165 | i++; | 2164 | i++; |
2166 | memcpy(pci_info->mac + sizeof(u32), &cmd.rsp.arg[i], 2); | 2165 | memcpy(pci_info->mac + sizeof(u32), &cmd.rsp.arg[i], 2); |
2167 | i = i + 3; | 2166 | i = i + 3; |
2168 | 2167 | if (ahw->op_mode == QLCNIC_MGMT_FUNC) | |
2169 | dev_info(&adapter->pdev->dev, "%s:\n" | 2168 | dev_info(dev, "id = %d active = %d type = %d\n" |
2170 | "\tid = %d active = %d type = %d\n" | 2169 | "\tport = %d min bw = %d max bw = %d\n" |
2171 | "\tport = %d min bw = %d max bw = %d\n" | 2170 | "\tmac_addr = %pM\n", pci_info->id, |
2172 | "\tmac_addr = %pM\n", __func__, | 2171 | pci_info->active, pci_info->type, |
2173 | pci_info->id, pci_info->active, pci_info->type, | 2172 | pci_info->default_port, |
2174 | pci_info->default_port, pci_info->tx_min_bw, | 2173 | pci_info->tx_min_bw, |
2175 | pci_info->tx_max_bw, pci_info->mac); | 2174 | pci_info->tx_max_bw, pci_info->mac); |
2176 | } | 2175 | } |
2176 | if (ahw->op_mode == QLCNIC_MGMT_FUNC) | ||
2177 | dev_info(dev, "Max vNIC functions = %d, active vNIC functions = %d\n", | ||
2178 | ahw->max_pci_func, ahw->act_pci_func); | ||
2179 | |||
2177 | } else { | 2180 | } else { |
2178 | dev_err(&adapter->pdev->dev, "Failed to get PCI Info%d\n", | 2181 | dev_err(dev, "Failed to get PCI Info, error = %d\n", err); |
2179 | err); | ||
2180 | err = -EIO; | 2182 | err = -EIO; |
2181 | } | 2183 | } |
2182 | 2184 | ||
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c index d63b5f728d75..9d0ae11589ce 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | |||
@@ -883,11 +883,12 @@ int qlcnic_82xx_get_pci_info(struct qlcnic_adapter *adapter, | |||
883 | 883 | ||
884 | /* Configure eSwitch for port mirroring */ | 884 | /* Configure eSwitch for port mirroring */ |
885 | int qlcnic_config_port_mirroring(struct qlcnic_adapter *adapter, u8 id, | 885 | int qlcnic_config_port_mirroring(struct qlcnic_adapter *adapter, u8 id, |
886 | u8 enable_mirroring, u8 pci_func) | 886 | u8 enable_mirroring, u8 pci_func) |
887 | { | 887 | { |
888 | struct device *dev = &adapter->pdev->dev; | ||
889 | struct qlcnic_cmd_args cmd; | ||
888 | int err = -EIO; | 890 | int err = -EIO; |
889 | u32 arg1; | 891 | u32 arg1; |
890 | struct qlcnic_cmd_args cmd; | ||
891 | 892 | ||
892 | if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC || | 893 | if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC || |
893 | !(adapter->eswitch[id].flags & QLCNIC_SWITCH_ENABLE)) | 894 | !(adapter->eswitch[id].flags & QLCNIC_SWITCH_ENABLE)) |
@@ -901,13 +902,11 @@ int qlcnic_config_port_mirroring(struct qlcnic_adapter *adapter, u8 id, | |||
901 | err = qlcnic_issue_cmd(adapter, &cmd); | 902 | err = qlcnic_issue_cmd(adapter, &cmd); |
902 | 903 | ||
903 | if (err != QLCNIC_RCODE_SUCCESS) | 904 | if (err != QLCNIC_RCODE_SUCCESS) |
904 | dev_err(&adapter->pdev->dev, | 905 | dev_err(dev, "Failed to configure port mirroring for vNIC function %d on eSwitch %d\n", |
905 | "Failed to configure port mirroring%d on eswitch:%d\n", | ||
906 | pci_func, id); | 906 | pci_func, id); |
907 | else | 907 | else |
908 | dev_info(&adapter->pdev->dev, | 908 | dev_info(dev, "Configured port mirroring for vNIC function %d on eSwitch %d\n", |
909 | "Configured eSwitch %d for port mirroring:%d\n", | 909 | pci_func, id); |
910 | id, pci_func); | ||
911 | qlcnic_free_mbx_args(&cmd); | 910 | qlcnic_free_mbx_args(&cmd); |
912 | 911 | ||
913 | return err; | 912 | return err; |
@@ -1122,14 +1121,13 @@ err_ret: | |||
1122 | return -EIO; | 1121 | return -EIO; |
1123 | } | 1122 | } |
1124 | 1123 | ||
1125 | static int | 1124 | static int __qlcnic_get_eswitch_port_config(struct qlcnic_adapter *adapter, |
1126 | __qlcnic_get_eswitch_port_config(struct qlcnic_adapter *adapter, | 1125 | u32 *arg1, u32 *arg2) |
1127 | u32 *arg1, u32 *arg2) | ||
1128 | { | 1126 | { |
1129 | int err = -EIO; | 1127 | struct device *dev = &adapter->pdev->dev; |
1130 | struct qlcnic_cmd_args cmd; | 1128 | struct qlcnic_cmd_args cmd; |
1131 | u8 pci_func; | 1129 | u8 pci_func = *arg1 >> 8; |
1132 | pci_func = (*arg1 >> 8); | 1130 | int err = -EIO; |
1133 | 1131 | ||
1134 | qlcnic_alloc_mbx_args(&cmd, adapter, | 1132 | qlcnic_alloc_mbx_args(&cmd, adapter, |
1135 | QLCNIC_CMD_GET_ESWITCH_PORT_CONFIG); | 1133 | QLCNIC_CMD_GET_ESWITCH_PORT_CONFIG); |
@@ -1140,12 +1138,11 @@ __qlcnic_get_eswitch_port_config(struct qlcnic_adapter *adapter, | |||
1140 | qlcnic_free_mbx_args(&cmd); | 1138 | qlcnic_free_mbx_args(&cmd); |
1141 | 1139 | ||
1142 | if (err == QLCNIC_RCODE_SUCCESS) | 1140 | if (err == QLCNIC_RCODE_SUCCESS) |
1143 | dev_info(&adapter->pdev->dev, | 1141 | dev_info(dev, "Get eSwitch port config for vNIC function %d\n", |
1144 | "eSwitch port config for pci func %d\n", pci_func); | 1142 | pci_func); |
1145 | else | 1143 | else |
1146 | dev_err(&adapter->pdev->dev, | 1144 | dev_err(dev, "Failed to get eswitch port config for vNIC function %d\n", |
1147 | "Failed to get eswitch port config for pci func %d\n", | 1145 | pci_func); |
1148 | pci_func); | ||
1149 | return err; | 1146 | return err; |
1150 | } | 1147 | } |
1151 | /* Configure eSwitch port | 1148 | /* Configure eSwitch port |
@@ -1158,9 +1155,10 @@ op_type = 1 for port vlan_id | |||
1158 | int qlcnic_config_switch_port(struct qlcnic_adapter *adapter, | 1155 | int qlcnic_config_switch_port(struct qlcnic_adapter *adapter, |
1159 | struct qlcnic_esw_func_cfg *esw_cfg) | 1156 | struct qlcnic_esw_func_cfg *esw_cfg) |
1160 | { | 1157 | { |
1158 | struct device *dev = &adapter->pdev->dev; | ||
1159 | struct qlcnic_cmd_args cmd; | ||
1161 | int err = -EIO, index; | 1160 | int err = -EIO, index; |
1162 | u32 arg1, arg2 = 0; | 1161 | u32 arg1, arg2 = 0; |
1163 | struct qlcnic_cmd_args cmd; | ||
1164 | u8 pci_func; | 1162 | u8 pci_func; |
1165 | 1163 | ||
1166 | if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC) | 1164 | if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC) |
@@ -1217,11 +1215,11 @@ int qlcnic_config_switch_port(struct qlcnic_adapter *adapter, | |||
1217 | qlcnic_free_mbx_args(&cmd); | 1215 | qlcnic_free_mbx_args(&cmd); |
1218 | 1216 | ||
1219 | if (err != QLCNIC_RCODE_SUCCESS) | 1217 | if (err != QLCNIC_RCODE_SUCCESS) |
1220 | dev_err(&adapter->pdev->dev, | 1218 | dev_err(dev, "Failed to configure eswitch for vNIC function %d\n", |
1221 | "Failed to configure eswitch pci func %d\n", pci_func); | 1219 | pci_func); |
1222 | else | 1220 | else |
1223 | dev_info(&adapter->pdev->dev, | 1221 | dev_info(dev, "Configured eSwitch for vNIC function %d\n", |
1224 | "Configured eSwitch for pci func %d\n", pci_func); | 1222 | pci_func); |
1225 | 1223 | ||
1226 | return err; | 1224 | return err; |
1227 | } | 1225 | } |