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

Adrian Chadd adrian at freebsd.org
Mon Mar 12 16:27:12 UTC 2012


Hi!

Would you please create a PR and let me know what the PR number is?

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 <Andre.Albsmeier at siemens.com> 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,
> _______________________________________________
> freebsd-mobile at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
> To unsubscribe, send any mail to "freebsd-mobile-unsubscribe at freebsd.org"


More information about the freebsd-mobile mailing list