Hi Kalle, On Thu, Jan 31, 2019 at 11:23 AM Siva Rebbagondla <siva8118@xxxxxxxxx> wrote: > > From: Siva Rebbagondla <siva.rebbagondla@xxxxxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxxxxx> > --- > drivers/net/wireless/rsi/rsi_91x_sdio.c | 15 +++++++++++++++ > drivers/net/wireless/rsi/rsi_91x_usb.c | 6 ++++++ > 2 files changed, 21 insertions(+) > > diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c b/drivers/net/wireless/rsi/rsi_91x_sdio.c > index b412b65e..4005c1d 100644 > --- a/drivers/net/wireless/rsi/rsi_91x_sdio.c > +++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c > @@ -1132,6 +1132,11 @@ static void rsi_disconnect(struct sdio_func *pfunction) > rsi_mac80211_detach(adapter); > mdelay(10); > > + if (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); > > @@ -1308,6 +1313,11 @@ static int rsi_freeze(struct device *dev) > rsi_dbg(ERR_ZONE, > "##### Device can not wake up through WLAN\n"); > > + if (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) > @@ -1355,6 +1365,11 @@ static void rsi_shutdown(struct device *dev) > if (rsi_config_wowlan(adapter, wowlan)) > rsi_dbg(ERR_ZONE, "Failed to configure WoWLAN\n"); > > + if (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) > diff --git a/drivers/net/wireless/rsi/rsi_91x_usb.c b/drivers/net/wireless/rsi/rsi_91x_usb.c > index f360690..38b4880b 100644 > --- a/drivers/net/wireless/rsi/rsi_91x_usb.c > +++ b/drivers/net/wireless/rsi/rsi_91x_usb.c > @@ -816,6 +816,12 @@ static void rsi_disconnect(struct usb_interface *pfunction) > return; > > rsi_mac80211_detach(adapter); > + > + if (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); > -- > 2.5.5 > Kindly ignore this patch series as kbuild test got failed. It is because of "rsi_bt_ops". These ops are defined in drivers/bluetooth/btrsi.c and this file is under CONFIG_RSI_COEX flag. I was overlooked on this. As you suggested in v1 series, I will resend these patches with "IS_ENABLED(CONFIG_RSI_COEX)" check. Thanks, Siva Rebbagondla