diff options
| author | Benjamin Tissoires <benjamin.tissoires@gmail.com> | 2011-09-21 16:56:54 +0200 | 
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2011-09-26 14:18:18 +0200 | 
| commit | b77c3920e90e96103e4f41442999402925fe5f73 (patch) | |
| tree | 04df6c729a1e9b3afaa8e8f06b51fede1ef57779 /drivers/hid/hid-input.c | |
| parent | a062cc5a76fa1d12f0821e56e3746cad2dc2fc65 (diff) | |
| download | olio-linux-3.10-b77c3920e90e96103e4f41442999402925fe5f73.tar.xz olio-linux-3.10-b77c3920e90e96103e4f41442999402925fe5f73.zip  | |
HID: add autodetection of multitouch devices
As mentioned by http://www.microsoft.com/whdc/device/input/DigitizerDrvs_touch.mspx
multitouch devices are those that have the input report HID_CONTACTID.
This patch detects this and unloads the generic-usb driver.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-input.c')
| -rw-r--r-- | drivers/hid/hid-input.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 6559e2e3364..f333139d1a4 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -474,6 +474,10 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel  			map_key_clear(BTN_STYLUS2);  			break; +		case 0x51: /* ContactID */ +			device->quirks |= HID_QUIRK_MULTITOUCH; +			goto unknown; +  		default:  goto unknown;  		}  		break; @@ -978,6 +982,13 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)  		}  	} +	if (hid->quirks & HID_QUIRK_MULTITOUCH) { +		/* generic hid does not know how to handle multitouch devices */ +		if (hidinput) +			goto out_cleanup; +		goto out_unwind; +	} +  	if (hidinput && input_register_device(hidinput->input))  		goto out_cleanup;  |