summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Rubin <jimmy.rubin@stericsson.com>2011-10-26 13:07:27 +0200
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:04:18 +0200
commitf3fa23f7e79cc7e8cd04405bd82802579af14474 (patch)
tree8d2eaae83a86d1c066795331e443c3cbe15928c0
parent532bdc7382928cb92b22cfcb7cbeeb462d3974ba (diff)
video: mcde: Add host_eot_gen property
Some DSI displays requires a EOT packet after a transfer in HS. This is optional in the MIPI standard and dependant on the display IC if it should be used or not. ST-Ericsson ID: 367923 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ia7f8d37cd0ab80847a6098489790d133dbcccb64 Signed-off-by: Jimmy Rubin <jimmy.rubin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/35324 Reviewed-by: Marcus LORENTZON <marcus.xm.lorentzon@stericsson.com> Reviewed-by: Per PERSSON <per.xb.persson@stericsson.com>
-rw-r--r--drivers/video/mcde/display-av8100.c2
-rw-r--r--drivers/video/mcde/display-samsung_s6d16d0.c1
-rw-r--r--drivers/video/mcde/display-sony_acx424akp_dsi.c1
-rw-r--r--drivers/video/mcde/mcde_hw.c4
-rw-r--r--include/video/mcde.h1
5 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/mcde/display-av8100.c b/drivers/video/mcde/display-av8100.c
index 3c2ec85464a..b99fda2f34c 100644
--- a/drivers/video/mcde/display-av8100.c
+++ b/drivers/video/mcde/display-av8100.c
@@ -1454,6 +1454,8 @@ static int __devinit hdmi_probe(struct mcde_display_device *dev)
dev->set_pixel_format = hdmi_set_pixel_format;
dev->set_power_mode = hdmi_set_power_mode;
+ dev->port->phy.dsi.host_eot_gen = true;
+
/* Create sysfs files */
if (device_create_file(&dev->dev, &dev_attr_hdmisdtvswitch))
dev_info(&dev->dev,
diff --git a/drivers/video/mcde/display-samsung_s6d16d0.c b/drivers/video/mcde/display-samsung_s6d16d0.c
index 063c8996763..09c9e817e7f 100644
--- a/drivers/video/mcde/display-samsung_s6d16d0.c
+++ b/drivers/video/mcde/display-samsung_s6d16d0.c
@@ -162,6 +162,7 @@ static int __devinit samsung_s6d16d0_probe(struct mcde_display_device *ddev)
di->port.pixel_format = MCDE_PORTPIXFMT_DSI_24BPP;
di->port.sync_src = MCDE_SYNCSRC_BTA;
di->port.phy.dsi.num_data_lanes = 2;
+ di->port.phy.dsi.host_eot_gen = true;
/* TODO: Move UI to mcde_hw.c when clk_get_rate(dsi) is done */
di->port.phy.dsi.ui = 9;
diff --git a/drivers/video/mcde/display-sony_acx424akp_dsi.c b/drivers/video/mcde/display-sony_acx424akp_dsi.c
index 0b5b69bf23e..7c4f69a0cae 100644
--- a/drivers/video/mcde/display-sony_acx424akp_dsi.c
+++ b/drivers/video/mcde/display-sony_acx424akp_dsi.c
@@ -252,6 +252,7 @@ static int __devinit sony_acx424akp_probe(struct mcde_display_device *dev)
di->port.sync_src = MCDE_SYNCSRC_BTA;
di->port.phy.dsi.num_data_lanes = 2;
di->port.link = port->link;
+ di->port.phy.dsi.host_eot_gen = true;
/* TODO: Move UI to mcde_hw.c when clk_get_rate(dsi) is done */
di->port.phy.dsi.ui = 9;
diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c
index 7de18aaea30..d47d1fddaad 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -1024,6 +1024,9 @@ static int update_channel_static_registers(struct mcde_chnl_state *chnl)
dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, REG_TE_EN, true);
}
+ dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, HOST_EOT_GEN,
+ port->phy.dsi.host_eot_gen);
+
dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, DLX_REMAP_EN,
port->phy.dsi.data_lanes_swap);
@@ -2086,7 +2089,6 @@ static void dsi_te_poll_req(struct mcde_chnl_state *chnl)
dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, IF2_TE_EN, true);
dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, BTA_EN, true);
dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, READ_EN, true);
- dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, HOST_EOT_GEN, true);
dsi_wfld(lnk, DSI_CMD_MODE_CTL, TE_TIMEOUT, 0x3FF);
dsi_wfld(lnk, DSI_MCTL_MAIN_DATA_CTL, TE_POLLING_EN, true);
}
diff --git a/include/video/mcde.h b/include/video/mcde.h
index 2a64be62ac9..6b5508e3ddd 100644
--- a/include/video/mcde.h
+++ b/include/video/mcde.h
@@ -115,6 +115,7 @@ struct mcde_port {
u8 num_data_lanes;
u8 ui;
bool clk_cont;
+ bool host_eot_gen;
/* DSI data lanes are swapped if true */
bool data_lanes_swap;