[RFC PATCH 05/37] drm: Exynos: Remove mode validation inside mode_fixup
Daniel Stone
daniels at collabora.com
Wed Mar 18 21:33:04 PDT 2015
mode_valid is the callback we already have to check whether or not a
mode is valid. So there's no need to validate again inside mode_fixup,
and there's really very definitely no need to select a totally different
mode.
Apparently the plan was to, if a 1366x768 mode was advertised but
couldn't be expressed in the PHY, silently pick 1024x768 instead and
never tell the user about it, resulting in a good chunk of the display
going missing.
Just remove the entire double-validation-and-find-new-mode code; if we
need to fiddle around the margins to find an acceptable pixel clock,
that should be done at the very least by not completely mangling
[hv]display.
Signed-off-by: Daniel Stone <daniels at collabora.com>
---
drivers/gpu/drm/exynos/exynos_hdmi.c | 28 ----------------------------
1 file changed, 28 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 229b361..1593b89 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1155,37 +1155,9 @@ static void hdmi_mode_fixup(struct exynos_drm_display *display,
const struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{
- struct drm_display_mode *m;
- int mode_ok;
-
DRM_DEBUG_KMS("%s\n", __FILE__);
drm_mode_set_crtcinfo(adjusted_mode, 0);
-
- mode_ok = hdmi_mode_valid(connector, adjusted_mode);
-
- /* just return if user desired mode exists. */
- if (mode_ok == MODE_OK)
- return;
-
- /*
- * otherwise, find the most suitable mode among modes and change it
- * to adjusted_mode.
- */
- list_for_each_entry(m, &connector->modes, head) {
- mode_ok = hdmi_mode_valid(connector, m);
-
- if (mode_ok == MODE_OK) {
- DRM_INFO("desired mode doesn't exist so\n");
- DRM_INFO("use the most suitable mode among modes.\n");
-
- DRM_DEBUG_KMS("Adjusted Mode: [%d]x[%d] [%d]Hz\n",
- m->hdisplay, m->vdisplay, m->vrefresh);
-
- drm_mode_copy(adjusted_mode, m);
- break;
- }
- }
}
static void hdmi_set_acr(u32 freq, u8 *acr)
--
2.3.2
More information about the dri-devel
mailing list