Message ID | 54B5B5F6.3030607@collabora.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 01/14/2015 01:19 AM, Javier Martinez Canillas wrote: > > I dug further on this issue and found that the cause is that the exynos_mixer > driver needs some clocks (CLK_HDMI and CLK_SCLK_HDMI) grabbed by exynos_hdmi > to be kept enabled after hdmi_poweroff (drivers/gpu/drm/exynos/exynos_hdmi.c). > > Otherwise, any access to mixer device registers leads to an imprecise external > abort error. The following change [0] to the Exynos DRM HDMI driver makes the > issue to not happen and I can successfully execute: > > # echo 1 > /sys/devices/platform/exynos-drm/graphics/fb0/blank > # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank > > Only not disabling the hdmi clock [1]: is enough but doing so makes sometimes the > DISP1 power domain disabling fails. It doesn't seem to have side effect though > since I also see the signal in the HDMI display to go standby and then on again. > > # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank > # echo 1 > /sys/devices/platform/exynos-drm/graphics/fb0/blank > [ 63.089080] Power domain disp1-power-domain disable failed > # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank > # > > That error message when both clocks are not disabled on hdmi_poweroff() though. > This should be: "That error message is not shown when both clocks are disabled". Best regards, Javier
Hi, On 01/14/2015 09:24 AM, Javier Martinez Canillas wrote: > On 01/14/2015 01:19 AM, Javier Martinez Canillas wrote: >> >> I dug further on this issue and found that the cause is that the exynos_mixer >> driver needs some clocks (CLK_HDMI and CLK_SCLK_HDMI) grabbed by exynos_hdmi >> to be kept enabled after hdmi_poweroff (drivers/gpu/drm/exynos/exynos_hdmi.c). >> >> Otherwise, any access to mixer device registers leads to an imprecise external >> abort error. The following change [0] to the Exynos DRM HDMI driver makes the >> issue to not happen and I can successfully execute: >> >> # echo 1 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >> # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >> Did you execute this operation repeatedly? Still i get error when i execute this more than twice with your change [0]. Thanks. >> Only not disabling the hdmi clock [1]: is enough but doing so makes sometimes the >> DISP1 power domain disabling fails. It doesn't seem to have side effect though >> since I also see the signal in the HDMI display to go standby and then on again. >> >> # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >> # echo 1 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >> [ 63.089080] Power domain disp1-power-domain disable failed >> # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >> # >> >> That error message when both clocks are not disabled on hdmi_poweroff() though. >> > > This should be: "That error message is not shown when both clocks are disabled". > > Best regards, > Javier >
Hello Joonyoung, On 01/20/2015 12:12 PM, Joonyoung Shim wrote: >>> >>> I dug further on this issue and found that the cause is that the exynos_mixer >>> driver needs some clocks (CLK_HDMI and CLK_SCLK_HDMI) grabbed by exynos_hdmi >>> to be kept enabled after hdmi_poweroff (drivers/gpu/drm/exynos/exynos_hdmi.c). >>> >>> Otherwise, any access to mixer device registers leads to an imprecise external >>> abort error. The following change [0] to the Exynos DRM HDMI driver makes the >>> issue to not happen and I can successfully execute: >>> >>> # echo 1 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >>> # echo 0 > /sys/devices/platform/exynos-drm/graphics/fb0/blank >>> > > Did you execute this operation repeatedly? Still i get error when i > execute this more than twice with your change [0]. > You mean that you are seeing the "Power domain power-domain disable failed" message but the system is not crashing or that you are still having the system crash? I've seen the former when running multiple times but I have not seen the crash when the hdmi clock is not disabled on hdmi_poweroff(). > Thanks. > Best regards, Javier
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 5765a161abdd..0887911cfdd5 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -2084,8 +2084,8 @@ static void hdmi_poweroff(struct exynos_drm_display *display) cancel_delayed_work(&hdata->hotplug_work); - clk_disable_unprepare(res->sclk_hdmi); - clk_disable_unprepare(res->hdmi); /* reset pmu hdmiphy control bit to disable hdmiphy */ regmap_update_bits(hdata->pmureg, PMU_HDMI_PHY_CONTROL, [1]: diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 5765a161abdd..628bff96d543 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -2085,7 +2085,7 @@ static void hdmi_poweroff(struct exynos_drm_display *display) cancel_delayed_work(&hdata->hotplug_work); clk_disable_unprepare(res->sclk_hdmi); - clk_disable_unprepare(res->hdmi); /* reset pmu hdmiphy control bit to disable hdmiphy */ regmap_update_bits(hdata->pmureg, PMU_HDMI_PHY_CONTROL,