diff options
author | Sucheta Chakraborty <sucheta.chakraborty@qlogic.com> | 2010-12-02 15:41:23 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-03 12:33:20 -0500 |
commit | 97319a270da37a5eab14a770f1417d8229245270 (patch) | |
tree | b44c0a44d1ee6f7dc05fdd2a4e03b6a6037639f5 /drivers/net/qlcnic/qlcnic_hw.c | |
parent | 7e300bc8e6736d41e7b92978f415572ac60fd59b (diff) |
qlcnic: Disable loopback support
Loopback mode can not be supported in CNA mode. Removing it until FW is fixed.
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlcnic/qlcnic_hw.c')
-rw-r--r-- | drivers/net/qlcnic/qlcnic_hw.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/drivers/net/qlcnic/qlcnic_hw.c b/drivers/net/qlcnic/qlcnic_hw.c index 7a47a2a7ee27..8630118dc4bb 100644 --- a/drivers/net/qlcnic/qlcnic_hw.c +++ b/drivers/net/qlcnic/qlcnic_hw.c | |||
@@ -1234,56 +1234,3 @@ int qlcnic_config_led(struct qlcnic_adapter *adapter, u32 state, u32 rate) | |||
1234 | 1234 | ||
1235 | return rv; | 1235 | return rv; |
1236 | } | 1236 | } |
1237 | |||
1238 | static int qlcnic_set_fw_loopback(struct qlcnic_adapter *adapter, u32 flag) | ||
1239 | { | ||
1240 | struct qlcnic_nic_req req; | ||
1241 | int rv; | ||
1242 | u64 word; | ||
1243 | |||
1244 | memset(&req, 0, sizeof(struct qlcnic_nic_req)); | ||
1245 | req.qhdr = cpu_to_le64(QLCNIC_HOST_REQUEST << 23); | ||
1246 | |||
1247 | word = QLCNIC_H2C_OPCODE_CONFIG_LOOPBACK | | ||
1248 | ((u64)adapter->portnum << 16); | ||
1249 | req.req_hdr = cpu_to_le64(word); | ||
1250 | req.words[0] = cpu_to_le64(flag); | ||
1251 | |||
1252 | rv = qlcnic_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1); | ||
1253 | if (rv) | ||
1254 | dev_err(&adapter->pdev->dev, | ||
1255 | "%sting loopback mode failed.\n", | ||
1256 | flag ? "Set" : "Reset"); | ||
1257 | return rv; | ||
1258 | } | ||
1259 | |||
1260 | int qlcnic_set_ilb_mode(struct qlcnic_adapter *adapter) | ||
1261 | { | ||
1262 | if (qlcnic_set_fw_loopback(adapter, 1)) | ||
1263 | return -EIO; | ||
1264 | |||
1265 | if (qlcnic_nic_set_promisc(adapter, | ||
1266 | VPORT_MISS_MODE_ACCEPT_ALL)) { | ||
1267 | qlcnic_set_fw_loopback(adapter, 0); | ||
1268 | return -EIO; | ||
1269 | } | ||
1270 | |||
1271 | msleep(1000); | ||
1272 | return 0; | ||
1273 | } | ||
1274 | |||
1275 | void qlcnic_clear_ilb_mode(struct qlcnic_adapter *adapter) | ||
1276 | { | ||
1277 | int mode = VPORT_MISS_MODE_DROP; | ||
1278 | struct net_device *netdev = adapter->netdev; | ||
1279 | |||
1280 | qlcnic_set_fw_loopback(adapter, 0); | ||
1281 | |||
1282 | if (netdev->flags & IFF_PROMISC) | ||
1283 | mode = VPORT_MISS_MODE_ACCEPT_ALL; | ||
1284 | else if (netdev->flags & IFF_ALLMULTI) | ||
1285 | mode = VPORT_MISS_MODE_ACCEPT_MULTI; | ||
1286 | |||
1287 | qlcnic_nic_set_promisc(adapter, mode); | ||
1288 | msleep(1000); | ||
1289 | } | ||