| From b7be1522def9a9988b67afd0be999c50a96394b5 Mon Sep 17 00:00:00 2001 |
| From: Bing Zhao <bzhao@marvell.com> |
| Date: Fri, 20 Sep 2013 19:56:45 -0700 |
| Subject: mwifiex: fix PCIe hs_cfg cancel cmd timeout |
| |
| From: Bing Zhao <bzhao@marvell.com> |
| |
| commit b7be1522def9a9988b67afd0be999c50a96394b5 upstream. |
| |
| For pcie8897, the hs_cfg cancel command (0xe5) times out when host |
| comes out of suspend. This is caused by an incompleted host sleep |
| handshake between driver and firmware. |
| |
| Like SDIO interface, PCIe also needs to go through firmware power |
| save events to complete the handshake for host sleep configuration. |
| Only USB interface doesn't require power save events for hs_cfg. |
| |
| Signed-off-by: Bing Zhao <bzhao@marvell.com> |
| Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/mwifiex/cmdevt.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/wireless/mwifiex/cmdevt.c |
| +++ b/drivers/net/wireless/mwifiex/cmdevt.c |
| @@ -1155,7 +1155,7 @@ int mwifiex_ret_802_11_hs_cfg(struct mwi |
| uint32_t conditions = le32_to_cpu(phs_cfg->params.hs_config.conditions); |
| |
| if (phs_cfg->action == cpu_to_le16(HS_ACTIVATE) && |
| - adapter->iface_type == MWIFIEX_SDIO) { |
| + adapter->iface_type != MWIFIEX_USB) { |
| mwifiex_hs_activated_event(priv, true); |
| return 0; |
| } else { |
| @@ -1167,8 +1167,7 @@ int mwifiex_ret_802_11_hs_cfg(struct mwi |
| } |
| if (conditions != HS_CFG_CANCEL) { |
| adapter->is_hs_configured = true; |
| - if (adapter->iface_type == MWIFIEX_USB || |
| - adapter->iface_type == MWIFIEX_PCIE) |
| + if (adapter->iface_type == MWIFIEX_USB) |
| mwifiex_hs_activated_event(priv, true); |
| } else { |
| adapter->is_hs_configured = false; |