[PATCH v2 1/2] ath10k: Keep track of which interrupts fired, don't poll them
Kalle Valo
kvalo at codeaurora.org
Tue Sep 1 08:06:04 EDT 2020
Douglas Anderson <dianders at chromium.org> wrote:
> If we have a per CE (Copy Engine) IRQ then we have no summary
> register. Right now the code generates a summary register by
> iterating over all copy engines and seeing if they have an interrupt
> pending.
>
> This has a problem. Specifically if _none_ if the Copy Engines have
> an interrupt pending then they might go into low power mode and
> reading from their address space will cause a full system crash. This
> was seen to happen when two interrupts went off at nearly the same
> time. Both were handled by a single call of ath10k_snoc_napi_poll()
> but, because there were two interrupts handled and thus two calls to
> napi_schedule() there was still a second call to
> ath10k_snoc_napi_poll() which ran with no interrupts pending.
>
> Instead of iterating over all the copy engines, let's just keep track
> of the IRQs that fire. Then we can effectively generate our own
> summary without ever needing to read the Copy Engines.
>
> Tested-on: WCN3990 SNOC WLAN.HL.3.2.2-00490-QCAHLSWMTPL-1
>
> Signed-off-by: Douglas Anderson <dianders at chromium.org>
> Reviewed-by: Rakesh Pillai <pillair at codeaurora.org>
> Reviewed-by: Brian Norris <briannorris at chromium.org>
> Signed-off-by: Kalle Valo <kvalo at codeaurora.org>
2 patches applied to ath-next branch of ath.git, thanks.
d66d24ac300c ath10k: Keep track of which interrupts fired, don't poll them
7f8655166512 ath10k: Get rid of "per_ce_irq" hw param
--
https://patchwork.kernel.org/patch/11654625/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath10k
mailing list