@@ -189,6 +189,7 @@ static int _msm_mdss_irq_domain_add(struct msm_mdss *msm_mdss)
189
189
#define UBWC_2_0 0x20000000
190
190
#define UBWC_3_0 0x30000000
191
191
#define UBWC_4_0 0x40000000
192
+ #define UBWC_4_3 0x40030000
192
193
193
194
static void msm_mdss_setup_ubwc_dec_20 (struct msm_mdss * msm_mdss )
194
195
{
@@ -227,7 +228,10 @@ static void msm_mdss_setup_ubwc_dec_40(struct msm_mdss *msm_mdss)
227
228
writel_relaxed (1 , msm_mdss -> mmio + UBWC_CTRL_2 );
228
229
writel_relaxed (0 , msm_mdss -> mmio + UBWC_PREDICTION_MODE );
229
230
} else {
230
- writel_relaxed (2 , msm_mdss -> mmio + UBWC_CTRL_2 );
231
+ if (data -> ubwc_dec_version == UBWC_4_3 )
232
+ writel_relaxed (3 , msm_mdss -> mmio + UBWC_CTRL_2 );
233
+ else
234
+ writel_relaxed (2 , msm_mdss -> mmio + UBWC_CTRL_2 );
231
235
writel_relaxed (1 , msm_mdss -> mmio + UBWC_PREDICTION_MODE );
232
236
}
233
237
}
@@ -271,6 +275,7 @@ static int msm_mdss_enable(struct msm_mdss *msm_mdss)
271
275
msm_mdss_setup_ubwc_dec_30 (msm_mdss );
272
276
break ;
273
277
case UBWC_4_0 :
278
+ case UBWC_4_3 :
274
279
msm_mdss_setup_ubwc_dec_40 (msm_mdss );
275
280
break ;
276
281
default :
@@ -569,6 +574,16 @@ static const struct msm_mdss_data sm8250_data = {
569
574
.macrotile_mode = 1 ,
570
575
};
571
576
577
+ static const struct msm_mdss_data sm8550_data = {
578
+ .ubwc_version = UBWC_4_0 ,
579
+ .ubwc_dec_version = UBWC_4_3 ,
580
+ .ubwc_swizzle = 6 ,
581
+ .ubwc_static = 1 ,
582
+ /* TODO: highest_bank_bit = 2 for LP_DDR4 */
583
+ .highest_bank_bit = 3 ,
584
+ .macrotile_mode = 1 ,
585
+ };
586
+
572
587
static const struct of_device_id mdss_dt_match [] = {
573
588
{ .compatible = "qcom,mdss" },
574
589
{ .compatible = "qcom,msm8998-mdss" },
@@ -585,7 +600,7 @@ static const struct of_device_id mdss_dt_match[] = {
585
600
{ .compatible = "qcom,sm8250-mdss" , .data = & sm8250_data },
586
601
{ .compatible = "qcom,sm8350-mdss" , .data = & sm8250_data },
587
602
{ .compatible = "qcom,sm8450-mdss" , .data = & sm8250_data },
588
- { .compatible = "qcom,sm8550-mdss" , .data = & sm8250_data },
603
+ { .compatible = "qcom,sm8550-mdss" , .data = & sm8550_data },
589
604
{}
590
605
};
591
606
MODULE_DEVICE_TABLE (of , mdss_dt_match );
0 commit comments