Skip to content

Commit

Permalink
wil6210: Never delete Rx chain with firmware
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Vladimir Kondratiev authored and John W. Linville committed Jan 30, 2013
1 parent afda8bb commit 2acb422
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 26 deletions.
4 changes: 1 addition & 3 deletions drivers/net/wireless/ath/wil6210/txrx.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
1 change: 0 additions & 1 deletion drivers/net/wireless/ath/wil6210/wil6210.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
22 changes: 0 additions & 22 deletions drivers/net/wireless/ath/wil6210/wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 2acb422

Please sign in to comment.