Re: athn(4) resets entire chip when switching channels
Date: Sat, 20 Oct 2012 21:16:38 +0200 From: Stefan Sperling s...@openbsd.org This looks like an obvious and accidental coding error. But I have no working athn(4) hardware to confirm that fixing it doesn't do any harm. Can athn(4) users please test this? Thanks. Index: athn.c === RCS file: /cvs/src/sys/dev/ic/athn.c,v retrieving revision 1.74 diff -u -p -r1.74 athn.c --- athn.c20 Oct 2012 09:54:20 - 1.74 +++ athn.c20 Oct 2012 19:07:52 - @@ -915,8 +915,8 @@ athn_switch_chan(struct athn_softc *sc, #ifdef notyet /* AR9280 needs a full reset. */ if (AR_SREV_9280(sc)) -#endif goto reset; +#endif /* If band or bandwidth changes, we need to do a full reset. */ if (c-ic_flags != sc-curchan-ic_flags || I don't think this diff is right. Looking at the Linux code, it seems that the AR9280 indeed always needs a reset when channel switching. So I think the diff you want is: Index: athn.c === RCS file: /cvs/src/sys/dev/ic/athn.c,v retrieving revision 1.74 diff -u -p -r1.74 athn.c --- athn.c 20 Oct 2012 09:54:20 - 1.74 +++ athn.c 21 Oct 2012 10:23:32 - @@ -912,10 +912,8 @@ athn_switch_chan(struct athn_softc *sc, if (error != 0) goto reset; -#ifdef notyet /* AR9280 needs a full reset. */ if (AR_SREV_9280(sc)) -#endif goto reset; /* If band or bandwidth changes, we need to do a full reset. */
athn(4) resets entire chip when switching channels
This looks like an obvious and accidental coding error. But I have no working athn(4) hardware to confirm that fixing it doesn't do any harm. Can athn(4) users please test this? Thanks. Index: athn.c === RCS file: /cvs/src/sys/dev/ic/athn.c,v retrieving revision 1.74 diff -u -p -r1.74 athn.c --- athn.c 20 Oct 2012 09:54:20 - 1.74 +++ athn.c 20 Oct 2012 19:07:52 - @@ -915,8 +915,8 @@ athn_switch_chan(struct athn_softc *sc, #ifdef notyet /* AR9280 needs a full reset. */ if (AR_SREV_9280(sc)) -#endif goto reset; +#endif /* If band or bandwidth changes, we need to do a full reset. */ if (c-ic_flags != sc-curchan-ic_flags ||
Re: athn(4) resets entire chip when switching channels
On Sat, Oct 20, 2012 at 09:16:38PM +0200, Stefan Sperling wrote: This looks like an obvious and accidental coding error. But I have no working athn(4) hardware to confirm that fixing it doesn't do any harm. Can athn(4) users please test this? Thanks. Index: athn.c === RCS file: /cvs/src/sys/dev/ic/athn.c,v retrieving revision 1.74 diff -u -p -r1.74 athn.c --- athn.c20 Oct 2012 09:54:20 - 1.74 +++ athn.c20 Oct 2012 19:07:52 - @@ -915,8 +915,8 @@ athn_switch_chan(struct athn_softc *sc, #ifdef notyet /* AR9280 needs a full reset. */ if (AR_SREV_9280(sc)) -#endif goto reset; +#endif /* If band or bandwidth changes, we need to do a full reset. */ if (c-ic_flags != sc-curchan-ic_flags || If anything the athn0 in my Acer Aspire 1551 works better. Along with the kill switch fix, it now seems to attach quicker to the crappy net at the hospital and I can now reboot the box without losing the athn. My athn is athn0 at pci3 dev 0 function 0 Atheros AR9287 rev 0x01: apic 2 int 17 athn0: AR9287 rev 2 (2T2R), ROM rev 4, address ec:55:f9:3e:18:fa Ken