+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. > 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; > + > 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: > -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html