From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Norbert Preining <preining@logic.at>,
linux-wireless@vger.kernel.org,
Mattia Dongili <malattia@linux.it>,
"Almer S. Tigelaar" <almer@gnome.org>,
Matthias Welwarsky <matze@welwarsky.de>
Subject: Re: rfkill hard state after booting
Date: Thu, 24 Sep 2009 16:01:06 +0100 [thread overview]
Message-ID: <4ABB89B2.8070302@tuffmail.co.uk> (raw)
In-Reply-To: <1253801252.3868.108.camel@johannes.local>
Johannes Berg wrote:
> On Thu, 2009-09-24 at 15:02 +0200, Norbert Preining 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). All the devices seem to be in normal state but
>> one.
>>
>
> Very strange.
>
>
>> Here some outputs:
>> $ cd /sys/class/rfkill
>> $ ls
>> rfkill0@ rfkill1@ rfkill2@ rfkill3@ rfkill4@ rfkill5@
>> $ cat rfkill?/name
>> sony-wifi
>> sony-bluetooth
>> sony-wwan
>> hso-0
>> hci0
>> phy0
>> $
>>
>> and the three sony-* are the ones for actually turning on/off the devices,
>> but they showed all soft 0 hard 0 at initial startup. Only phy0 (AFAIR)
>> had hard 1.
>>
>
> Makes sense. I mean, that phy0 was hard blocked.
>
>
>> After turning off and on again the hard-switch the events were right.
>>
>
> I can't decide where this bug is. I suspect it's in the sony code.
> Anyone feel responsible for that code?
>
> johannes
>
I think it's pretty clear it's in the sony code. It doesn't call
set_hw_state() during init. I.e. (completely untested):
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);
next prev parent reply other threads:[~2009-09-24 15:06 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-24 13:02 rfkill hard state after booting Norbert Preining
2009-09-24 14:07 ` Johannes Berg
2009-09-24 15:01 ` Alan Jenkins [this message]
2009-09-24 15:05 ` Johannes Berg
2009-09-24 15:12 ` Alan Jenkins
2009-09-24 17:29 ` Johannes Berg
2009-09-24 19:15 ` [PATCH] sony-laptop: check for rfkill hard block at load time Alan Jenkins
2009-09-24 19:24 ` Gábor Stefanik
2009-09-24 20:11 ` Alan Jenkins
2009-09-24 23:04 ` Mattia Dongili
2009-09-24 19:27 ` Johannes Berg
2009-09-24 22:38 ` Mattia Dongili
2009-09-25 9:13 ` Alan Jenkins
2009-09-24 16:19 ` rfkill hard state after booting Norbert Preining
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ABB89B2.8070302@tuffmail.co.uk \
--to=alan-jenkins@tuffmail.co.uk \
--cc=almer@gnome.org \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=malattia@linux.it \
--cc=matze@welwarsky.de \
--cc=preining@logic.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).