On Wed, 2011-11-16 at 16:56 +0100, oskar.andero@sonyericsson.com wrote:
quoted
quoted
quoted
quoted
+#ifdef CONFIG_PM_SLEEP
+static int gp2a_suspend(struct device *dev)
+{
+ struct i2c_client *client = to_i2c_client(dev);
+ struct gp2a_data *dt = i2c_get_clientdata(client);
+ int error;
+
+ if (device_may_wakeup(&client->dev)) {
> + enable_irq_wake(client->irq);
quoted
+ } else {
This needs locking WRT open/close. Please acquire dt->device->mutex and
only disable if dt->device->users != 0. Similar shoudl be done for
resume.
I see what you mean. I will fix it.
Is my understanding correct?You are going to disable the device
only when there are users of the driver and not disable the device
otherwise.As anyway if there are no users the driver would have been
already disabled right?
Please, see PATCH v3 for the answer to your question.
Perhaps I didn't explain what I wanted to know.Can you kindly let me
know explain below statement by dmitry:
"This needs locking WRT open/close. Please acquire dt->device->mutex and
only disable if dt->device->users != 0. Similar shoudl be done for
resume"