mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-25 21:35:39 +07:00
fe4ed1b457
Currently dsi_display_init_dsi() calls dss_pll_enable() but it is not paired with dss_pll_disable() in dsi_display_uninit_dsi(). This leaves the DSS clocks enabled when the display is blanked wasting about extra 5mW of power while idle. The clock that is left on by not calling dss_pll_disable() is DSS_CLKCTRL bit 10 OPTFCLKEN_SYS_CLK that is the source clock for DSI PLL. We can fix this issue by by making the current dsi_pll_uninit() into dsi_pll_disable(). This way we can just call dss_pll_disable() from dsi_display_uninit_dsi() and the code becomes a bit easier to follow. However, we need to also consider that DSI PLL can be muxed for DVI too as pointed out by Tomi Valkeinen <tomi.valkeinen@ti.com>. In the DVI case, we want to unconditionally disable the clocks. To get around this issue, we separate out the DSI lane handling from dsi_pll_enable() and dsi_pll_disable() as suggested by Tomi in an earlier experimental patch. So we must only toggle the DSI regulator based on the vdds_dsi_enabled flag from dsi_display_init_dsi() and dsi_display_uninit_dsi(). We need to make these two changes together to avoid breaking things for DVI when fixing the DSI clock handling. And this all causes a slight renumbering of the error path for dsi_display_init_dsi(). Suggested-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> |
||
---|---|---|
.. | ||
base.c | ||
core.c | ||
dispc_coefs.c | ||
dispc.c | ||
dispc.h | ||
display.c | ||
dpi.c | ||
dsi.c | ||
dss-of.c | ||
dss.c | ||
dss.h | ||
hdmi4_cec.c | ||
hdmi4_cec.h | ||
hdmi4_core.c | ||
hdmi4_core.h | ||
hdmi4.c | ||
hdmi5_core.c | ||
hdmi5_core.h | ||
hdmi5.c | ||
hdmi_common.c | ||
hdmi_phy.c | ||
hdmi_pll.c | ||
hdmi_wp.c | ||
hdmi.h | ||
Kconfig | ||
Makefile | ||
omapdss-boot-init.c | ||
omapdss.h | ||
output.c | ||
pll.c | ||
sdi.c | ||
venc.c | ||
video-pll.c |