Work around some rather annoying chip hangs in the AR9331 chip.
If powersave is enabled and there are any transitions to network
or full sleep - even if they're pretty damned brief - eventually
something messes up somewhere and the bus glue between the AR9331
SoC and the AR9331 wifi stops working. It shows up as stuck DMA
and LOCAL_TIMEOUT interrupts.
Both ath9k and the reference driver does a full chip reset if things
get stuck.
So:
- teach the AR9330 HAL about the force_full_reset option I added a couple of years ago;
- if the chip is currently in full-sleep, do a full-reset;
- if TX DMA and/or RX DMA are still enabled (eg, they did get stuck during reset) then do a full-reset.
Tested:
- AR9331 SoC, STA mode