Merge "disp: msm: dp: add support for test pattern #4"

This commit is contained in:
qctecmdr 2019-07-27 06:17:11 -07:00 • committed by Gerrit - the friendly Code Review server
commit 81c67c168d
2 changed files with 21 additions and 7 deletions

View file

@ -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;
}

View file

@ -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;