[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YmcqsFyCMqcWAEMM@google.com>
Date: Mon, 25 Apr 2022 16:11:44 -0700
From: Brian Norris <briannorris@...omium.org>
To: Abhishek Kumar <kuabhs@...omium.org>
Cc: kvalo@...nel.org, linux-kernel@...r.kernel.org,
linux-wireless@...r.kernel.org, ath10k@...ts.infradead.org,
netdev@...r.kernel.org, Wen Gong <quic_wgong@...cinc.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Subject: Re: [PATCH] ath10k: skip ath10k_halt during suspend for driver state
RESTARTING
On Mon, Apr 25, 2022 at 02:15:20AM +0000, Abhishek Kumar wrote:
> --- a/drivers/net/wireless/ath/ath10k/mac.c
> +++ b/drivers/net/wireless/ath/ath10k/mac.c
> @@ -5345,8 +5345,22 @@ static void ath10k_stop(struct ieee80211_hw *hw)
>
> mutex_lock(&ar->conf_mutex);
> if (ar->state != ATH10K_STATE_OFF) {
> - if (!ar->hw_rfkill_on)
> - ath10k_halt(ar);
> + if (!ar->hw_rfkill_on) {
> + /* If the current driver state is RESTARTING but not yet
> + * fully RESTARTED because of incoming suspend event,
> + * then ath11k_halt is already called via
s/ath11k/ath10k/
I know ath11k is the hot new thing, but this is ath10k ;)
> + * ath10k_core_restart and should not be called here.
s/ath10k/ath11k/
> + */
> + if (ar->state != ATH10K_STATE_RESTARTING)
> + ath10k_halt(ar);
> + else
> + /* Suspending here, because when in RESTARTING
> + * state, ath11k_core_stop skips
s/ath10k/ath11k/
> + * ath10k_wait_for_suspend.
> + */
> + ath10k_wait_for_suspend(ar,
> + WMI_PDEV_SUSPEND_AND_DISABLE_INTR);
> + }
> ar->state = ATH10K_STATE_OFF;
> }
> mutex_unlock(&ar->conf_mutex);
Otherwise, I believe this is the right solution to the problem pointed
out in the commit message:
Reviewed-by: Brian Norris <briannorris@...omium.org>
Powered by blists - more mailing lists