Search Linux Wireless

Re: [PATCH] sony-laptop: check for rfkill hard block at load time

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

 



On Thu, 2009-09-24 at 20:15 +0100, Alan Jenkins wrote:
> "I recently (on a flight) I found out that when I boot with the hard-switch
> activated, so turning off all wireless activity on my laptop, the state
> is not correctly announced in /dev/rfkill (reading it with rfkill command,
> or my own gnome applet)...
> 
> After turning off and on again the hard-switch the events were right."
> 
> We can fix this by querying the firmware at load time and calling
> rfkill_set_hw_state().
> 
> Signed-off-by: Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx>
> Tested-by: Norbert Preining <preining@xxxxxxxx>

Looks good, thanks Alan.

Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

> ---
>  drivers/platform/x86/sony-laptop.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
> index dafaa4a..a234a9d 100644
> --- a/drivers/platform/x86/sony-laptop.c
> +++ b/drivers/platform/x86/sony-laptop.c
> @@ -1081,6 +1081,8 @@ static int sony_nc_setup_rfkill(struct acpi_device *device,
>  	struct rfkill *rfk;
>  	enum rfkill_type type;
>  	const char *name;
> +	int result;
> +	bool hwblock;
>  
>  	switch (nc_type) {
>  	case SONY_WIFI:
> @@ -1108,6 +1110,10 @@ static int sony_nc_setup_rfkill(struct acpi_device *device,
>  	if (!rfk)
>  		return -ENOMEM;
>  
> +	sony_call_snc_handle(0x124, 0x200, &result);
> +	hwblock = !(result & 0x1);
> +	rfkill_set_hw_state(rfk, hwblock);
> +
>  	err = rfkill_register(rfk);
>  	if (err) {
>  		rfkill_destroy(rfk);

Attachment: signature.asc
Description: This is a digitally signed message part


[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