Browse Source

wil6210: Never delete Rx chain with firmware

Firmware crash on attempt to delete Rx chain.
Driver part of Rx chain removed only in preparation for the target reset;
as reset is the only flow that removes Rx chain in the firmware.

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Vladimir Kondratiev 12 years ago
parent
commit
2acb4220b2

+ 1 - 3
drivers/net/wireless/ath/wil6210/txrx.c

@@ -511,10 +511,8 @@ void wil_rx_fini(struct wil6210_priv *wil)
 {
 	struct vring *vring = &wil->vring_rx;
 
-	if (vring->va) {
-		wmi_rx_chain_del(wil);
+	if (vring->va)
 		wil_vring_free(wil, vring, 0);
-	}
 }
 
 int wil_vring_init_tx(struct wil6210_priv *wil, int id, int size,

+ 0 - 1
drivers/net/wireless/ath/wil6210/wil6210.h

@@ -327,7 +327,6 @@ int wmi_add_cipher_key(struct wil6210_priv *wil, u8 key_index,
 		       const void *mac_addr, int key_len, const void *key);
 int wmi_echo(struct wil6210_priv *wil);
 int wmi_set_ie(struct wil6210_priv *wil, u8 type, u16 ie_len, const void *ie);
-int wmi_rx_chain_del(struct wil6210_priv *wil);
 int wmi_rx_chain_add(struct wil6210_priv *wil, struct vring *vring);
 
 int wil6210_init_irq(struct wil6210_priv *wil, int irq);

+ 0 - 22
drivers/net/wireless/ath/wil6210/wmi.c

@@ -902,28 +902,6 @@ int wmi_rx_chain_add(struct wil6210_priv *wil, struct vring *vring)
 	return rc;
 }
 
-int wmi_rx_chain_del(struct wil6210_priv *wil)
-{
-	int rc;
-	struct wmi_cfg_rx_chain_cmd cmd = {
-		.action = cpu_to_le32(WMI_RX_CHAIN_DEL),
-		.rx_sw_ring = {
-			.max_mpdu_size = cpu_to_le16(RX_BUF_LEN),
-		},
-	};
-	struct {
-		struct wil6210_mbox_hdr_wmi wmi;
-		struct wmi_cfg_rx_chain_done_event cfg;
-	} __packed wmi_rx_cfg_reply;
-
-	rc = wmi_call(wil, WMI_CFG_RX_CHAIN_CMDID, &cmd, sizeof(cmd),
-		      WMI_CFG_RX_CHAIN_DONE_EVENTID,
-		      &wmi_rx_cfg_reply, sizeof(wmi_rx_cfg_reply),
-		      100);
-
-	return rc;
-}
-
 void wmi_event_flush(struct wil6210_priv *wil)
 {
 	struct pending_wmi_event *evt, *t;