diff options
author | Keith Zhao <keith.zhao@starfivetech.com> | 2023-07-18 12:17:53 +0300 |
---|---|---|
committer | Keith Zhao <keith.zhao@starfivetech.com> | 2023-07-18 12:17:53 +0300 |
commit | 26a31fa6bc9debeb71df0a0f9a715ac8e46cff1c (patch) | |
tree | c5ac000213a239be3e97b8be2a1d7d5fef0789ff /drivers/power | |
parent | 1fe34013bfc9bd12ff29a7d02c5c3a79cb0dcff3 (diff) | |
download | u-boot-26a31fa6bc9debeb71df0a0f9a715ac8e46cff1c.tar.xz |
uboot: hdmi logo causes kernel hdmi unstable
The hdmi display is unstable after repeated reset
blank panel or write panel
Signed-off-by: Keith Zhao <keith.zhao@starfivetech.com>
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/domain/starfive-power-domain.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/power/domain/starfive-power-domain.c b/drivers/power/domain/starfive-power-domain.c index d33c9a5c46..b326e74616 100644 --- a/drivers/power/domain/starfive-power-domain.c +++ b/drivers/power/domain/starfive-power-domain.c @@ -68,9 +68,7 @@ static int sf_power_domain_on(struct power_domain *power_domain) encourage_hi = SW_MODE_ENCOURAGE_EN_HI; /* write SW_ENCOURAGE to make the configuration take effect */ - val = __raw_readl(priv->regs + mode) | BIT(power_domain->id); - - __raw_writel(val, priv->regs + mode); + __raw_writel(BIT(power_domain->id), priv->regs + mode); __raw_writel(SW_MODE_ENCOURAGE_ON, priv->regs + SW_ENCOURAGE); __raw_writel(encourage_lo, priv->regs + SW_ENCOURAGE); __raw_writel(encourage_hi, priv->regs + SW_ENCOURAGE); @@ -99,9 +97,7 @@ static int sf_power_domain_off(struct power_domain *power_domain) encourage_lo = SW_MODE_ENCOURAGE_DIS_LO; encourage_hi = SW_MODE_ENCOURAGE_DIS_HI; - val = __raw_readl(priv->regs + mode) & ~(BIT(power_domain->id)); - - __raw_writel(val, priv->regs + mode); + __raw_writel(BIT(power_domain->id), priv->regs + mode); __raw_writel(SW_MODE_ENCOURAGE_ON, priv->regs + SW_ENCOURAGE); __raw_writel(encourage_lo, priv->regs + SW_ENCOURAGE); __raw_writel(encourage_hi, priv->regs + SW_ENCOURAGE); @@ -110,7 +106,7 @@ static int sf_power_domain_off(struct power_domain *power_domain) !(val & BIT(power_domain->id)), TIMEOUT_US); if (ret) { - pr_err("power_off failed"); + pr_err("power_off failed\n"); return -ETIMEDOUT; } |