On Thu, Nov 17, 2011 at 12:39:12AM +0900, anish kumar wrote: > On Tue, 2011-11-15 at 08:34 +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? Right, if there are no usrs device should already be in low power mode and we do not need anything to do here. Additionally, if device has no users we do not wantt o power it on in esume() as this will only cause us to waste power. Thanks. -- Dmitry -- 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