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

Ander Conselvan De Oliveira conselvan2 at gmail.com
Tue Apr 12 07:09:18 UTC 2016


On Tue, 2016-04-12 at 12:23 +0530, Shubhangi Shrivastava wrote:
> 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>

> ---
>  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 da0c3d2..bdc7e12 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -3806,7 +3806,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 */
> @@ -4339,6 +4339,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