From 66d61bec697e99476c2fb095f9a6ead3be2e1c21 Mon Sep 17 00:00:00 2001 From: Jiri Kosina Date: Tue, 24 Nov 2009 18:22:20 +0100 Subject: HID: make Media key on Logitech DiNovo Mini work Put proper mapping of Media key on Logitech DiNovo Mini. According to the specification from Logitech webpage, this key is intended to launch a Media center. Reported-by: Stefan Plattner Signed-off-by: Jiri Kosina --- drivers/hid/hid-lg.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'drivers/hid/hid-lg.c') diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c index 0f870a3243ed..4a489785647a 100644 --- a/drivers/hid/hid-lg.c +++ b/drivers/hid/hid-lg.c @@ -89,6 +89,22 @@ static int lg_ultrax_remote_mapping(struct hid_input *hi, return 1; } +static int lg_dinovo_mapping(struct hid_input *hi, struct hid_usage *usage, + unsigned long **bit, int *max) +{ + if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR) + return 0; + + switch (usage->hid & HID_USAGE) { + + case 0x00d: lg_map_key_clear(KEY_MEDIA); break; + default: + return 0; + + } + return 1; +} + static int lg_wireless_mapping(struct hid_input *hi, struct hid_usage *usage, unsigned long **bit, int *max) { @@ -164,6 +180,10 @@ static int lg_input_mapping(struct hid_device *hdev, struct hid_input *hi, lg_ultrax_remote_mapping(hi, usage, bit, max)) return 1; + if (hdev->product == USB_DEVICE_ID_DINOVO_MINI && + lg_dinovo_mapping(hi, usage, bit, max)) + return 1; + if ((quirks & LG_WIRELESS) && lg_wireless_mapping(hi, usage, bit, max)) return 1; -- cgit v1.2.1