diff options
author | Ville Syrjälä | 2018-11-12 17:59:55 +0100 |
---|---|---|
committer | Ville Syrjälä | 2019-01-25 17:58:47 +0100 |
commit | e94390aadaf2bf0fb87c9b7b0c0dc9910f08356a (patch) | |
tree | ba6fa9e8fd18202800a8488d188c45dd344d1dd0 /drivers/gpu/drm/i915 | |
parent | drm/i915/tv: Use drm_mode_set_name() to name TV modes (diff) | |
download | kernel-qcow2-linux-e94390aadaf2bf0fb87c9b7b0c0dc9910f08356a.tar.gz kernel-qcow2-linux-e94390aadaf2bf0fb87c9b7b0c0dc9910f08356a.tar.xz kernel-qcow2-linux-e94390aadaf2bf0fb87c9b7b0c0dc9910f08356a.zip |
drm/i915/tv: Make TV mode autoselection actually useable
The current code insists on picking a new TV mode when
switching between component and non-component cables.
That's super annoying. Let's just keep the current TV
mode unless the new cable type actually disagrees with it.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181112170000.27531-12-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index 89e60a8f0fd9..6279d6fed7e9 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c @@ -1252,16 +1252,18 @@ static void intel_tv_find_better_format(struct drm_connector *connector) const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state); int i; - if ((intel_tv->type == DRM_MODE_CONNECTOR_Component) == - tv_mode->component_only) + /* Component supports everything so we can keep the current mode */ + if (intel_tv->type == DRM_MODE_CONNECTOR_Component) return; + /* If the current mode is fine don't change it */ + if (!tv_mode->component_only) + return; for (i = 0; i < ARRAY_SIZE(tv_modes); i++) { - tv_mode = tv_modes + i; + tv_mode = &tv_modes[i]; - if ((intel_tv->type == DRM_MODE_CONNECTOR_Component) == - tv_mode->component_only) + if (!tv_mode->component_only) break; } |