diff options
| author | Daniel Walker <dwalker@mvista.com> | 2008-07-04 15:23:10 +0200 | 
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2008-07-23 15:25:22 +0200 | 
| commit | a7f32697ed571d8a222ff9e77b9f4476e877ed1a (patch) | |
| tree | 5ce503cf80fb3c4a298ba706814bc891c8972948 | |
| parent | 32146dc90860b3847b945fdb220a7d86c1ead92a (diff) | |
HID: gyration remote support
This adds in a quirk for the additional un-mapped buttons on the
gyration MCE remote.
Defines are now alphabetical.
Signed-off-by: Daniel Walker <dwalker@mvista.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
| -rw-r--r-- | drivers/hid/hid-input-quirks.c | 28 | 
1 files changed, 28 insertions, 0 deletions
| diff --git a/drivers/hid/hid-input-quirks.c b/drivers/hid/hid-input-quirks.c index 9b58cdc24cce..16feea014494 100644 --- a/drivers/hid/hid-input-quirks.c +++ b/drivers/hid/hid-input-quirks.c @@ -89,6 +89,29 @@ static int quirk_logitech_ultrax_remote(struct hid_usage *usage, struct input_de  	return 1;  } +static int quirk_gyration_remote(struct hid_usage *usage, struct input_dev *input, +			      unsigned long **bit, int *max) +{ +	if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR) +		return 0; + +	set_bit(EV_REP, input->evbit); +	switch(usage->hid & HID_USAGE) { +		/* Reported on Gyration MCE Remote */ +		case 0x00d: map_key_clear(KEY_HOME);		break; +		case 0x024: map_key_clear(KEY_DVD);		break; +		case 0x025: map_key_clear(KEY_PVR);		break; +		case 0x046: map_key_clear(KEY_MEDIA);		break; +		case 0x047: map_key_clear(KEY_MP3);		break; +		case 0x049: map_key_clear(KEY_CAMERA);		break; +		case 0x04a: map_key_clear(KEY_VIDEO);		break; + +		default: +			return 0; +	} +	return 1; +} +  static int quirk_chicony_tactical_pad(struct hid_usage *usage, struct input_dev *input,  			      unsigned long **bit, int *max)  { @@ -303,6 +326,9 @@ static int quirk_sunplus_wdesktop(struct hid_usage *usage, struct input_dev *inp  #define VENDOR_ID_EZKEY				0x0518  #define DEVICE_ID_BTC_8193			0x0002 +#define VENDOR_ID_GYRATION			0x0c16 +#define DEVICE_ID_GYRATION_REMOTE		0x0002 +  #define VENDOR_ID_LOGITECH			0x046d  #define DEVICE_ID_LOGITECH_RECEIVER		0xc101  #define DEVICE_ID_S510_RECEIVER			0xc50c @@ -337,6 +363,8 @@ static const struct hid_input_blacklist {  	{ VENDOR_ID_EZKEY, DEVICE_ID_BTC_8193, quirk_btc_8193 }, +	{ VENDOR_ID_GYRATION, DEVICE_ID_GYRATION_REMOTE, quirk_gyration_remote }, +  	{ VENDOR_ID_LOGITECH, DEVICE_ID_LOGITECH_RECEIVER, quirk_logitech_ultrax_remote },  	{ VENDOR_ID_LOGITECH, DEVICE_ID_S510_RECEIVER, quirk_logitech_wireless },  	{ VENDOR_ID_LOGITECH, DEVICE_ID_S510_RECEIVER_2, quirk_logitech_wireless }, | 
