From c9c5c64882b8a20f961e11f32852e3f278cdbc5e Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Fri, 20 Jul 2012 11:49:09 +0200 Subject: [PATCH] --- yaml --- r: 316061 b: refs/heads/master c: 4bc19f62c57b8ccdd1c48e875752bd59abfb7aae h: refs/heads/master i: 316059: 3fa31d274315968deeee3432d4e8cabbb7e3968f v: v3 --- [refs] | 2 +- trunk/drivers/hid/hid-core.c | 6 ++++-- trunk/drivers/hid/hid-picolcd.c | 4 ---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index e91415941d34..69ffaf14f60f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ff9bf5a2eff6e726406bcc097e8a578822d38859 +refs/heads/master: 4bc19f62c57b8ccdd1c48e875752bd59abfb7aae diff --git a/trunk/drivers/hid/hid-core.c b/trunk/drivers/hid/hid-core.c index ba1c3644e6ac..de8220c3fb5f 100644 --- a/trunk/drivers/hid/hid-core.c +++ b/trunk/drivers/hid/hid-core.c @@ -1373,8 +1373,10 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask) if ((connect_mask & HID_CONNECT_HIDRAW) && !hidraw_connect(hdev)) hdev->claimed |= HID_CLAIMED_HIDRAW; - if (!hdev->claimed) { - hid_err(hdev, "claimed by neither input, hiddev nor hidraw\n"); + /* Drivers with the ->raw_event callback set are not required to connect + * to any other listener. */ + if (!hdev->claimed && !hdev->driver->raw_event) { + hid_err(hdev, "device has no listeners, quitting\n"); return -ENODEV; } diff --git a/trunk/drivers/hid/hid-picolcd.c b/trunk/drivers/hid/hid-picolcd.c index 45c3433f7986..74c388dcb5b2 100644 --- a/trunk/drivers/hid/hid-picolcd.c +++ b/trunk/drivers/hid/hid-picolcd.c @@ -2613,11 +2613,7 @@ static int picolcd_probe(struct hid_device *hdev, goto err_cleanup_data; } - /* We don't use hidinput but hid_hw_start() fails if nothing is - * claimed. So spoof claimed input. */ - hdev->claimed = HID_CLAIMED_INPUT; error = hid_hw_start(hdev, 0); - hdev->claimed = 0; if (error) { hid_err(hdev, "hardware start failed\n"); goto err_cleanup_data;