From: Thierry Reding <treding@xxxxxxxxxx> If the sink is eDP and supports the alternate scrambler reset, enable it. Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> --- drivers/gpu/drm/drm_dp_helper.c | 9 +++++++++ include/drm/drm_dp_helper.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c index d503cc3f1772..543349e14481 100644 --- a/drivers/gpu/drm/drm_dp_helper.c +++ b/drivers/gpu/drm/drm_dp_helper.c @@ -334,6 +334,8 @@ int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link) link->capabilities |= DP_LINK_CAP_ANSI_8B10B; if (values[13] & DP_ALTERNATE_SCRAMBLER_RESET_CAP) { + link->capabilities |= DP_LINK_CAP_ALTERNATE_SCRAMBLER_RESET; + err = drm_dp_dpcd_readb(aux, DP_EDP_DPCD_REV, &value); if (err < 0) return err; @@ -468,6 +470,13 @@ int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link) if (err < 0) return err; + if (link->capabilities & DP_LINK_CAP_ALTERNATE_SCRAMBLER_RESET) { + err = drm_dp_dpcd_writeb(aux, DP_EDP_CONFIGURATION_SET, + DP_ALTERNATE_SCRAMBLER_RESET_ENABLE); + if (err < 0) + return err; + } + return 0; } EXPORT_SYMBOL(drm_dp_link_configure); diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index 2165b9ef8504..600347f8cdd4 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h @@ -758,6 +758,7 @@ int drm_dp_dpcd_read_link_status(struct drm_dp_aux *aux, #define DP_LINK_CAP_FAST_TRAINING (1 << 1) #define DP_LINK_CAP_ANSI_8B10B (1 << 2) #define DP_LINK_CAP_TPS3 (1 << 3) +#define DP_LINK_CAP_ALTERNATE_SCRAMBLER_RESET (1 << 4) struct drm_dp_link { unsigned char revision; -- 2.4.5 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel