Message ID | 1460029326-23018-1-git-send-email-shubhangi.shrivastava@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/04/16 12:42, 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. > > Fixes: 30d9aa4265fe ("drm/i915: Read sink_count dpcd always") > Cc: Ander Conselvan De Oliveira <conselvan2@gmail.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Reported-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Signed-off-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com> > Signed-off-by: Shubhangi Shrivastava <shubhangi.shrivastava@intel.com> Tested-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Thanks for the patch! Regards, Tvrtko > --- > 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; >
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;