Re: [PATCH] drm/i915: Ignore TMDS clock limit for DP++ when EDID override is set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 14 Dec 2017, Abdiel Janulgue <abdiel.janulgue@xxxxxxxxxxxxxxx> wrote:
> 4K modes testing by using dummy EDID data has never been working
> properly on boxes with DP++ (dual-mode) adaptors. The reason for
> this is that  those modes got pruned during hdmi mode validation.
> intel_hdmi_mode_valid returns CLOCK_HIGH  because the pixel clock
> reported by the 4k mode is higher than dual port TMDS clock limit.
>
> However 4k injection does work properly on machines that don't have
> DP++ adapters because the mode is never validated against the DP++
> TMDS clock limit.
>
> Ignore the limits when we're testing using overriden EDIDs.

What you're actually doing is *not* detecting dual mode adaptors when
you're using an override EDID. Which means, with this patch, you can't
use override EDID with dual mode adaptors, at all. (By proxy this means
you of course ignore the limits too...)

Slightly less damage would be changing the has_edid check above your
change to (has_edid && !connector->override_edid). Still not great, but
better than this. Oh, and deserves a comment in code.

The question is, how do you decide which ports to use for override EDID
testing? Why does the VBT on these machines say those ports presumably
have a dual mode adaptor?

BR,
Jani.

>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101649
> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> Cc: Jani Nikula <jani.nikula@xxxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Signed-off-by: Abdiel Janulgue <abdiel.janulgue@xxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index bced7b9..d133353 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1576,7 +1576,7 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid)
>  		}
>  	}
>  
> -	if (type == DRM_DP_DUAL_MODE_NONE)
> +	if (type == DRM_DP_DUAL_MODE_NONE || connector->override_edid)
>  		return;
>  
>  	hdmi->dp_dual_mode.type = type;

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux