Hi, On 01/30/2015 09:24 AM, Joonyoung Shim wrote: > +Cc dri-devel ML. > > Hi Alban, > > On 01/30/2015 06:18 AM, Alban Browaeys wrote: >> The hdmi outputs black screen only even though under the hood Xorg and >> framebuffer console are fine : devices found and initialized, but >> not a pixel out. >> >> Commit 93bca243ec96 ("drm/exynos: remove struct exynos_drm_manager") >> changed the call order of mixer_initialize with regards to >> exynos_drm_crtc_create. >> > > Right, there is no any reason to change order but i don't think it > causes problem because they don't any dependency. > OK, i also get blank screen from hdmi after enable vidi. >> This changes breaks hdmi out on Odroid U2 (linux-next with added >> Marek Szyprowski v4 hdmi patchset from linux-samsung-soc ML). >> > > I tested Odroid U3 but hdmi out is working well. > > Thanks. > >> Restore the previous call ordering get hdmi to ouput proper pixels: >> ie call mixer_initialize first then exynos_drm_crtc_create. >> >> Fixes: 93bca243ec96 ("drm/exynos: remove struct exynos_drm_manager") >> Signed-off-by: Alban Browaeys <prahal@xxxxxxxxx> >> --- >> drivers/gpu/drm/exynos/exynos_mixer.c | 9 +++++---- >> 1 file changed, 5 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c >> index d8fd8e1..188f90f 100644 >> --- a/drivers/gpu/drm/exynos/exynos_mixer.c >> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c >> @@ -1258,18 +1258,19 @@ static int mixer_bind(struct device *dev, struct device *manager, void *data) >> struct drm_device *drm_dev = data; >> int ret; >> >> + ret = mixer_initialize(ctx, drm_dev); >> + if (ret) >> + return ret; >> + The pipe value for crtc is increased in mixer_initialize so it should be called before exynos_drm_crtc_create because the pipe value is used in exynos_drm_crtc_create. Acked-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> Fimd and VIDI driver also have same issue. I will post the patch to fix this for Fimd and VIDI driver. Thanks. >> ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe, >> EXYNOS_DISPLAY_TYPE_HDMI, >> &mixer_crtc_ops, ctx); >> if (IS_ERR(ctx->crtc)) { >> + mixer_ctx_remove(ctx); >> ret = PTR_ERR(ctx->crtc); >> goto free_ctx; >> } >> >> - ret = mixer_initialize(ctx, drm_dev); >> - if (ret) >> - goto free_ctx; >> - >> return 0; >> >> free_ctx: >> > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel