aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Holler <holler@ahsoftware.de>2013-11-14 17:32:00 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-14 19:32:21 -0500
commit406bf31893163cbe5b0b03a281685c7dc95c9380 (patch)
tree114be8a8b9b386dbc12a50f95a299373eda8f555
parentd5ceede8dc86278d16dcad8f916ef323b5672bd8 (diff)
drivers/rtc/rtc-hid-sensor-time.c: enable HID input processing early
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>
-rw-r--r--drivers/rtc/rtc-hid-sensor-time.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c
index 1ba369043b8d..a34e5cfd2ab5 100644
--- a/drivers/rtc/rtc-hid-sensor-time.c
+++ b/drivers/rtc/rtc-hid-sensor-time.c
@@ -281,11 +281,18 @@ static int hid_time_probe(struct platform_device *pdev)
281 goto err_open; 281 goto err_open;
282 } 282 }
283 283
284 /*
285 * Enable HID input processing early in order to be able to read the
286 * clock already in devm_rtc_device_register().
287 */
288 hid_device_io_start(hsdev->hdev);
289
284 time_state->rtc = devm_rtc_device_register(&pdev->dev, 290 time_state->rtc = devm_rtc_device_register(&pdev->dev,
285 "hid-sensor-time", &hid_time_rtc_ops, 291 "hid-sensor-time", &hid_time_rtc_ops,
286 THIS_MODULE); 292 THIS_MODULE);
287 293
288 if (IS_ERR_OR_NULL(time_state->rtc)) { 294 if (IS_ERR_OR_NULL(time_state->rtc)) {
295 hid_device_io_stop(hsdev->hdev);
289 ret = time_state->rtc ? PTR_ERR(time_state->rtc) : -ENODEV; 296 ret = time_state->rtc ? PTR_ERR(time_state->rtc) : -ENODEV;
290 time_state->rtc = NULL; 297 time_state->rtc = NULL;
291 dev_err(&pdev->dev, "rtc device register failed!\n"); 298 dev_err(&pdev->dev, "rtc device register failed!\n");