On Wed, 2011-11-16 at 16:56 +0100, oskar.andero@xxxxxxxxxxxxxxxx wrote: > > > > > +#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); > > > > > + } 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" -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html