summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorAnders Bauer <anders.bauer@stericsson.com>2011-09-21 17:05:26 +0200
committerJonas ABERG <jonas.aberg@stericsson.com>2011-10-27 11:44:56 +0200
commitd22c98edb922235c32c912bcfa26d8e92b020ab5 (patch)
treefdfeacb184ec907882355e054dc26843e163cdf7 /drivers/video
parent4c186f9a0272ece1332e9641601d943dd2a820b3 (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>
Diffstat (limited to 'drivers/video')
-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 1d9fef3525d..e0d3ec04f59 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -1036,7 +1036,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,
@@ -1056,7 +1057,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,
@@ -1076,10 +1078,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);
}