mdss: dsi: ensure proper clearing of DSI RDBK registers

During high performance scenarios, sometimes the DSI RDBK registers
are not getting cleared. This can cause improper read return values
since the RDBK data count will not get reset in such cases. Add
memory barriers during reset of RDBK registers to ensure that
the registers are cleared.

Change-Id: I870744b58c3e4064ca9f04f92e831d69139336db
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
This commit is contained in:
Padmanabhan Komanduru 2014-11-19 15:38:01 +05:30 committed by David Keitel
parent ad245195a0
commit ad16d856d5

View file

@ -1395,7 +1395,9 @@ do_send:
if (ctrl_rev >= MDSS_DSI_HW_REV_101) { if (ctrl_rev >= MDSS_DSI_HW_REV_101) {
/* clear the RDBK_DATA registers */ /* clear the RDBK_DATA registers */
MIPI_OUTP(ctrl->ctrl_base + 0x01d4, 0x1); MIPI_OUTP(ctrl->ctrl_base + 0x01d4, 0x1);
wmb(); /* make sure the RDBK registers are cleared */
MIPI_OUTP(ctrl->ctrl_base + 0x01d4, 0x0); MIPI_OUTP(ctrl->ctrl_base + 0x01d4, 0x0);
wmb(); /* make sure the RDBK registers are cleared */
} }
mdss_dsi_wait4video_eng_busy(ctrl); /* video mode only */ mdss_dsi_wait4video_eng_busy(ctrl); /* video mode only */