Re: mwifiex: pcie: implement timeout loop for FW programming doorbell
From: Kalle Valo
Date: Tue Nov 29 2016 - 10:29:06 EST
Brian Norris <briannorris@xxxxxxxxxxxx> wrote:
> Marvell Wifi PCIe modules don't always behave nicely for PCIe power
> management when their firmware hasn't been loaded, particularly after
> suspending the PCIe link one or more times. When this happens, we might
> end up spinning forever in this status-polling tight loop. Let's make
> this less tight by adding a timeout and by sleeping a bit in between
> reads, as we do with the other similar loops.
>
> This prevents us from hogging a CPU even in such pathological cases, and
> allows the FW initialization to just fail gracefully instead.
>
> I chose the same polling parameters as the earlier loop in this
> function, and empirically, I found that this loop never makes it more
> than about 12 cycles in a sane FW init sequence. I had no official
> information on the actual intended latency for this portion of the
> download.
>
> Signed-off-by: Brian Norris <briannorris@xxxxxxxxxxxx>
> Acked-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
Patch applied to wireless-drivers-next.git, thanks.
22dde1ed5a48 mwifiex: pcie: implement timeout loop for FW programming doorbell
--
https://patchwork.kernel.org/patch/9442499/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches