On Fri, Jun 24, 2016 at 09:19:32AM +0200, Benjamin Tissoires wrote: > On Jun 23 2016 or thereabouts, Dmitry Torokhov wrote: > > On Thu, Jun 09, 2016 at 04:53:50PM +0200, Benjamin Tissoires wrote: > > > + > > > +static struct i2c_driver rmi_smb_driver = { > > > + .driver = { > > > + .owner = THIS_MODULE, > > > + .name = "rmi4_smbus", > > > + .pm = &rmi_smb_pm, > > > + .resume = rmi_smb_resume, > > > > Why rmi_smb_resume is not part of rmi_smb_pm? > > > > This is because rmi_smbus device both have a PS/2 interface and a SMBus > one. I'll have to check again now that I have a slightly different way > of binding smbus devices in my tree, but the issue was: > - having resume part of pm means it will get caught by PM directly > - the PS/2 node gets also resumed by PM > - calling PS/2 commands during resume switches the devices back into > PS/2 and stops the SMBus communication. > > So it's easier to wait only for the PS/2 PM resume call which will call > the SMBus resume function when the device is in a proper state. > > I'll send out the updated patch with your comments next week hopefully.
Hmm, I think you will have to walk me through resume process. How do we tie in PS/2 and I2C on these devices abd have PS/2 code call into this driver? Thanks. -- Dmitry