On Fri, Sep 19, 2014 at 08:27:39PM +0200, Ulf Hansson wrote: > Previously only the ACPI PM domain was supported by the i2c bus. > > Let's convert to the common attach/detach functions for PM domains, > which currently means we are extending the support to include the > generic PM domain as well. > > Cc: [email protected] > Signed-off-by: Ulf Hansson <[email protected]> > Reviewed-by: Kevin Hilman <[email protected]>
Looks good to me, but I'd like to give Mika a chance to look at it,
since he does ACPI with I2C. Adding to CC.
> ---
> drivers/i2c/i2c-core.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index 632057a..3cd8f11 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -279,10 +279,13 @@ static int i2c_device_probe(struct device *dev)
> if (status < 0)
> return status;
>
> - acpi_dev_pm_attach(&client->dev, true);
> - status = driver->probe(client, i2c_match_id(driver->id_table, client));
> - if (status)
> - acpi_dev_pm_detach(&client->dev, true);
> + status = dev_pm_domain_attach(&client->dev, true);
> + if (status != -EPROBE_DEFER) {
> + status = driver->probe(client, i2c_match_id(driver->id_table,
> + client));
Very minor: I think it is more readable to keep this in one line.
> + if (status)
> + dev_pm_domain_detach(&client->dev, true);
> + }
>
> return status;
> }
> @@ -302,7 +305,7 @@ static int i2c_device_remove(struct device *dev)
> status = driver->remove(client);
> }
>
> - acpi_dev_pm_detach(&client->dev, true);
> + dev_pm_domain_detach(&client->dev, true);
> return status;
> }
>
> --
> 1.9.1
>
signature.asc
Description: Digital signature
