From 19d3ef2a430049309d8c2e9fe23dbf2dfd17351b Mon Sep 17 00:00:00 2001 From: Wyon Bi Date: Fri, 13 Dec 2019 16:10:27 +0800 Subject: [PATCH] phy/rockchip: dp: Protect the boot logo Change-Id: Iee1366d77a0a4d046321b34efaa138d61317bc66 Signed-off-by: Wyon Bi --- drivers/phy/rockchip/phy-rockchip-dp.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-dp.c b/drivers/phy/rockchip/phy-rockchip-dp.c index f1c59f81670d..3f77ecb4a082 100644 --- a/drivers/phy/rockchip/phy-rockchip-dp.c +++ b/drivers/phy/rockchip/phy-rockchip-dp.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -38,7 +39,8 @@ static int rockchip_dp_phy_power_on(struct phy *phy) struct rockchip_dp_phy *dp = phy_get_drvdata(phy); const struct rockchip_dp_phy_data *data = dp->data; - clk_prepare_enable(dp->phy_24m); + if (!__clk_is_enabled(dp->phy_24m)) + clk_prepare_enable(dp->phy_24m); if (dp->rst) { /* EDP 24m clock domain software reset */ @@ -61,7 +63,8 @@ static int rockchip_dp_phy_power_off(struct phy *phy) regmap_write(dp->grf, data->grf_reg_offset, BIT(data->iddq_shift) | BIT(16 + data->iddq_shift)); - clk_disable_unprepare(dp->phy_24m); + if (__clk_is_enabled(dp->phy_24m)) + clk_disable_unprepare(dp->phy_24m); return 0; } @@ -107,6 +110,12 @@ static int rockchip_dp_phy_probe(struct platform_device *pdev) return ret; } + ret = clk_prepare_enable(dp->phy_24m); + if (ret) { + dev_err(dev, "failed to enable phy 24m clock: %d\n", ret); + return ret; + } + dp->rst = devm_reset_control_get_optional(dev, "edp_24m"); if (IS_ERR(dp->rst)) { ret = PTR_ERR(dp->rst);