On Wed, Oct 09, 2013 at 05:04:20PM +0300, Mika Westerberg wrote: > From: Lv Zheng <lv.zheng@xxxxxxxxx> > > If the I2C client device is enumerated from ACPI namespace it might have > ACPI methods that needs to be called in order to transition the device to > different power states (such as _PSx). > > Implement this for I2C client devices by checking if the device has an ACPI > handle and if that's the case, attach it to the ACPI power domain. In > addition we make sure that the device is fully powered when its ->probe() > function gets called. > > For non-ACPI devices this patch is a no-op. > > Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > --- > drivers/i2c/i2c-core.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c > index 29d3f04..f25dee3 100644 > --- a/drivers/i2c/i2c-core.c > +++ b/drivers/i2c/i2c-core.c > @@ -254,10 +254,16 @@ static int i2c_device_probe(struct device *dev) > client->flags & I2C_CLIENT_WAKE); > dev_dbg(dev, "probe\n"); > > + if (ACPI_HANDLE(&client->dev)) > + acpi_dev_pm_attach(&client->dev, true); I'd prefer to drop the 'if's in case they are checked inside the acpi_* calls anyway. Not a show-stopper, though, so: Acked-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Attachment:
signature.asc
Description: Digital signature