summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/msm
diff options
context:
space:
mode:
authorJayant Shekhar <jshekhar@codeaurora.org>2017-03-23 12:10:04 +0530
committerJayant Shekhar <jshekhar@codeaurora.org>2017-03-23 16:09:03 +0530
commit89227fd0ead0a315c050e9f87e985558ad28cd3e (patch)
tree45bd8d13c2db24612a8221372c1dacd42729bb69 /drivers/video/fbdev/msm
parent7dfdf9a42072fdb7949e142017721f65e5eeacec (diff)
msm: mdss: Update write gather register value for MDSS
First read the register and then OR it with enable bit for write gather register in MDP and Rotator. Change-Id: I2e284c7682055233851a5e69361e2ccfec647ff7 Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev/msm')
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c
index 5b284e624c7f..87ed56028edd 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c
@@ -602,9 +602,14 @@ int mdss_mdp_writeback_prepare_cwb(struct mdss_mdp_ctl *ctl,
mdss_mdp_irq_enable(MDSS_MDP_IRQ_TYPE_CWB_OVERFLOW, CWB_PPB_1);
}
- if (test_bit(MDSS_QOS_WB2_WRITE_GATHER_EN, ctl->mdata->mdss_qos_map))
+ if (test_bit(MDSS_QOS_WB2_WRITE_GATHER_EN, ctl->mdata->mdss_qos_map)) {
+ u32 reg = 0;
+
+ reg = MDSS_VBIF_READ(ctl->mdata,
+ MDSS_VBIF_WRITE_GATHER_EN, false);
MDSS_VBIF_WRITE(ctl->mdata, MDSS_VBIF_WRITE_GATHER_EN,
- BIT(6), false);
+ reg | BIT(6), false);
+ }
if (ctl->mdata->default_ot_wr_limit || ctl->mdata->default_ot_rd_limit)
mdss_mdp_set_ot_limit_wb(ctx, false);
@@ -1030,9 +1035,14 @@ static int mdss_mdp_writeback_display(struct mdss_mdp_ctl *ctl, void *arg)
return ret;
}
- if (test_bit(MDSS_QOS_WB2_WRITE_GATHER_EN, ctl->mdata->mdss_qos_map))
+ if (test_bit(MDSS_QOS_WB2_WRITE_GATHER_EN, ctl->mdata->mdss_qos_map)) {
+ u32 reg = 0;
+
+ reg = MDSS_VBIF_READ(ctl->mdata,
+ MDSS_VBIF_WRITE_GATHER_EN, false);
MDSS_VBIF_WRITE(ctl->mdata, MDSS_VBIF_WRITE_GATHER_EN,
- BIT(6), false);
+ reg | BIT(6), false);
+ }
mdss_mdp_set_intr_callback(ctx->intr_type, ctx->intf_num,
mdss_mdp_writeback_intr_done, ctl);