diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-07-14 14:59:35 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-07-14 14:59:35 -0400 |
commit | 5ca80817e231723f1399bff495854ba2171103ca (patch) | |
tree | feef09654d8045e30d854bebadc4766d73f12fd7 /arch/arm/mach-shmobile | |
parent | d28054020f97c7c9f15327a53945f0f40ffc5d7a (diff) |
ARM / shmobile: Return -EBUSY from A4LC power off if A3RV is active
Since the A4LC should only be powered off if the A3RV is off, make
the A4LC's power down routine return -EBUSY if A3RV is not off to
indicate to the core that it doesn't want to power off the domain in
that case. This will cause the core to regard A4LC as active, so
the pm_genpd_poweron() in pd_power_down_a3rv() is not necessary any
more.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Magnus Damm <damm@opensource.se>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/pm-sh7372.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/arm/mach-shmobile/pm-sh7372.c b/arch/arm/mach-shmobile/pm-sh7372.c index 0b07138908b7..933fb411be0f 100644 --- a/arch/arm/mach-shmobile/pm-sh7372.c +++ b/arch/arm/mach-shmobile/pm-sh7372.c | |||
@@ -106,7 +106,6 @@ static int pd_power_down_a3rv(struct generic_pm_domain *genpd) | |||
106 | int ret = pd_power_down(genpd); | 106 | int ret = pd_power_down(genpd); |
107 | 107 | ||
108 | /* try to power down A4LC after A3RV is requested off */ | 108 | /* try to power down A4LC after A3RV is requested off */ |
109 | pm_genpd_poweron(&sh7372_a4lc.genpd); | ||
110 | genpd_queue_power_off_work(&sh7372_a4lc.genpd); | 109 | genpd_queue_power_off_work(&sh7372_a4lc.genpd); |
111 | 110 | ||
112 | return ret; | 111 | return ret; |
@@ -118,7 +117,7 @@ static int pd_power_down_a4lc(struct generic_pm_domain *genpd) | |||
118 | if (!(__raw_readl(PSTR) & (1 << sh7372_a3rv.bit_shift))) | 117 | if (!(__raw_readl(PSTR) & (1 << sh7372_a3rv.bit_shift))) |
119 | return pd_power_down(genpd); | 118 | return pd_power_down(genpd); |
120 | 119 | ||
121 | return 0; | 120 | return -EBUSY; |
122 | } | 121 | } |
123 | 122 | ||
124 | static bool pd_active_wakeup(struct device *dev) | 123 | static bool pd_active_wakeup(struct device *dev) |