Message ID | 1379524399-16995-3-git-send-email-srinivas.pandruvada@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Jiri Kosina |
Headers | show |
On 09/18/13 18:13, Srinivas Pandruvada wrote: > Open sensor hub when module is loaded and close when module is removed. > This helps saving power by opening HID transport only when there is an > user. > > Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> > Acked-by: Alessandro Zummo <a.zummo@towertech.it> Hi, It looks like there has been a fair bit of reorganising going on in this driver that is making this a little fiddly to merge. Could you send me an updated patch against what is currently in the togreg branch of iio.git. As we haven't touched this recently, that should be the same as mainline. Jonathan > --- > drivers/rtc/rtc-hid-sensor-time.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c > index 7273b01..1fe170c 100644 > --- a/drivers/rtc/rtc-hid-sensor-time.c > +++ b/drivers/rtc/rtc-hid-sensor-time.c > @@ -279,15 +279,28 @@ static int hid_time_probe(struct platform_device *pdev) > return ret; > } > > + ret = sensor_hub_device_open(hsdev); > + if (ret) { > + dev_err(&pdev->dev, "failed to open sensor hub device!\n"); > + goto err_open; > + } > + > time_state->rtc = devm_rtc_device_register(&pdev->dev, > "hid-sensor-time", &hid_time_rtc_ops, > THIS_MODULE); > > if (IS_ERR(time_state->rtc)) { > dev_err(&pdev->dev, "rtc device register failed!\n"); > - return PTR_ERR(time_state->rtc); > + ret = PTR_ERR(time_state->rtc); > + goto err_rtc; > } > > + return 0; > + > +err_rtc: > + sensor_hub_device_close(hsdev); > +err_open: > + sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TIME); > return ret; > } > > @@ -295,6 +308,7 @@ static int hid_time_remove(struct platform_device *pdev) > { > struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data; > > + sensor_hub_device_close(hsdev); > sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TIME); > > return 0; > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c index 7273b01..1fe170c 100644 --- a/drivers/rtc/rtc-hid-sensor-time.c +++ b/drivers/rtc/rtc-hid-sensor-time.c @@ -279,15 +279,28 @@ static int hid_time_probe(struct platform_device *pdev) return ret; } + ret = sensor_hub_device_open(hsdev); + if (ret) { + dev_err(&pdev->dev, "failed to open sensor hub device!\n"); + goto err_open; + } + time_state->rtc = devm_rtc_device_register(&pdev->dev, "hid-sensor-time", &hid_time_rtc_ops, THIS_MODULE); if (IS_ERR(time_state->rtc)) { dev_err(&pdev->dev, "rtc device register failed!\n"); - return PTR_ERR(time_state->rtc); + ret = PTR_ERR(time_state->rtc); + goto err_rtc; } + return 0; + +err_rtc: + sensor_hub_device_close(hsdev); +err_open: + sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TIME); return ret; } @@ -295,6 +308,7 @@ static int hid_time_remove(struct platform_device *pdev) { struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data; + sensor_hub_device_close(hsdev); sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TIME); return 0;