summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Bauer <anders.bauer@stericsson.com>2011-09-21 17:05:26 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:04:17 +0200
commit327b242535599f8b6b41db91e2d68e43b2515a01 (patch)
tree3592d5528c31968b10735f89edd26f4e57c2b074
parent22bdde68e00014e7a15d56a800848c0a880b9ecb (diff)
video: mcde: use DSI display with one data lane
This patch enables using displays with one DSI data lane. ST-Ericsson ID: 359227 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I852c55060c5c4ffa8b50eb6b8dbc3e002d4fe658 Signed-off-by: Anders Bauer <anders.bauer@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/35323 Tested-by: Jimmy RUBIN <jimmy.rubin@stericsson.com> Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Per PERSSON <per.xb.persson@stericsson.com> Reviewed-by: Marcus LORENTZON <marcus.xm.lorentzon@stericsson.com> Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
-rw-r--r--drivers/video/mcde/mcde_hw.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c
index 0e081ed7f0c..7de18aaea30 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -1037,7 +1037,8 @@ static int update_channel_static_registers(struct mcde_chnl_state *chnl)
DSI_MCTL_DPHY_TIMEOUT_LPRX_TO_VAL(0x3fff));
dsi_wreg(lnk, DSI_MCTL_MAIN_PHY_CTL,
DSI_MCTL_MAIN_PHY_CTL_WAIT_BURST_TIME(0xf) |
- DSI_MCTL_MAIN_PHY_CTL_LANE2_EN(true) |
+ DSI_MCTL_MAIN_PHY_CTL_LANE2_EN(
+ port->phy.dsi.num_data_lanes >= 2) |
DSI_MCTL_MAIN_PHY_CTL_CLK_CONTINUOUS(
port->phy.dsi.clk_cont));
dsi_wreg(lnk, DSI_MCTL_ULPOUT_TIME,
@@ -1057,7 +1058,8 @@ static int update_channel_static_registers(struct mcde_chnl_state *chnl)
DSI_MCTL_MAIN_EN_IF2_EN(port->ifc == 1));
while (dsi_rfld(lnk, DSI_MCTL_MAIN_STS, CLKLANE_READY) == 0 ||
dsi_rfld(lnk, DSI_MCTL_MAIN_STS, DAT1_READY) == 0 ||
- dsi_rfld(lnk, DSI_MCTL_MAIN_STS, DAT2_READY) == 0) {
+ (dsi_rfld(lnk, DSI_MCTL_MAIN_STS, DAT2_READY) == 0 &&
+ port->phy.dsi.num_data_lanes > 1)) {
mdelay(1);
if (i++ == 10) {
dev_warn(&mcde_dev->dev,
@@ -1077,10 +1079,10 @@ static int update_channel_static_registers(struct mcde_chnl_state *chnl)
MCDE_DSIVID0CONF0_DCSVID_NOTGEN(true));
if (port->mode == MCDE_PORTMODE_CMD) {
- if (port->ifc == DSI_VIDEO_MODE)
+ if (port->ifc == 0)
dsi_wfld(port->link, DSI_CMD_MODE_CTL, IF1_ID,
port->phy.dsi.virt_id);
- else if (port->ifc == DSI_CMD_MODE)
+ else if (port->ifc == 1)
dsi_wfld(port->link, DSI_CMD_MODE_CTL, IF2_ID,
port->phy.dsi.virt_id);
}