> > When reviewing V2, I wasn't comfortable with just guessing what the old > > code means. So, I did some digging and found: > > > > https://lkml.org/lkml/2008/8/10/204 > > > > Quoting the interesting paragraph from David Brownell: > > > > === > > > > Better would be to preserve any existing settings: > > > > if (!device_can_wakeup(&client->dev)) > > device_init_wakeup(...) > > That way the userspace policy setting is preserved unless the > > device itself gets removed ... instead of being clobbered by > > the simple act of (re)probing a driver. > > > >> > + device_init_wakeup(&client->dev, client->flags & > >> > I2C_CLIENT_WAKE); > > > > === > > > > I have to admit that I am not familiar with device wakeup handling and > > especially its userspace policies. Can you double check that your V2 > > meets the above intention? > > No it does not; it explicitly resets the wakeup flag. Note that the > original code was not quite right in that regard either: it would > preserve wakeup flag set by userspace upon driver rebinding; but it > would re-arm the wakeup flag if it was disabled by userspace. > > I believe that resetting the flag upon re-binding the driver is proper > behavior as the driver is responsible for setting up and handling > wakeups. Okay, that meets my idea of how this should work. I rephrased the above paragraph slightly and added it to the commit message of V2. Thanks, Wolfram
Attachment:
signature.asc
Description: Digital signature