[Intel-gfx] [RESEND FOR CI PATCH 2/2] drm/i915: Fixing eDP detection on certain platforms

Lyude cpaul at redhat.com
Thu Apr 21 20:59:29 UTC 2016


Ping. Any chance we could get these pushed upstream soon?

On Wed, 2016-04-13 at 10:47 +0300, Ander Conselvan de Oliveira wrote:
> From: Shubhangi Shrivastava <shubhangi.shrivastava at intel.com>
> 
> Since commit 30d9aa4265fe ("drm/i915: Read sink_count dpcd always"),
> the status of a DP connector depends on its sink count value.
> However, some eDP panels don't set that value appropriately,
> causing them to be reported as disconnected.
> Fix this by ignoring sink count for eDP.
> 
> v2: Rephrased commit message. (Ander)
>     In case of eDP, returning status as connected if DPCD
>     read succeeds to avoid any further operations.
> 
> Fixes: 30d9aa4265fe ("drm/i915: Read sink_count dpcd always")
> Cc: Ander Conselvan De Oliveira <conselvan2 at gmail.com>
> Cc: Jani Nikula <jani.nikula at linux.intel.com>
> Reported-by: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani at intel.com>
> Signed-off-by: Shubhangi Shrivastava <shubhangi.shrivastava at intel.com>
> Tested-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Reviewed-by: Ander Conselvan de Oliveira <conselvan2 at gmail.com>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.
> com>
> Link: http://patchwork.freedesktop.org/patch/msgid/1460444034-22320-1-git-send
> -email-shubhangi.shrivastava at intel.com
> ---
>  drivers/gpu/drm/i915/intel_dp.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 6c6f95a2..460c421 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -3776,7 +3776,7 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp)
>  	 * downstream port information. So, an early return here saves
>  	 * time from performing other operations which are not required.
>  	 */
> -	if (!intel_dp->sink_count)
> +	if (!is_edp(intel_dp) && !intel_dp->sink_count)
>  		return false;
>  
>  	/* Check if the panel supports PSR */
> @@ -4309,6 +4309,9 @@ intel_dp_detect_dpcd(struct intel_dp *intel_dp)
>  	if (!intel_dp_get_dpcd(intel_dp))
>  		return connector_status_disconnected;
>  
> +	if (is_edp(intel_dp))
> +		return connector_status_connected;
> +
>  	/* if there's no downstream port, we're done */
>  	if (!(dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT))
>  		return connector_status_connected;


More information about the Intel-gfx mailing list