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