mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
Merge "disp: msm: dp: add support for test pattern #4"
This commit is contained in:
commit
81c67c168d
2 changed files with 21 additions and 7 deletions
|
|
@ -1212,6 +1212,7 @@ static void dp_catalog_ctrl_set_pattern(struct dp_catalog_ctrl *ctrl,
|
|||
{
|
||||
int bit, cnt = 10;
|
||||
u32 data;
|
||||
const u32 link_training_offset = 3;
|
||||
struct dp_catalog_private *catalog;
|
||||
struct dp_io_data *io_data;
|
||||
|
||||
|
|
@ -1223,17 +1224,28 @@ static void dp_catalog_ctrl_set_pattern(struct dp_catalog_ctrl *ctrl,
|
|||
catalog = dp_catalog_get_priv(ctrl);
|
||||
io_data = catalog->io.dp_link;
|
||||
|
||||
bit = 1;
|
||||
bit <<= (pattern - 1);
|
||||
DP_DEBUG("hw: bit=%d train=%d\n", bit, pattern);
|
||||
dp_write(catalog->exe_mode, io_data, DP_STATE_CTRL, bit);
|
||||
switch (pattern) {
|
||||
case DP_TRAINING_PATTERN_4:
|
||||
bit = 3;
|
||||
break;
|
||||
case DP_TRAINING_PATTERN_3:
|
||||
case DP_TRAINING_PATTERN_2:
|
||||
case DP_TRAINING_PATTERN_1:
|
||||
bit = pattern - 1;
|
||||
break;
|
||||
default:
|
||||
DP_ERR("invalid pattern\n");
|
||||
return;
|
||||
}
|
||||
|
||||
bit = 8;
|
||||
bit <<= (pattern - 1);
|
||||
DP_DEBUG("hw: bit=%d train=%d\n", bit, pattern);
|
||||
dp_write(catalog->exe_mode, io_data, DP_STATE_CTRL, BIT(bit));
|
||||
|
||||
bit += link_training_offset;
|
||||
|
||||
while (cnt--) {
|
||||
data = dp_read(catalog->exe_mode, io_data, DP_MAINLINK_READY);
|
||||
if (data & bit)
|
||||
if (data & BIT(bit))
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -453,7 +453,9 @@ static int dp_ctrl_link_training_2(struct dp_ctrl_private *ctrl)
|
|||
/* Make sure to clear the current pattern before starting a new one */
|
||||
wmb();
|
||||
|
||||
if (drm_dp_tps3_supported(ctrl->panel->dpcd))
|
||||
if (drm_dp_tps4_supported(ctrl->panel->dpcd))
|
||||
dpcd_pattern = DP_TRAINING_PATTERN_4;
|
||||
else if (drm_dp_tps3_supported(ctrl->panel->dpcd))
|
||||
dpcd_pattern = DP_TRAINING_PATTERN_3;
|
||||
else
|
||||
dpcd_pattern = DP_TRAINING_PATTERN_2;
|
||||
|
|
|
|||
Loading…
Reference in a new issue