diff options
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/hid-core.c | 6 | ||||
-rw-r--r-- | drivers/hid/hid-picolcd.c | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index ba1c3644e6ac..de8220c3fb5f 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1373,8 +1373,10 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask) | |||
1373 | if ((connect_mask & HID_CONNECT_HIDRAW) && !hidraw_connect(hdev)) | 1373 | if ((connect_mask & HID_CONNECT_HIDRAW) && !hidraw_connect(hdev)) |
1374 | hdev->claimed |= HID_CLAIMED_HIDRAW; | 1374 | hdev->claimed |= HID_CLAIMED_HIDRAW; |
1375 | 1375 | ||
1376 | if (!hdev->claimed) { | 1376 | /* Drivers with the ->raw_event callback set are not required to connect |
1377 | hid_err(hdev, "claimed by neither input, hiddev nor hidraw\n"); | 1377 | * to any other listener. */ |
1378 | if (!hdev->claimed && !hdev->driver->raw_event) { | ||
1379 | hid_err(hdev, "device has no listeners, quitting\n"); | ||
1378 | return -ENODEV; | 1380 | return -ENODEV; |
1379 | } | 1381 | } |
1380 | 1382 | ||
diff --git a/drivers/hid/hid-picolcd.c b/drivers/hid/hid-picolcd.c index 45c3433f7986..74c388dcb5b2 100644 --- a/drivers/hid/hid-picolcd.c +++ b/drivers/hid/hid-picolcd.c | |||
@@ -2613,11 +2613,7 @@ static int picolcd_probe(struct hid_device *hdev, | |||
2613 | goto err_cleanup_data; | 2613 | goto err_cleanup_data; |
2614 | } | 2614 | } |
2615 | 2615 | ||
2616 | /* We don't use hidinput but hid_hw_start() fails if nothing is | ||
2617 | * claimed. So spoof claimed input. */ | ||
2618 | hdev->claimed = HID_CLAIMED_INPUT; | ||
2619 | error = hid_hw_start(hdev, 0); | 2616 | error = hid_hw_start(hdev, 0); |
2620 | hdev->claimed = 0; | ||
2621 | if (error) { | 2617 | if (error) { |
2622 | hid_err(hdev, "hardware start failed\n"); | 2618 | hid_err(hdev, "hardware start failed\n"); |
2623 | goto err_cleanup_data; | 2619 | goto err_cleanup_data; |