drivers/rtc/rtc-hid-sensor-time.c: enable HID input processing early
authorAlexander Holler <holler@ahsoftware.de>
Thu, 14 Nov 2013 22:32:00 +0000 (14:32 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 15 Nov 2013 00:32:21 +0000 (09:32 +0900)
Enable the processing of HID input records before the RTC will be
registered, in order to allow the RTC register function to read clock.
Without doing that the clock can only be read after the probe function
has finished.

Signed-off-by: Alexander Holler <holler@ahsoftware.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-hid-sensor-time.c

index 1ba369043b8df0528cc9963c08f7c0b2c103e1e4..a34e5cfd2ab5ac9864f20fffeff4a884382e3d12 100644 (file)
@@ -281,11 +281,18 @@ static int hid_time_probe(struct platform_device *pdev)
                goto err_open;
        }
 
+       /*
+        * Enable HID input processing early in order to be able to read the
+        * clock already in devm_rtc_device_register().
+        */
+       hid_device_io_start(hsdev->hdev);
+
        time_state->rtc = devm_rtc_device_register(&pdev->dev,
                                        "hid-sensor-time", &hid_time_rtc_ops,
                                        THIS_MODULE);
 
        if (IS_ERR_OR_NULL(time_state->rtc)) {
+               hid_device_io_stop(hsdev->hdev);
                ret = time_state->rtc ? PTR_ERR(time_state->rtc) : -ENODEV;
                time_state->rtc = NULL;
                dev_err(&pdev->dev, "rtc device register failed!\n");