Make sure display list usage is correctly disabled by always setting up
the corresponding registers, including when the display list feature
isn't used.

Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
 drivers/media/platform/vsp1/vsp1_dl.c  | 7 +++----
 drivers/media/platform/vsp1/vsp1_drv.c | 3 +--
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_dl.c 
b/drivers/media/platform/vsp1/vsp1_dl.c
index 3bdd002a9c80..7f9fe09af92d 100644
--- a/drivers/media/platform/vsp1/vsp1_dl.c
+++ b/drivers/media/platform/vsp1/vsp1_dl.c
@@ -243,15 +243,14 @@ done:
 
 void vsp1_dl_setup(struct vsp1_device *vsp1)
 {
-       u32 ctrl = (256 << VI6_DL_CTRL_AR_WAIT_SHIFT)
-                | VI6_DL_CTRL_DC2 | VI6_DL_CTRL_DC1 | VI6_DL_CTRL_DC0
-                | VI6_DL_CTRL_DLE;
+       u32 ctrl = (256 << VI6_DL_CTRL_AR_WAIT_SHIFT);
 
        /* The DRM pipeline operates with header-less display lists in
         * Continuous Frame Mode.
         */
        if (vsp1->drm)
-               ctrl |= VI6_DL_CTRL_CFM0 | VI6_DL_CTRL_NH0;
+               ctrl |= VI6_DL_CTRL_DC2 | VI6_DL_CTRL_DC1 | VI6_DL_CTRL_DC0
+                    |  VI6_DL_CTRL_DLE | VI6_DL_CTRL_CFM0 | VI6_DL_CTRL_NH0;
 
        vsp1_write(vsp1, VI6_DL_CTRL, ctrl);
        vsp1_write(vsp1, VI6_DL_SWAP, VI6_DL_SWAP_LWS);
diff --git a/drivers/media/platform/vsp1/vsp1_drv.c 
b/drivers/media/platform/vsp1/vsp1_drv.c
index cf469bd76f43..871cbeea5695 100644
--- a/drivers/media/platform/vsp1/vsp1_drv.c
+++ b/drivers/media/platform/vsp1/vsp1_drv.c
@@ -458,8 +458,7 @@ static int vsp1_device_init(struct vsp1_device *vsp1)
        vsp1_write(vsp1, VI6_DPR_HGT_SMPPT, (7 << VI6_DPR_SMPPT_TGW_SHIFT) |
                   (VI6_DPR_NODE_UNUSED << VI6_DPR_SMPPT_PT_SHIFT));
 
-       if (!vsp1->info->uapi)
-               vsp1_dl_setup(vsp1);
+       vsp1_dl_setup(vsp1);
 
        return 0;
 }
-- 
2.4.10

Reply via email to