Re: eeepc-laptop rfkill, stupid question #4 and 5

From: Alan Jenkins
Date: Fri Oct 31 2008 - 16:55:23 EST


Alan Jenkins wrote:
> Matthew Garrett wrote:
>
>> On Fri, Oct 31, 2008 at 05:09:09PM +0000, Alan Jenkins wrote:
>>
>>
>>> Did you miss a call to rfkill_force_state() on resume?
>>>
>>>
>> Conceivably. I didn't test the hibernation case.
>>
>>
>>
>>> Actually, normal boot doesn't preserve the setting either. Your commit
>>> changes the behaviour from the rfkill state being persistent across
>>> reboot / power off (as a bios setting), to being always enabled on
>>> boot. It seems like a bad idea to me.
>>>
>>>
>> This is the behaviour of the rfkill core.
>>
>>
> Documentation/rfkill.txt implied otherwise
>
> You should:
> - rfkill_allocate()
> - modify rfkill fields (flags, name)
> - modify state to the current hardware state (THIS IS THE ONLY TIME
> YOU CAN ACCESS state DIRECTLY)
> - rfkill_register()
>
>
> Admittedly it doesn't say "and I promise not to gratuitously override
> the state on registration". Buti t seems weird though, to override the
> value on registration
Ah, I see. Wrong end - of course the *rfkill device* doesn't have
useful state. The persistent state belongs to the *rfkill switch* - it
could even be a physical switch.

And now it's clear what was missing from the conversion to rfkill:

2. Input device switches (sources of EV_SW events) DO store their
current state
(so you *must* initialize it by issuing a gratuitous input layer
event on
driver start-up and also when resuming from sleep)

Regards
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/