2009-07-31 02:25:48

by Matthew Garrett

[permalink] [raw]
Subject: [PATCH] dell-laptop: Fix rfkill state queries

The current code in dell-laptop is confused about the hardware rfkill
state. Fix it up such that it's always reported correctly.

Signed-off-by: Matthew Garrett <[email protected]>
---
drivers/platform/x86/dell-laptop.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
index 74909c4..9061111 100644
--- a/drivers/platform/x86/dell-laptop.c
+++ b/drivers/platform/x86/dell-laptop.c
@@ -197,8 +197,8 @@ static void dell_rfkill_query(struct rfkill *rfkill, void *data)
dell_send_request(&buffer, 17, 11);
status = buffer.output[1];

- if (status & BIT(bit))
- rfkill_set_hw_state(rfkill, !!(status & BIT(16)));
+ rfkill_set_sw_state(rfkill, !!(status & BIT(bit)));
+ rfkill_set_hw_state(rfkill, !(status & BIT(16)));
}

static const struct rfkill_ops dell_rfkill_ops = {
--
1.6.2.5



2009-07-31 13:19:36

by Tim Gardner

[permalink] [raw]
Subject: Re: [PATCH] dell-laptop: Fix rfkill state queries

Matthew Garrett wrote:
> The current code in dell-laptop is confused about the hardware rfkill
> state. Fix it up such that it's always reported correctly.
>
> Signed-off-by: Matthew Garrett <[email protected]>
> ---
> drivers/platform/x86/dell-laptop.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
> index 74909c4..9061111 100644
> --- a/drivers/platform/x86/dell-laptop.c
> +++ b/drivers/platform/x86/dell-laptop.c
> @@ -197,8 +197,8 @@ static void dell_rfkill_query(struct rfkill *rfkill, void *data)
> dell_send_request(&buffer, 17, 11);
> status = buffer.output[1];
>
> - if (status & BIT(bit))
> - rfkill_set_hw_state(rfkill, !!(status & BIT(16)));
> + rfkill_set_sw_state(rfkill, !!(status & BIT(bit)));
> + rfkill_set_hw_state(rfkill, !(status & BIT(16)));
> }
>
> static const struct rfkill_ops dell_rfkill_ops = {

This works on an Inspiron 1420 and XPS1330 as far as I was able to test.
The physical rfkill switch sets 'Hard blocked: yes' for 'phy0: Wireless
LAN', and everything returns to normal 'blocked: no' when the switch is
disabled. I was not able to figure out how to get BIT(16) cleared. Is
that a keyboard function? Anyways,

Tested-by: Tim Gardner <[email protected]>

rtg
--
Tim Gardner [email protected] http://www.tpi.com
OR 503-601-0234 x102 MT 406-443-5357

2009-07-31 13:36:35

by Matthew Garrett

[permalink] [raw]
Subject: Re: [PATCH] dell-laptop: Fix rfkill state queries

On Fri, Jul 31, 2009 at 07:19:28AM -0600, Tim Gardner wrote:

> This works on an Inspiron 1420 and XPS1330 as far as I was able to test.
> The physical rfkill switch sets 'Hard blocked: yes' for 'phy0: Wireless
> LAN', and everything returns to normal 'blocked: no' when the switch is
> disabled. I was not able to figure out how to get BIT(16) cleared. Is
> that a keyboard function? Anyways,

Might be Fn+F2.

--
Matthew Garrett | [email protected]

2009-12-10 04:57:08

by Len Brown

[permalink] [raw]
Subject: Re: [PATCH] dell-laptop: Fix rfkill state queries

applied to acpi-test

thanks,
Len Brown, Intel Open Source Technology Center