Search Linux Wireless

Re: [v2 2/5] rsi: add hci detach for hibernation and poweroff

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux