mwifiex: fix PCIe hs_cfg cancel cmd timeout
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. Cc: <stable@vger.kernel.org> # 3.10+ 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>
This commit is contained in:
parent
60ce314d17
commit
b7be1522de
|
@ -1155,7 +1155,7 @@ int mwifiex_ret_802_11_hs_cfg(struct mwifiex_private *priv,
|
|||
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 mwifiex_private *priv,
|
|||
}
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue