From: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: rfkill rewrite bug
Date: Sat, 18 Apr 2009 16:49:11 +0100 [thread overview]
Message-ID: <49E9F677.80109@tuffmail.co.uk> (raw)
In-Reply-To: <1240057470.4755.7.camel@johannes.local>
Johannes Berg wrote:
> On Sat, 2009-04-18 at 10:43 +0100, Alan Jenkins wrote:
>
>
>>>> When I looked at the code earlier, I saw no obvious replacement for
>>>> rfkill_set_default(). So I tried disabling the wireless and rebooting
>>>> to see what happened. It didn't like that :-).
>>>>
>>>>
>>> Ok that wasn't too hard -- try this on top if you get a chance:
>>>
>>>
>> Great, that fixes the crash.
>>
>>
>> 1) I think we need to add a resume method to eeepc-laptop.
>>
>> Without this, funny things happen when I hibernate, disable wireless in
>> the BIOS, and resume:
>>
>> ath5k phy0: failed to wake up the MAC chip
>>
>> It's an really stupid thing to do, but it can happen. It's bad from a
>> UI point of view. E.g. in network-manager, you can see a "wlan0"
>> device, but it doesn't work.
>>
>> The EEE rfkill is unusual in that it hotplugs the PCI device, making
>> eeepc-laptop something like a custom pci hotplug driver. With your
>> rewrite, eeepc-laptop doesn't notice the state change on resume.
>> Previously, the rfkill-core would restore the pre-hibernation state,
>> which would sort everything out. I don't think anything else does this,
>> so we can just add a resume method to eeepc-laptop. The resume method
>> would re-check the state and do the PCI hotplug dance if necessary.
>>
>> If you agree, I can do the patch for this and send it to you.
>>
>
> Sounds good to me, yeah.
>
> I could make the rfkill core do that at resume, but I'm not really sure
> it's what we want -- there are too many cases imho:
> * hard rfkill might have changed
> * soft rfkill might still be ok in hw
> * soft rfkill might need reconfiguring
> etc. I think generally it's saner to let the driver sort it out -- it
> can always ask for the current state by using set_hw_state() or so.
>
>
>> 2) Do you have any thoughts about an rfkill_set_default() equivalent?
>> AFAICS your current patch simply removes it.
>>
>> This means that when I boot linux, it doesn't respect the previous
>> rfkill state. I can no longer disable the wireless in the BIOS setup
>> screen, and the rfkill state won't be preserved over reboots.
>>
>> I don't have a strong feeling about reboots _on their own_. But I would
>> be annoyed if the option in the BIOS setup screen stopped working in a
>> future version of linux. Admittedly it's only a matter of principle /
>> nostalgia - since the eeepc-laptop was fixed to implement rfkill
>> properly, I've never used the BIOS option in anger.
>>
>
> That's odd, I thought I added a set_sw_state() to rfkill which would
> disable that rfkill. But there's rfkill_set_global_sw_state() which
> should do what you want -- can you try replacing the EEE set_sw_state
> call with that?
>
> johannes
>
Well, I think the problem is clear :-P.
if (!(rfkill_states_default_locked & BIT(rfkill->type))) {
/* first of its kind */
BUILD_BUG_ON(NUM_RFKILL_TYPES >
sizeof(rfkill_states_default_locked) * 8);
rfkill_states_default_locked |= BIT(rfkill->type);
rfkill_global_states[rfkill->type].cur =
rfkill_global_states[rfkill->type].def;
}
One would expect to see a reference to rfkill->blocked in here.
Alan
next prev parent reply other threads:[~2009-04-18 15:49 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-08 13:37 [PATCH] rfkill: document removal of notifier chain Alan Jenkins
2009-04-08 15:21 ` Johannes Berg
2009-04-08 17:21 ` Alan Jenkins
2009-04-13 19:00 ` rfkill rewrite bug Alan Jenkins
2009-04-13 18:56 ` Johannes Berg
2009-04-14 20:46 ` Johannes Berg
2009-04-18 8:17 ` Alan Jenkins
2009-04-18 8:15 ` Johannes Berg
2009-04-18 8:28 ` Johannes Berg
2009-04-18 9:43 ` Alan Jenkins
2009-04-18 12:24 ` Johannes Berg
2009-04-18 13:29 ` Rfkill rewrite: eeepc-laptop resume Alan Jenkins
2009-04-18 13:33 ` Johannes Berg
2009-04-18 14:02 ` Alan Jenkins
2009-04-18 14:10 ` Johannes Berg
2009-04-18 15:49 ` Alan Jenkins [this message]
2009-04-18 15:57 ` rfkill rewrite bug Johannes Berg
2009-04-18 17:48 ` Alan Jenkins
2009-04-18 17:57 ` Johannes Berg
2009-04-18 18:03 ` Alan Jenkins
2009-04-18 17:42 ` Alan Jenkins
2009-04-18 17:59 ` Johannes Berg
2009-04-20 8:33 ` Alan Jenkins
2009-04-20 8:44 ` Johannes Berg
2009-04-20 9:20 ` Alan Jenkins
2009-04-20 11:28 ` Johannes Berg
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=49E9F677.80109@tuffmail.co.uk \
--to=alan-jenkins@tuffmail.co.uk \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.