Commit eaa2b31b authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Skip SINK_COUNT read on CH7511

CH7511 doesn't update SINK_COUNT properly so in order to detect
the device as connected we have to ignore SINK_COUNT.

In order to have access to the quirk list early enough we
must move the drm_dp_read_desc() call to happen earlier.
We can also skip re-reading this on eDP since we know it
won't change.

Cc: David S. <>
Cc: Peteris Rudzusiks <>
Tested-by: default avatarPeteris Rudzusiks <>

Signed-off-by: default avatarVille Syrjälä <>
Acked-by: Jani Nikula <> #irc
parent f774f096
......@@ -4221,8 +4221,14 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp)
if (!intel_dp_read_dpcd(intel_dp))
return false;
/* Don't clobber cached eDP rates. */
* Don't clobber cached eDP rates. Also skip re-reading
* the OUI/ID since we know it won't change.
if (!intel_dp_is_edp(intel_dp)) {
drm_dp_read_desc(&intel_dp->aux, &intel_dp->desc,
......@@ -4231,7 +4237,8 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp)
* Some eDP panels do not set a valid value for sink count, that is why
* it don't care about read it here and in intel_edp_init_dpcd().
if (!intel_dp_is_edp(intel_dp)) {
if (!intel_dp_is_edp(intel_dp) &&
!drm_dp_has_quirk(&intel_dp->desc, DP_DPCD_QUIRK_NO_SINK_COUNT)) {
u8 count;
ssize_t r;
......@@ -5377,9 +5384,6 @@ intel_dp_detect(struct drm_connector *connector,
if (INTEL_GEN(dev_priv) >= 11)
drm_dp_read_desc(&intel_dp->aux, &intel_dp->desc,
if (intel_dp->is_mst) {
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment