On 2015년 01월 30일 16:43, Joonyoung Shim wrote: > We get wrong pipe value for crtc since commit 93bca243ec96 ("drm/exynos: > remove struct exynos_drm_manager"). We should should increase pipe value > before call exynos_drm_crtc_create. Right, applied. Thanks, Inki Dae > > Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> > --- > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 13 +++++++------ > drivers/gpu/drm/exynos/exynos_drm_vidi.c | 4 ++-- > 2 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c > index 682806e..39f7fa7 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c > @@ -1065,18 +1065,19 @@ static int fimd_bind(struct device *dev, struct device *master, void *data) > struct drm_device *drm_dev = data; > int ret; > > - ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe, > - EXYNOS_DISPLAY_TYPE_LCD, > - &fimd_crtc_ops, ctx); > - if (IS_ERR(ctx->crtc)) > - return PTR_ERR(ctx->crtc); > - > ret = fimd_ctx_initialize(ctx, drm_dev); > if (ret) { > DRM_ERROR("fimd_ctx_initialize failed.\n"); > return ret; > } > > + ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe, > + EXYNOS_DISPLAY_TYPE_LCD, > + &fimd_crtc_ops, ctx); > + if (IS_ERR(ctx->crtc)) { > + fimd_ctx_remove(ctx); > + return PTR_ERR(ctx->crtc); > + } > > if (ctx->display) > exynos_drm_create_enc_conn(drm_dev, ctx->display); > diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c > index 9c8300e..fb68d3c 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c > @@ -548,6 +548,8 @@ static int vidi_bind(struct device *dev, struct device *master, void *data) > struct drm_device *drm_dev = data; > int ret; > > + vidi_ctx_initialize(ctx, drm_dev); > + > ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe, > EXYNOS_DISPLAY_TYPE_VIDI, > &vidi_crtc_ops, ctx); > @@ -556,8 +558,6 @@ static int vidi_bind(struct device *dev, struct device *master, void *data) > return PTR_ERR(ctx->crtc); > } > > - vidi_ctx_initialize(ctx, drm_dev); > - > ret = exynos_drm_create_enc_conn(drm_dev, &ctx->display); > if (ret) { > ctx->crtc->base.funcs->destroy(&ctx->crtc->base); > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel