summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/display/intel_sdvo.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2022-03-23 20:29:34 +0200
committerVille Syrjälä <ville.syrjala@linux.intel.com>2022-03-29 16:35:33 +0300
commit7a36980cd2360141b5a6930236399a33c7cbbbb6 (patch)
tree70677c7186003f77e81b0e9ab1b47ad5e6fcd8d7 /drivers/gpu/drm/i915/display/intel_sdvo.c
parent5248cc781d2f4a087cf20ee3c806e2945af03725 (diff)
downloadlinux-7a36980cd2360141b5a6930236399a33c7cbbbb6.tar.gz
linux-7a36980cd2360141b5a6930236399a33c7cbbbb6.tar.bz2
linux-7a36980cd2360141b5a6930236399a33c7cbbbb6.zip
drm/i915: Use intel_panel_edid_fixed_mode() for sdvo
Despite the name intel_panel_edid_fixed_mode() doesn't actually look in the EDID. All it does is dig out the preferred mode from the connector's probed_modes list. That is also what the SDVO LVDS code is doing by hand. Let's just call intel_panel_edid_fixed_mode(). The slight difference in behaviour is that the SDVO code currently bails if it can't find the preferred mode, whereas intel_panel_edid_fixed_mode() will fall back to just returning the first mode from the probed_modes list. Can't imagine why such an LVDS panel would even exist, and also why would you have a panel and be expected to not use it? So I'm going to assume this is a total non-issue. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220323182935.4701-9-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_sdvo.c')
-rw-r--r--drivers/gpu/drm/i915/display/intel_sdvo.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 27b3d3a79989..62e2e8b4358c 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -2886,7 +2886,7 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device)
struct drm_connector *connector;
struct intel_connector *intel_connector;
struct intel_sdvo_connector *intel_sdvo_connector;
- struct drm_display_mode *mode;
+ struct drm_display_mode *fixed_mode;
DRM_DEBUG_KMS("initialising LVDS device %d\n", device);
@@ -2917,16 +2917,9 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device)
intel_sdvo_get_lvds_modes(connector);
- list_for_each_entry(mode, &connector->probed_modes, head) {
- if (mode->type & DRM_MODE_TYPE_PREFERRED) {
- struct drm_display_mode *fixed_mode =
- drm_mode_duplicate(connector->dev, mode);
+ fixed_mode = intel_panel_edid_fixed_mode(intel_connector);
- intel_panel_init(intel_connector,
- fixed_mode, NULL);
- break;
- }
- }
+ intel_panel_init(intel_connector, fixed_mode, NULL);
if (!intel_panel_preferred_fixed_mode(intel_connector))
goto err;