|
@@ -532,7 +532,7 @@ int pwrdm_read_prev_pwrst(struct powerdomain *pwrdm)
|
|
|
*/
|
|
|
int pwrdm_set_logic_retst(struct powerdomain *pwrdm, u8 pwrst)
|
|
|
{
|
|
|
- u32 v;
|
|
|
+ int ret = -EINVAL;
|
|
|
|
|
|
if (!pwrdm)
|
|
|
return -EINVAL;
|
|
@@ -543,17 +543,10 @@ int pwrdm_set_logic_retst(struct powerdomain *pwrdm, u8 pwrst)
|
|
|
pr_debug("powerdomain: setting next logic powerstate for %s to %0x\n",
|
|
|
pwrdm->name, pwrst);
|
|
|
|
|
|
- /*
|
|
|
- * The register bit names below may not correspond to the
|
|
|
- * actual names of the bits in each powerdomain's register,
|
|
|
- * but the type of value returned is the same for each
|
|
|
- * powerdomain.
|
|
|
- */
|
|
|
- v = pwrst << __ffs(OMAP3430_LOGICL1CACHERETSTATE_MASK);
|
|
|
- prm_rmw_mod_reg_bits(OMAP3430_LOGICL1CACHERETSTATE_MASK, v,
|
|
|
- pwrdm->prcm_offs, pwrstctrl_reg_offs);
|
|
|
+ if (arch_pwrdm && arch_pwrdm->pwrdm_set_logic_retst)
|
|
|
+ ret = arch_pwrdm->pwrdm_set_logic_retst(pwrdm, pwrst);
|
|
|
|
|
|
- return 0;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -696,11 +689,15 @@ int pwrdm_set_mem_retst(struct powerdomain *pwrdm, u8 bank, u8 pwrst)
|
|
|
*/
|
|
|
int pwrdm_read_logic_pwrst(struct powerdomain *pwrdm)
|
|
|
{
|
|
|
+ int ret = -EINVAL;
|
|
|
+
|
|
|
if (!pwrdm)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- return prm_read_mod_bits_shift(pwrdm->prcm_offs, pwrstst_reg_offs,
|
|
|
- OMAP3430_LOGICSTATEST_MASK);
|
|
|
+ if (arch_pwrdm && arch_pwrdm->pwrdm_read_logic_pwrst)
|
|
|
+ ret = arch_pwrdm->pwrdm_read_logic_pwrst(pwrdm);
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -713,17 +710,15 @@ int pwrdm_read_logic_pwrst(struct powerdomain *pwrdm)
|
|
|
*/
|
|
|
int pwrdm_read_prev_logic_pwrst(struct powerdomain *pwrdm)
|
|
|
{
|
|
|
+ int ret = -EINVAL;
|
|
|
+
|
|
|
if (!pwrdm)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- /*
|
|
|
- * The register bit names below may not correspond to the
|
|
|
- * actual names of the bits in each powerdomain's register,
|
|
|
- * but the type of value returned is the same for each
|
|
|
- * powerdomain.
|
|
|
- */
|
|
|
- return prm_read_mod_bits_shift(pwrdm->prcm_offs, OMAP3430_PM_PREPWSTST,
|
|
|
- OMAP3430_LASTLOGICSTATEENTERED_MASK);
|
|
|
+ if (arch_pwrdm && arch_pwrdm->pwrdm_read_prev_logic_pwrst)
|
|
|
+ ret = arch_pwrdm->pwrdm_read_prev_logic_pwrst(pwrdm);
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -736,17 +731,15 @@ int pwrdm_read_prev_logic_pwrst(struct powerdomain *pwrdm)
|
|
|
*/
|
|
|
int pwrdm_read_logic_retst(struct powerdomain *pwrdm)
|
|
|
{
|
|
|
+ int ret = -EINVAL;
|
|
|
+
|
|
|
if (!pwrdm)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- /*
|
|
|
- * The register bit names below may not correspond to the
|
|
|
- * actual names of the bits in each powerdomain's register,
|
|
|
- * but the type of value returned is the same for each
|
|
|
- * powerdomain.
|
|
|
- */
|
|
|
- return prm_read_mod_bits_shift(pwrdm->prcm_offs, pwrstctrl_reg_offs,
|
|
|
- OMAP3430_LOGICSTATEST_MASK);
|
|
|
+ if (arch_pwrdm && arch_pwrdm->pwrdm_read_logic_retst)
|
|
|
+ ret = arch_pwrdm->pwrdm_read_logic_retst(pwrdm);
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
/**
|