summaryrefslogtreecommitdiffstats
path: root/drivers/video/tegra/dc/dp.c
diff options
context:
space:
mode:
authorShu Zhong <shuz@nvidia.com>2015-07-20 21:57:25 -0400
committerMitch Luban <mluban@nvidia.com>2015-09-15 16:07:08 -0400
commit93faccfd17fba8596a9595292a3ae2fd6df66d69 (patch)
treeb6edceb71dfa6d12b1789620de13d8111aadfbbb /drivers/video/tegra/dc/dp.c
parent0e05b9ea5ddb886773a8084714631258928dba9c (diff)
video: tegra: dc: dp: fix max bw and lane count
Max link bandwidth and max lane count should both be limited by the min of the settings read from the sink and DT. Bug 200041308 Change-Id: Idef225e5022cc553497be4760408aeef86bdda45 Signed-off-by: Shu Zhong <shuz@nvidia.com> Reviewed-on: http://git-master/r/772605 (cherry picked from commit 8cfbba5d46ec4f7e4e4e1bde7a309e8e1db9992c) Reviewed-on: http://git-master/r/783745 Reviewed-by: Mitch Luban <mluban@nvidia.com> Tested-by: Mitch Luban <mluban@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/dc/dp.c')
-rw-r--r--drivers/video/tegra/dc/dp.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/tegra/dc/dp.c b/drivers/video/tegra/dc/dp.c
index 8ec35fa4f..05ec74157 100644
--- a/drivers/video/tegra/dc/dp.c
+++ b/drivers/video/tegra/dc/dp.c
@@ -1523,6 +1523,10 @@ static int tegra_dp_init_max_link_cfg(struct tegra_dc_dp_data *dp,
1523 &dpcd_data)); 1523 &dpcd_data));
1524 1524
1525 cfg->max_lane_count = dpcd_data & NV_DPCD_MAX_LANE_COUNT_MASK; 1525 cfg->max_lane_count = dpcd_data & NV_DPCD_MAX_LANE_COUNT_MASK;
1526 if (dp->pdata && dp->pdata->lanes &&
1527 dp->pdata->lanes < cfg->max_lane_count)
1528 cfg->max_lane_count = dp->pdata->lanes;
1529
1526 cfg->tps3_supported = 1530 cfg->tps3_supported =
1527 (dpcd_data & NV_DPCD_MAX_LANE_COUNT_TPS3_SUPPORTED_YES) ? 1531 (dpcd_data & NV_DPCD_MAX_LANE_COUNT_TPS3_SUPPORTED_YES) ?
1528 true : false; 1532 true : false;
@@ -1546,6 +1550,9 @@ static int tegra_dp_init_max_link_cfg(struct tegra_dc_dp_data *dp,
1546 1550
1547 CHECK_RET(tegra_dc_dp_dpcd_read(dp, NV_DPCD_MAX_LINK_BANDWIDTH, 1551 CHECK_RET(tegra_dc_dp_dpcd_read(dp, NV_DPCD_MAX_LINK_BANDWIDTH,
1548 &cfg->max_link_bw)); 1552 &cfg->max_link_bw));
1553 if (dp->pdata && dp->pdata->link_bw &&
1554 dp->pdata->link_bw < cfg->max_link_bw)
1555 cfg->max_link_bw = dp->pdata->link_bw;
1549 1556
1550 CHECK_RET(tegra_dc_dp_dpcd_read(dp, NV_DPCD_EDP_CONFIG_CAP, 1557 CHECK_RET(tegra_dc_dp_dpcd_read(dp, NV_DPCD_EDP_CONFIG_CAP,
1551 &dpcd_data)); 1558 &dpcd_data));
@@ -1565,8 +1572,7 @@ static int tegra_dp_init_max_link_cfg(struct tegra_dc_dp_data *dp,
1565 1572
1566 cfg->lane_count = cfg->max_lane_count; 1573 cfg->lane_count = cfg->max_lane_count;
1567 1574
1568 cfg->link_bw = (dp->pdata && dp->pdata->link_bw) ? 1575 cfg->link_bw = cfg->max_link_bw;
1569 dp->pdata->link_bw : cfg->max_link_bw;
1570 1576
1571 cfg->enhanced_framing = cfg->support_enhanced_framing; 1577 cfg->enhanced_framing = cfg->support_enhanced_framing;
1572 1578