mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
rsi: add hci detach for hibernation and poweroff
[ Upstream commit cbde979b33 ]
As we missed to detach HCI, while entering power off or hibernation,
an extra hci interface gets created whenever system is woken up, to
avoid this we added hci_detach() in rsi_disconnect(), rsi_freeze(),
and rsi_shutdown() functions which are invoked for these tests.
This patch fixes the issue
Signed-off-by: Siva Rebbagondla <siva.rebbagondla@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
47ef5cb878
commit
28fc6259cf
@@ -1129,6 +1129,12 @@ static void rsi_disconnect(struct sdio_func *pfunction)
|
||||
rsi_mac80211_detach(adapter);
|
||||
mdelay(10);
|
||||
|
||||
if (IS_ENABLED(CONFIG_RSI_COEX) && adapter->priv->coex_mode > 1 &&
|
||||
adapter->priv->bt_adapter) {
|
||||
rsi_bt_ops.detach(adapter->priv->bt_adapter);
|
||||
adapter->priv->bt_adapter = NULL;
|
||||
}
|
||||
|
||||
/* Reset Chip */
|
||||
rsi_reset_chip(adapter);
|
||||
|
||||
@@ -1305,6 +1311,12 @@ static int rsi_freeze(struct device *dev)
|
||||
rsi_dbg(ERR_ZONE,
|
||||
"##### Device can not wake up through WLAN\n");
|
||||
|
||||
if (IS_ENABLED(CONFIG_RSI_COEX) && common->coex_mode > 1 &&
|
||||
common->bt_adapter) {
|
||||
rsi_bt_ops.detach(common->bt_adapter);
|
||||
common->bt_adapter = NULL;
|
||||
}
|
||||
|
||||
ret = rsi_sdio_disable_interrupts(pfunction);
|
||||
|
||||
if (sdev->write_fail)
|
||||
@@ -1352,6 +1364,12 @@ static void rsi_shutdown(struct device *dev)
|
||||
if (rsi_config_wowlan(adapter, wowlan))
|
||||
rsi_dbg(ERR_ZONE, "Failed to configure WoWLAN\n");
|
||||
|
||||
if (IS_ENABLED(CONFIG_RSI_COEX) && adapter->priv->coex_mode > 1 &&
|
||||
adapter->priv->bt_adapter) {
|
||||
rsi_bt_ops.detach(adapter->priv->bt_adapter);
|
||||
adapter->priv->bt_adapter = NULL;
|
||||
}
|
||||
|
||||
rsi_sdio_disable_interrupts(sdev->pfunction);
|
||||
|
||||
if (sdev->write_fail)
|
||||
|
||||
@@ -818,6 +818,13 @@ static void rsi_disconnect(struct usb_interface *pfunction)
|
||||
return;
|
||||
|
||||
rsi_mac80211_detach(adapter);
|
||||
|
||||
if (IS_ENABLED(CONFIG_RSI_COEX) && adapter->priv->coex_mode > 1 &&
|
||||
adapter->priv->bt_adapter) {
|
||||
rsi_bt_ops.detach(adapter->priv->bt_adapter);
|
||||
adapter->priv->bt_adapter = NULL;
|
||||
}
|
||||
|
||||
rsi_reset_card(adapter);
|
||||
rsi_deinit_usb_interface(adapter);
|
||||
rsi_91x_deinit(adapter);
|
||||
|
||||
Reference in New Issue
Block a user