diff options
author | Jimmy Rubin <jimmy.rubin@stericsson.com> | 2011-10-26 13:07:27 +0200 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:04:18 +0200 |
commit | f3fa23f7e79cc7e8cd04405bd82802579af14474 (patch) | |
tree | 8d2eaae83a86d1c066795331e443c3cbe15928c0 | |
parent | 532bdc7382928cb92b22cfcb7cbeeb462d3974ba (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.c | 2 | ||||
-rw-r--r-- | drivers/video/mcde/display-samsung_s6d16d0.c | 1 | ||||
-rw-r--r-- | drivers/video/mcde/display-sony_acx424akp_dsi.c | 1 | ||||
-rw-r--r-- | drivers/video/mcde/mcde_hw.c | 4 | ||||
-rw-r--r-- | include/video/mcde.h | 1 |
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; |