diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-10-18 04:15:27 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-10-22 16:34:45 -0400 |
commit | 0f037bdee1a12947a0c55b21a05f57793332bc07 (patch) | |
tree | 200cae72c4681af7849422ac1ee3b5937de55603 /drivers/gpu/drm/drm_dp_helper.c | |
parent | 01916270b840f7f37b7daab936add1747d6afbbf (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.c | 27 |
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 | } |
257 | EXPORT_SYMBOL(drm_dp_clock_recovery_ok); | 257 | EXPORT_SYMBOL(drm_dp_clock_recovery_ok); |
258 | |||
259 | u8 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 | } | ||
270 | EXPORT_SYMBOL(drm_dp_get_adjust_request_voltage); | ||
271 | |||
272 | u8 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 | } | ||
283 | EXPORT_SYMBOL(drm_dp_get_adjust_request_pre_emphasis); | ||
284 | |||