Browse Source

disp: msm: sde: configure ubwc ctrl ver in hw as per devicetree

This change fixes the 'commit 1aacef1e1d95 ("disp: msm:
sde: fix UBWC decoder version support for Kalama")'.
ubwc_ctrl must be set with global ubwc encoder version populated
from devicetree setting.

Change-Id: I85dc80e2e0436536a9b14e7e43199dc7b4421485
Signed-off-by: Yojana Juadi <[email protected]>
Signed-off-by: Gaurav LNU <[email protected]>
Yojana Juadi 1 year ago
parent
commit
5fb041a8fe
1 changed files with 11 additions and 4 deletions
  1. 11 4
      msm/sde/sde_hw_top.c

+ 11 - 4
msm/sde/sde_hw_top.c

@@ -382,19 +382,26 @@ void sde_hw_reset_ubwc(struct sde_hw_mdp *mdp, struct sde_mdss_cfg *m)
 	c = mdp->hw;
 	c.blk_off = 0x0;
 	ubwc_dec_version = SDE_REG_READ(&c, UBWC_DEC_HW_VERSION);
+	/* global ubwc version used in input fb encoding */
 	ubwc_enc_version = m->ubwc_rev;
 
 	if (IS_UBWC_40_SUPPORTED(ubwc_dec_version) || IS_UBWC_43_SUPPORTED(ubwc_dec_version)) {
-		u32 ver = IS_UBWC_43_SUPPORTED(ubwc_dec_version) ? 3 : 2;
-		u32 mode = 1;
+		/* for UBWC 2.0 ver = 0, mode = 0 will be programmed */
+		u32 ver = 0;
+		u32 mode = 0;
 		u32 reg = (m->mdp[0].ubwc_swizzle & 0x7) |
 			((m->mdp[0].ubwc_static & 0x1) << 3) |
 			((m->mdp[0].highest_bank_bit & 0x7) << 4) |
 			((m->macrotile_mode & 0x1) << 12);
 
-		if (IS_UBWC_30_SUPPORTED(ubwc_enc_version)) {
+		if (IS_UBWC_43_SUPPORTED(ubwc_enc_version)) {
+			ver = 3;
+			mode = 1;
+		} else if (IS_UBWC_40_SUPPORTED(ubwc_enc_version)) {
+			ver = 2;
+			mode = 1;
+		} else if (IS_UBWC_30_SUPPORTED(ubwc_enc_version)) {
 			ver = 1;
-			mode = 0;
 		}
 
 		SDE_REG_WRITE(&c, UBWC_STATIC, reg);