Re: [Patch] Reflect state of rfkill switch in a sysctl for ath based card

Andre Albsmeier <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <20120313111126.GA29538@bali>
On Mon, 12-Mar-2012 at 17:27:10 +0100, Adrian Chadd wrote:
> Hi!
> 
> Would you please create a PR and let me know what the PR number is?

Well, there is a high probability that it might not work on
non-5212 cards end even here it might fail (I can just test
it with this Wistron CM9 card). Maybe someone with more
knowledge about ath(4) (Sam?) might have quick look at it
before...

	-Andre

> 
> I'll test it out on my local ath(4) NICs and commit it to -HEAD if
> there aren't any issues with it.
> 
> Thanks!
> 
> 
> Adrian
> 
> 
> On 12 March 2012 08:13, Andre Albsmeier <[email protected]> wrote:
> > Hello all,
> >
> > my laptop (FSC S7020) got this rfkill switch for the normally
> > used Intel 2200 WLAN card. The state of this switch can be
> > seen through the dev.iwi.0.radio sysctl.
> >
> > With my new Atheros based card (Wistron CM9) this never worked
> > although the state of the switch was properly honoured by the
> > card.
> >
> > In case anyone is interested: The following patch brings this
> > functionality to the ath driver of 7.4-STABLE and works at least
> > on the above mentioned hardware. Comments and suggestions (apart
> > from style fixes;-)) are welcome...
> >
> >        -Andre
> >
> > --- sys/dev/ath/if_ath.c.ORI    2010-11-17 18:30:14.000000000 +0100
> > +++ sys/dev/ath/if_ath.c        2012-03-02 13:47:26.000000000 +0100
> > @@ -6074,6 +6074,15 @@
> >        return !ath_hal_settpcts(sc->sc_ah, tpcts) ? EINVAL : 0;
> >  }
> >
> > +static int ath_sysctl_radio( SYSCTL_HANDLER_ARGS )
> > +{
> > +  struct ath_softc* sc = arg1;
> > +  int val;
> > +
> > +  val = ath_hal_gpioget( sc->sc_ah, sc->sc_rfsilentpin ) ^ sc->sc_rfsilentpol;
> > +  return sysctl_handle_int( oidp, &val, 0, req );
> > +}
> > +
> >  static void
> >  ath_sysctlattach(struct ath_softc *sc)
> >  {
> > @@ -6162,6 +6171,7 @@
> >                SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
> >                        "rfkill", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
> >                        ath_sysctl_rfkill, "I", "enable/disable RF kill switch");
> > +  SYSCTL_ADD_PROC( ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "radio", CTLTYPE_INT | CTLFLAG_RD, sc, 0, ath_sysctl_radio, "I", "radio transmitter switch state (0=off, 1=on)");
> >        }
> >        sc->sc_monpass = HAL_RXERR_DECRYPT | HAL_RXERR_MIC;
> >        SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO,
> > _______________________________________________
> > [email protected] mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
> > To unsubscribe, send any mail to "[email protected]"

-- 
FreeBSD: We eat penguins for breakfast
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.