aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_dp_helper.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-18 04:15:27 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-22 16:34:45 -0400
commit0f037bdee1a12947a0c55b21a05f57793332bc07 (patch)
tree200cae72c4681af7849422ac1ee3b5937de55603 /drivers/gpu/drm/drm_dp_helper.c
parent01916270b840f7f37b7daab936add1747d6afbbf (diff)
drm: extract helpers to compute new training values from sink request
Safe for the minor difference that the intel versions get an offset into the link_status as an argument, both are the same again. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Acked-by: Dave Airlie <airlied@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/drm_dp_helper.c')
-rw-r--r--drivers/gpu/drm/drm_dp_helper.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 1378b789bd10..9461e2f27316 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -255,3 +255,30 @@ bool drm_dp_clock_recovery_ok(u8 link_status[DP_LINK_STATUS_SIZE],
255 return true; 255 return true;
256} 256}
257EXPORT_SYMBOL(drm_dp_clock_recovery_ok); 257EXPORT_SYMBOL(drm_dp_clock_recovery_ok);
258
259u8 drm_dp_get_adjust_request_voltage(u8 link_status[DP_LINK_STATUS_SIZE],
260 int lane)
261{
262 int i = DP_ADJUST_REQUEST_LANE0_1 + (lane >> 1);
263 int s = ((lane & 1) ?
264 DP_ADJUST_VOLTAGE_SWING_LANE1_SHIFT :
265 DP_ADJUST_VOLTAGE_SWING_LANE0_SHIFT);
266 u8 l = dp_link_status(link_status, i);
267
268 return ((l >> s) & 0x3) << DP_TRAIN_VOLTAGE_SWING_SHIFT;
269}
270EXPORT_SYMBOL(drm_dp_get_adjust_request_voltage);
271
272u8 drm_dp_get_adjust_request_pre_emphasis(u8 link_status[DP_LINK_STATUS_SIZE],
273 int lane)
274{
275 int i = DP_ADJUST_REQUEST_LANE0_1 + (lane >> 1);
276 int s = ((lane & 1) ?
277 DP_ADJUST_PRE_EMPHASIS_LANE1_SHIFT :
278 DP_ADJUST_PRE_EMPHASIS_LANE0_SHIFT);
279 u8 l = dp_link_status(link_status, i);
280
281 return ((l >> s) & 0x3) << DP_TRAIN_PRE_EMPHASIS_SHIFT;
282}
283EXPORT_SYMBOL(drm_dp_get_adjust_request_pre_emphasis);
284