]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/sdvo: Issue SetTargetOutput prior to GetAttachedDisplays
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 5 Jul 2023 20:21:10 +0000 (23:21 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 24 Aug 2023 12:20:03 +0000 (15:20 +0300)
I have at least one SDVO device (some Lenovo DVI-I ADD2 card,
based on Conexant CX25904) where GetAttachedDisplays returns
success but fails to report any attached displays unless we
precede the command with a SetTargetOutput. Make it so.

I wasn't able to spot anything in the SDVO spec stating that
this should be necessary, but real world wins over spec.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230705202122.17915-2-ville.syrjala@linux.intel.com
Acked-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_sdvo.c

index 7d25a64698e2f503797a700a001ed2af096ec325..7108d031271a95a0a761d16895a6c43e604cf8a4 100644 (file)
@@ -2135,6 +2135,10 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
        if (!INTEL_DISPLAY_ENABLED(i915))
                return connector_status_disconnected;
 
+       if (!intel_sdvo_set_target_output(intel_sdvo,
+                                         intel_sdvo_connector->output_flag))
+               return connector_status_unknown;
+
        if (!intel_sdvo_get_value(intel_sdvo,
                                  SDVO_CMD_GET_ATTACHED_DISPLAYS,
                                  &response, 2))