drm/komeda: Clear enable bit in CU_INPUTx_CONTROL
authorLowry Li (Arm Technology China) <Lowry.Li@arm.com>
Wed, 15 May 2019 03:02:05 +0000 (04:02 +0100)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Wed, 19 Jun 2019 10:42:16 +0000 (11:42 +0100)
Besides clearing the input ID to zero, D71 compiz also has input
enable bit in CU_INPUTx_CONTROL which need to be cleared.

Signed-off-by: Lowry Li (Arm Technology China) <lowry.li@arm.com>
Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
drivers/gpu/drm/arm/display/komeda/d71/d71_component.c

index 1f7a5d5..7f4c23a 100644 (file)
@@ -430,8 +430,18 @@ static void d71_component_disable(struct komeda_component *c)
 
        malidp_write32(reg, BLK_CONTROL, 0);
 
-       for (i = 0; i < c->max_active_inputs; i++)
+       for (i = 0; i < c->max_active_inputs; i++) {
                malidp_write32(reg, BLK_INPUT_ID0 + (i << 2), 0);
+
+               /* Besides clearing the input ID to zero, D71 compiz also has
+                * input enable bit in CU_INPUTx_CONTROL which need to be
+                * cleared.
+                */
+               if (has_bit(c->id, KOMEDA_PIPELINE_COMPIZS))
+                       malidp_write32(reg, CU_INPUT0_CONTROL +
+                                      i * CU_PER_INPUT_REGS * 4,
+                                      CU_INPUT_CTRL_ALPHA(0xFF));
+       }
 }
 
 static void compiz_enable_input(u32 __iomem *id_reg,