Search Linux Wireless

Re: [RFT][PATCH] ath5k: Add rfkill_disable module parameter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Nick,

On Mon, Sep 19, 2011 at 9:31 PM, Nick Kossifidis <mickflemm@xxxxxxxxx> wrote:
> Add a module parameter to disable hw rf kill (GPIO interrupt) because in some cases when the card doesn't come with the laptop, EEPROM configuration
> doesn't match laptop's configuration and rf kill interrupt always fires up and disables hw. I thought of moving this to debugfs and make it per-card

i think this seems to happen with a card that comes with laptop.
AR5212802.11abg NIC (rev 01) in the lenovo T61

i just cannot bring up the card again once i toggle the rfkill switch
(unblock -> block -> unblock)
the card is still hard blocked.

quickly, i just commented out those function calls(same as your patch)
 in compat-wireless
ath5k_rfkill_hw_start(ah);
ath5k_rfkill_stop(ah);
as expected the problem disappears, but i can unblock the card via
soft-rfkill even when it is hard blocked.
is it ok to unblock via software unblock when the card is
hard-blocked?. please share your thoughts. meanwhile i will start
comparing ath5k and ath9k for this. thanks!

> but this way it's easier for users and distros to handle.
>
> Signed-off-by: Nick Kossifidis <mickflemm@xxxxxxxxx>
>
> diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
> index e9ea38d..000a65d 100644
> --- a/drivers/net/wireless/ath/ath5k/base.c
> +++ b/drivers/net/wireless/ath/ath5k/base.c
> @@ -80,6 +80,10 @@ static int modparam_fastchanswitch;
>  module_param_named(fastchanswitch, modparam_fastchanswitch, bool, S_IRUGO);
>  MODULE_PARM_DESC(fastchanswitch, "Enable fast channel switching for AR2413/AR5413 radios.");
>
> +static int ath5k_modparam_rfkill_disable;
> +module_param_named(rfkill_disable, ath5k_modparam_rfkill_disable, bool, S_IRUGO);
> +MODULE_PARM_DESC(rfkill_disable, "Disable hw rfkill support (GPIO interrupt).");
> +
>
>  /* Module info */
>  MODULE_AUTHOR("Jiri Slaby");
> @@ -2558,7 +2562,8 @@ int ath5k_start(struct ieee80211_hw *hw)
>        if (ret)
>                goto done;
>
> -       ath5k_rfkill_hw_start(ah);
> +       if (!ath5k_modparam_rfkill_disable)
> +               ath5k_rfkill_hw_start(ah);
>
>        /*
>         * Reset the key cache since some parts do not reset the
> @@ -2643,7 +2648,8 @@ void ath5k_stop(struct ieee80211_hw *hw)
>
>        cancel_delayed_work_sync(&ah->tx_complete_work);
>
> -       ath5k_rfkill_hw_stop(ah);
> +       if (!ath5k_modparam_rfkill_disable)
> +               ath5k_rfkill_hw_stop(ah);
>  }
>
>  /*
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



-- 
shafi
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux