summaryrefslogtreecommitdiff
path: root/drivers/gpu
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2015-12-03 15:07:43 +0300
committerThierry Reding <treding@nvidia.com>2019-10-28 13:18:44 +0300
commitcb072eebfa038361b4f578b65a205ad0abc6fe88 (patch)
tree3e5d3e0925116499f3028b067c4fd789f26167f6 /drivers/gpu
parent480770440ad1681e5100e9719fc5f9bb8bc46ca8 (diff)
downloadlinux-cb072eebfa038361b4f578b65a205ad0abc6fe88.tar.xz
drm/tegra: dp: Read fast training capability from link
While probing the DisplayPort link, query the fast training capability. If supported, drivers can use the fast link training sequence instead of the more involved full link training sequence. Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/tegra/dp.c3
-rw-r--r--drivers/gpu/drm/tegra/dp.h7
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tegra/dp.c b/drivers/gpu/drm/tegra/dp.c
index f9234f66062d..97fc0225483f 100644
--- a/drivers/gpu/drm/tegra/dp.c
+++ b/drivers/gpu/drm/tegra/dp.c
@@ -11,12 +11,14 @@
static void drm_dp_link_caps_reset(struct drm_dp_link_caps *caps)
{
caps->enhanced_framing = false;
+ caps->fast_training = false;
}
void drm_dp_link_caps_copy(struct drm_dp_link_caps *dest,
const struct drm_dp_link_caps *src)
{
dest->enhanced_framing = src->enhanced_framing;
+ dest->fast_training = src->fast_training;
}
static void drm_dp_link_reset(struct drm_dp_link *link)
@@ -61,6 +63,7 @@ int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link)
link->max_lanes = drm_dp_max_lane_count(dpcd);
link->caps.enhanced_framing = drm_dp_enhanced_frame_cap(dpcd);
+ link->caps.fast_training = drm_dp_fast_training_cap(dpcd);
link->rate = link->max_rate;
link->lanes = link->max_lanes;
diff --git a/drivers/gpu/drm/tegra/dp.h b/drivers/gpu/drm/tegra/dp.h
index 6246f9afb5fe..d6ae477bab5c 100644
--- a/drivers/gpu/drm/tegra/dp.h
+++ b/drivers/gpu/drm/tegra/dp.h
@@ -21,6 +21,13 @@ struct drm_dp_link_caps {
* enhanced framing capability (mandatory as of DP 1.2)
*/
bool enhanced_framing;
+
+ /**
+ * @fast_training:
+ *
+ * AUX CH handshake not required for link training
+ */
+ bool fast_training;
};
void drm_dp_link_caps_copy(struct drm_dp_link_caps *dest,