summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandeep Panda <spanda@codeaurora.org>2017-04-13 13:11:40 +0530
committerSandeep Panda <spanda@codeaurora.org>2017-04-15 12:37:43 +0530
commit2eea8dc19dfca6c0ef550e1dddafb501b48ef264 (patch)
treeb855180c281ea8b4ac02e083e7faf94280584b00
parentd7ac7905d99dde0fd5c4e124d2d220f991074763 (diff)
msm: mdss: avoid fake ack and overflow errors during ESD
In the current implementation DSI driver is masking the fake ACK and overflow errors that might occur during if BTA mechanism is used to check ESD. But if register read mechanism is used to check ESD, then also embedded BTA will be triggered and fake ACK and overflow errors might be reported. Mask the same for register based ESD check also. Change-Id: If1ee0a7cc0171b96a3b7298aa5201372c6eb8139 Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_dsi_host.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c
index 37f3929a3a2c..3b48bb642792 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_host.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_host.c
@@ -3031,7 +3031,10 @@ bool mdss_dsi_ack_err_status(struct mdss_dsi_ctrl_pdata *ctrl)
* warning message is ignored.
*/
if (ctrl->panel_data.panel_info.esd_check_enabled &&
- (ctrl->status_mode == ESD_BTA) && (status & 0x1008000))
+ ((ctrl->status_mode == ESD_BTA) ||
+ (ctrl->status_mode == ESD_REG) ||
+ (ctrl->status_mode == ESD_REG_NT35596)) &&
+ (status & 0x1008000))
return false;
pr_err("%s: status=%x\n", __func__, status);
@@ -3262,8 +3265,10 @@ irqreturn_t mdss_dsi_isr(int irq, void *ptr)
* cleared.
*/
if (ctrl->panel_data.panel_info.esd_check_enabled &&
- (ctrl->status_mode == ESD_BTA) &&
- (ctrl->panel_mode == DSI_VIDEO_MODE)) {
+ ((ctrl->status_mode == ESD_BTA) ||
+ (ctrl->status_mode == ESD_REG) ||
+ (ctrl->status_mode == ESD_REG_NT35596)) &&
+ (ctrl->panel_mode == DSI_VIDEO_MODE)) {
isr &= ~DSI_INTR_ERROR;
/* clear only overflow */
mdss_dsi_set_reg(ctrl, 0x0c, 0x44440000, 0x44440000);