[RFC 09/13] drm/dp: Enable alternate scrambler when supported
Thierry Reding
thierry.reding at gmail.com
Wed Aug 12 08:06:37 PDT 2015
From: Thierry Reding <treding at nvidia.com>
If the sink is eDP and supports the alternate scrambler reset, enable
it.
Signed-off-by: Thierry Reding <treding at nvidia.com>
---
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
More information about the dri-devel
mailing list