From: Seung-Woo Kim Date: Wed, 7 Sep 2016 01:09:29 +0000 (+0900) Subject: drm/exynos/hdmi: workaround to check invalid modes with attached drm bridge X-Git-Tag: accepted/tizen/common/20161219.151653~200 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d713b4c0b3fd116a5d9d47af82d258cc077fd66;p=platform%2Fkernel%2Flinux-exynos.git drm/exynos/hdmi: workaround to check invalid modes with attached drm bridge Currently, there is no way to check valid modes for bridge from user and if the attached drm bridge, mhl adapter, does not support a mode with fixup, then it is not possible to be set on exynos-hdmi. So this patch adds workaround to check invalid modes with attached drm bridge during mode_valid from exynos-hdmi. Change-Id: I4dcd7edaa1261c1c3ed349c2dcddec226efcc6ec Signed-off-by: Seung-Woo Kim --- diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 7e4f321..9f099a0 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c @@ -1269,6 +1269,7 @@ static int hdmi_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { struct hdmi_context *hdata = ctx_from_connector(connector); + struct drm_display_mode adjusted_mode; int ret; DRM_DEBUG_KMS("xres=%d, yres=%d, refresh=%d, intl=%d clock=%d\n", @@ -1280,6 +1281,14 @@ static int hdmi_mode_valid(struct drm_connector *connector, if (ret < 0) return MODE_BAD; + /* + * If attached bridge does not support a mode with fixup, then + * it cannot be set, so not valid. + */ + drm_mode_copy(&adjusted_mode, mode); + if (!drm_bridge_mode_fixup(hdata->bridge, mode, &adjusted_mode)) + return MODE_BAD; + return MODE_OK; }