Re: [PATCH 3/8] rfkill: handle KEY_RADIO and SW_RADIO events

From: Carlos Corbacho
Date: Sat Apr 12 2008 - 15:09:58 EST


On Saturday 12 April 2008 19:14:41 Ivo van Doorn wrote:
> > Separate hot keys/buttons? I haven't seen it, but check commit
> > 90da11514562020ea7d697982f912ac949adc317's comment. That was the commit
> > which added KEY_WLAN and KEY_BLUETOOTH, back in 2.6.18-rc. Maybe ask
> > Lennart Poettering about it?
>
> My laptop (Acer Ferrari 3200) features 2 keys, 1 for 802.11 and 1 for
> Bluetooth. Both directly communicate to the hardware itself and only need
> rfkill for notification purposes to userspace.

The Ferrari's are the odd-one-out of Acer's lineup - these generally tend to
just work out-of-the-box for the wireless and bluetooth buttons.

Most of the other Acer laptops just have software buttons (KEY_WLAN and
KEY_BLUETOOTH), and need another driver to make them do anything (acer-wmi is
one example), and the wireless card has no control over it's rfkill switch
(though there are a few cases where this is apparently not the case).

Although the current wireless driver implementations of rfkill/ input polling
have been causing me a bit of a headache lately, with no nice solution in
site, because of the following (b43 does this, but I suspect rt2x00 may also
do the same, so it's a slightly more generic problem). Now, I have a patch
locally to add rfkill support to acer-wmi, but still keep seeing the
following:

1) acer-wmi loads
2) Press KEY_WLAN
3) rfkill-input notifies all registered KEY_WLAN rfkill drivers that KEY_WLAN
has been pressed.
4) acer-wmi toggles the wireless radio state
5) b43 notices this state change because of it's polling, then sends a
KEY_WLAN event (even though b43 knows it can't control the radio on my
laptop)
6) Goto 3.

And this continues in a loop. Removing the offending input_report_key() lines
in the wireless driver stops this.

Ideally, I think we are going to need some way of saying that platform
firmware level drivers (e.g. acer-wmi, thinkpad-acpi, etc) take priority over
the wireless drivers, and that the drivers should _not_ send out these
KEY_WLAN events if one of acer-wmi, etc are loaded (or find some other nice
way of handling this).

-Carlos
--
E-Mail: carlos@xxxxxxxxxxxxxxxxxxx
Web: strangeworlds.co.uk
GPG Key ID: 0x23EE722D
--
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/