mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-29 23:12:23 +00:00
ARM: OMAP2+: hwmod: fix deassert hardreset clkdm usecounting
Deasserting hardreset increases the usecount for the hwmod parent clockdomain always, however usecount is only decreased at end in certain error cases. This causes software supervised clockdomains to remain always on, preventing idle. Fixed by always releasing the hwmods clockdomain parent when exiting the function. Signed-off-by: Tero Kristo <t-kristo@ti.com> Tested-by: Carlos Hernandez <ceh@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Cc: Tony Lindgren <tony@atomide.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
This commit is contained in:
parent
0717103e65
commit
80d2518dfd
@ -1692,16 +1692,15 @@ static int _deassert_hardreset(struct omap_hwmod *oh, const char *name)
|
||||
if (ret == -EBUSY)
|
||||
pr_warn("omap_hwmod: %s: failed to hardreset\n", oh->name);
|
||||
|
||||
if (!ret) {
|
||||
if (oh->clkdm) {
|
||||
/*
|
||||
* Set the clockdomain to HW_AUTO, assuming that the
|
||||
* previous state was HW_AUTO.
|
||||
*/
|
||||
if (oh->clkdm && hwsup)
|
||||
if (hwsup)
|
||||
clkdm_allow_idle(oh->clkdm);
|
||||
} else {
|
||||
if (oh->clkdm)
|
||||
clkdm_hwmod_disable(oh->clkdm, oh);
|
||||
|
||||
clkdm_hwmod_disable(oh->clkdm, oh);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user