Search Linux Wireless

Re: [PATCH 20/24] iwlegacy: only enable rfkill interrupt during UP

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

 



On Mon, 2012-02-13 at 11:23 +0100, Stanislaw Gruszka wrote:
> Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx>
> ---
>  drivers/net/wireless/iwlegacy/4965-mac.c |    6 ++----
>  1 files changed, 2 insertions(+), 4 deletions(-)

By UP here I'll assume IFF_UP; did the previous code enable the
interrupt while the interface was down too?  The problem we have here is
that if there's no platform rfkill switch, but only the iwlwifi one,
then we don't get notifications of rfkill changes, which breaks showing
in the UI when you can and cannot use the card.

There are various complexities with rfkill here; for example I think for
3945 it used to be that you couldn't UP the interface when it was
rfkilled, so when it was killed (and thus down) you couldn't get
notifications of rfkill change at all, and thus you wouldn't know if you
could start using it again, except to poll (which sucks).

Dan

> diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
> index 24a3bbc..cf14861 100644
> --- a/drivers/net/wireless/iwlegacy/4965-mac.c
> +++ b/drivers/net/wireless/iwlegacy/4965-mac.c
> @@ -5523,13 +5523,11 @@ __il4965_up(struct il_priv *il)
>  	/* If platform's RF_KILL switch is NOT set to KILL */
>  	if (_il_rd(il, CSR_GP_CNTRL) & CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW)
>  		clear_bit(S_RF_KILL_HW, &il->status);
> -	else
> +	else {
>  		set_bit(S_RF_KILL_HW, &il->status);
> -
> -	if (il_is_rfkill(il)) {
>  		wiphy_rfkill_set_hw_state(il->hw->wiphy, true);
>  
> -		il_enable_interrupts(il);
> +		il_enable_rfkill_int(il);
>  		IL_WARN("Radio disabled by HW RF Kill switch\n");
>  		return 0;
>  	}


--
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