[ath9k-devel] [RFC 1/2] ath9k: work around AR_CFG 0xdeadbeef chip hang

Sven Eckelmann <[email protected]> Thu, 17 Nov 2016 08:23:22 +0100
Newsgroups org.ath9k.lists.ath9k-devel,org.kernel.vger.linux-wireless
Message-ID <1913827.jKK0T8B8yE@bentobox>
On Mittwoch, 16. November 2016 16:16:42 CET Valo, Kalle wrote:
> Sven Eckelmann <[email protected]> writes:
> 
> > From: Simon Wunderlich <[email protected]>
> >
> > QCA 802.11n chips (especially AR9330/AR9340) sometimes end up in a state in
> > which a read of AR_CFG always returns 0xdeadbeef. This should not happen
> > when when the power_mode of the device is ATH9K_PM_AWAKE.
> >
> > This problem is not yet detected by any other workaround in ath9k. No way
> > is known to reproduce the problem easily.
> >
> > Signed-off-by: Simon Wunderlich <[email protected]>
> > [sven.eckelmann at open-mesh.com: port to recent ath9k, add commit message]
> > Signed-off-by: Sven Eckelmann <[email protected]>
> 
> [...]
> 
> > +void ath_hw_hang_work(struct work_struct *work)
> > +{
> > +	struct ath_softc *sc = container_of(work, struct ath_softc,
> > +					    hw_hang_work.work);
> > +
> > +	if (ath_hw_hang_deadbeef(sc))
> > +		goto requeue_worker;
> > +
> > +requeue_worker:
> > +	ieee80211_queue_delayed_work(sc->hw, &sc->hw_hang_work,
> > +				     msecs_to_jiffies(ATH_HANG_WORK_INTERVAL));
> > +}
> 
> The goto doesn't make any sense, either me or the function is missing
> something :)
> 
> 

It is just for the next patch. And yes, could be done differently.

Kind regards,
	Sven
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part.
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20161117/acc1b70e/attachment.pgp