Hello Dmitry, Here is a small patch for wistron_btns that allows laptops having bluetooth or wifi buttons without the bluetooth/wifi hardware to report the key press as a normal key (instead of doing nothing).
It was successfully tested by Andrew Lutomirski on his Acer C300: two more keys working :-) See you, Eric -- If the subsystem is not present, instead of not doing anything, report the key press as a normal key. This is done by modifying at initialization the copied key entry table. Signed-off-by: Eric Piel <[EMAIL PROTECTED]> --- diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c index 72176f3..fe268be 100644 --- a/drivers/input/misc/wistron_btns.c +++ b/drivers/input/misc/wistron_btns.c @@ -1186,7 +1186,7 @@ static int wistron_setkeycode(struct input_dev *dev, int scancode, int keycode) static int __devinit setup_input_dev(void) { - const struct key_entry *key; + struct key_entry *key; struct input_dev *input_dev; int error; @@ -1219,6 +1219,23 @@ static int __devinit setup_input_dev(void) set_bit(key->sw.code, input_dev->swbit); break; + /* if wifi or bluetooth are not available, create normal keys */ + case KE_WIFI: + if (!have_wifi) { + key->type = KE_KEY; + key->keycode = KEY_WLAN; + key--; + } + break; + + case KE_BLUETOOTH: + if (!have_bluetooth) { + key->type = KE_KEY; + key->keycode = KEY_BLUETOOTH; + key--; + } + break; + default: break; }