diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2017-06-16 12:50:21 +0200 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2017-08-29 15:41:47 +0200 |
commit | fa62dc238cf89f2ca30c70fece1ed566326f2513 (patch) | |
tree | 9541bcbf3cdf8ff374a394870cf6d8cbc8363be1 /sound/soc/nuc900 | |
parent | 78643987e83ece4f1e1b8b134a2fe18a5e336487 (diff) |
i2c: designware: Deploy the runtime PM centric path for system sleepref_acpi_pm_i2c_rpm_path
Currently the device is runtime resumed in the i2c-dw-plat driver's
->suspend() callback, which is needed to manage system sleep properly.
The particular reason for the runtime resume is because the PM core may
unset the direct_complete flag for a parent device, in case its child
device are being system suspended before. This leads to that the
i2c-dw-plat driver's ->suspend() callback can be invoked when the device is
runtime suspended.
Runtime resuming the device in this scenario may be unnecessary, in case
when the device is already in its proper lower power state for system
sleep. This behaviour increases the time it takes to put the device into
low power state, but means also a waste of power.
Let's fix the behaviour by deploying the runtime PM centric path for system
sleep, via assigning the pm_runtime_force_suspend|resume() helpers as the
system sleep callbacks for the i2c-dw-plat driver. We must also inform the
PM core and the ACPI PM domain that we are now using the runtime PM centric
path, therefore we call dev_pm_use_rpm_sleep() during ->probe().
While deploying the runtime PM centric path, the ->prepare() callback
becomes redundant, so let's drop it.
Along with these improvements, of course we also get the other regular
benefits one get when deploying the runtime PM centric path.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'sound/soc/nuc900')
0 files changed, 0 insertions, 0 deletions