diff options
author | Alban Browaeys <alban.browaeys@gmail.com> | 2015-01-29 16:18:40 -0500 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2015-02-07 02:38:41 -0500 |
commit | e2dc3f72eea7decdb56368f0de88bba343720828 (patch) | |
tree | 59b2b7f28a3f646a2af109cd6e98fabced065c84 /drivers/gpu/drm/exynos | |
parent | 92dc7a047b02be447a51baa93deb0c0f694241a5 (diff) |
drm/exynos: fix no hdmi output
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.
This changes breaks hdmi out on Odroid U2 (linux-next with added
Marek Szyprowski v4 hdmi patchset from linux-samsung-soc ML).
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@yahoo.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_mixer.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 75b47da6c66c..0aa6cf447e9f 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c | |||
@@ -1254,18 +1254,19 @@ static int mixer_bind(struct device *dev, struct device *manager, void *data) | |||
1254 | struct drm_device *drm_dev = data; | 1254 | struct drm_device *drm_dev = data; |
1255 | int ret; | 1255 | int ret; |
1256 | 1256 | ||
1257 | ret = mixer_initialize(ctx, drm_dev); | ||
1258 | if (ret) | ||
1259 | return ret; | ||
1260 | |||
1257 | ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe, | 1261 | ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe, |
1258 | EXYNOS_DISPLAY_TYPE_HDMI, | 1262 | EXYNOS_DISPLAY_TYPE_HDMI, |
1259 | &mixer_crtc_ops, ctx); | 1263 | &mixer_crtc_ops, ctx); |
1260 | if (IS_ERR(ctx->crtc)) { | 1264 | if (IS_ERR(ctx->crtc)) { |
1265 | mixer_ctx_remove(ctx); | ||
1261 | ret = PTR_ERR(ctx->crtc); | 1266 | ret = PTR_ERR(ctx->crtc); |
1262 | goto free_ctx; | 1267 | goto free_ctx; |
1263 | } | 1268 | } |
1264 | 1269 | ||
1265 | ret = mixer_initialize(ctx, drm_dev); | ||
1266 | if (ret) | ||
1267 | goto free_ctx; | ||
1268 | |||
1269 | return 0; | 1270 | return 0; |
1270 | 1271 | ||
1271 | free_ctx: | 1272 | free_ctx: |