summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Rubin <jimmy.rubin@stericsson.com>2011-10-26 13:07:27 +0200
committerJonas ABERG <jonas.aberg@stericsson.com>2011-10-27 15:20:46 +0200
commit36c0d52b997f6f8225cadddb4fc1f603e65425b5 (patch)
treef3e95b28561f5f8581ce777f9651a71d6e505fbb
parentf6eae50e5396896a7475ada11b912837ff378fd3 (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 7034f6ed2e7..e24015ee7d3 100644
--- a/drivers/video/mcde/display-av8100.c
+++ b/drivers/video/mcde/display-av8100.c
@@ -1453,6 +1453,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 60be4e022f9..8a4788fb5ba 100644
--- a/drivers/video/mcde/display-samsung_s6d16d0.c
+++ b/drivers/video/mcde/display-samsung_s6d16d0.c
@@ -161,6 +161,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 aace9ff94f2..799cdae0e40 100644
--- a/drivers/video/mcde/display-sony_acx424akp_dsi.c
+++ b/drivers/video/mcde/display-sony_acx424akp_dsi.c
@@ -251,6 +251,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 e0d3ec04f59..a8f2e65a2c0 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -1023,6 +1023,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);
@@ -2085,7 +2088,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;