diff options
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_hdmi.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_hdmi.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 98c587321521..68936e6aa6ab 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c | |||
@@ -2003,6 +2003,24 @@ static void hdmiphy_conf_reset(struct hdmi_context *hdata) | |||
2003 | mdelay(10); | 2003 | mdelay(10); |
2004 | } | 2004 | } |
2005 | 2005 | ||
2006 | static void hdmiphy_poweron(struct hdmi_context *hdata) | ||
2007 | { | ||
2008 | DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__); | ||
2009 | |||
2010 | if (hdata->type == HDMI_TYPE14) | ||
2011 | hdmi_reg_writemask(hdata, HDMI_PHY_CON_0, 0, | ||
2012 | HDMI_PHY_POWER_OFF_EN); | ||
2013 | } | ||
2014 | |||
2015 | static void hdmiphy_poweroff(struct hdmi_context *hdata) | ||
2016 | { | ||
2017 | DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__); | ||
2018 | |||
2019 | if (hdata->type == HDMI_TYPE14) | ||
2020 | hdmi_reg_writemask(hdata, HDMI_PHY_CON_0, ~0, | ||
2021 | HDMI_PHY_POWER_OFF_EN); | ||
2022 | } | ||
2023 | |||
2006 | static void hdmiphy_conf_apply(struct hdmi_context *hdata) | 2024 | static void hdmiphy_conf_apply(struct hdmi_context *hdata) |
2007 | { | 2025 | { |
2008 | const u8 *hdmiphy_data; | 2026 | const u8 *hdmiphy_data; |
@@ -2175,6 +2193,8 @@ static void hdmi_poweron(struct hdmi_context *hdata) | |||
2175 | clk_enable(res->hdmiphy); | 2193 | clk_enable(res->hdmiphy); |
2176 | clk_enable(res->hdmi); | 2194 | clk_enable(res->hdmi); |
2177 | clk_enable(res->sclk_hdmi); | 2195 | clk_enable(res->sclk_hdmi); |
2196 | |||
2197 | hdmiphy_poweron(hdata); | ||
2178 | } | 2198 | } |
2179 | 2199 | ||
2180 | static void hdmi_poweroff(struct hdmi_context *hdata) | 2200 | static void hdmi_poweroff(struct hdmi_context *hdata) |
@@ -2193,6 +2213,7 @@ static void hdmi_poweroff(struct hdmi_context *hdata) | |||
2193 | * its reset state seems to meet the condition. | 2213 | * its reset state seems to meet the condition. |
2194 | */ | 2214 | */ |
2195 | hdmiphy_conf_reset(hdata); | 2215 | hdmiphy_conf_reset(hdata); |
2216 | hdmiphy_poweroff(hdata); | ||
2196 | 2217 | ||
2197 | clk_disable(res->sclk_hdmi); | 2218 | clk_disable(res->sclk_hdmi); |
2198 | clk_disable(res->hdmi); | 2219 | clk_disable(res->hdmi); |