media: vsp1: Fix addresses of display-related registers for VSP-DL
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Sat, 16 Feb 2019 01:27:43 +0000 (03:27 +0200)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 18 Mar 2019 15:23:47 +0000 (17:23 +0200)
The VSP-DL instances have two LIFs, and thus two copies of the
VI6_DISP_IRQ_ENB, VI6_DISP_IRQ_STA and VI6_WPF_WRBCK_CTRL registers. Fix
the corresponding macros accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vsp1/vsp1_drm.c
drivers/media/platform/vsp1/vsp1_regs.h
drivers/media/platform/vsp1/vsp1_wpf.c

index 8489538..f5e810c 100644 (file)
@@ -700,8 +700,8 @@ int vsp1_du_setup_lif(struct device *dev, unsigned int pipe_index,
        drm_pipe->du_private = cfg->callback_data;
 
        /* Disable the display interrupts. */
-       vsp1_write(vsp1, VI6_DISP_IRQ_STA, 0);
-       vsp1_write(vsp1, VI6_DISP_IRQ_ENB, 0);
+       vsp1_write(vsp1, VI6_DISP_IRQ_STA(pipe_index), 0);
+       vsp1_write(vsp1, VI6_DISP_IRQ_ENB(pipe_index), 0);
 
        /* Configure all entities in the pipeline. */
        vsp1_du_pipeline_configure(pipe);
index f6e4157..1bb1d39 100644 (file)
 #define VI6_WFP_IRQ_STA_DFE            (1 << 1)
 #define VI6_WFP_IRQ_STA_FRE            (1 << 0)
 
-#define VI6_DISP_IRQ_ENB               0x0078
+#define VI6_DISP_IRQ_ENB(n)            (0x0078 + (n) * 60)
 #define VI6_DISP_IRQ_ENB_DSTE          (1 << 8)
 #define VI6_DISP_IRQ_ENB_MAEE          (1 << 5)
 #define VI6_DISP_IRQ_ENB_LNEE(n)       (1 << (n))
 
-#define VI6_DISP_IRQ_STA               0x007c
+#define VI6_DISP_IRQ_STA(n)            (0x007c + (n) * 60)
 #define VI6_DISP_IRQ_STA_DST           (1 << 8)
 #define VI6_DISP_IRQ_STA_MAE           (1 << 5)
 #define VI6_DISP_IRQ_STA_LNE(n)                (1 << (n))
 #define VI6_WPF_DSTM_ADDR_C0           0x1028
 #define VI6_WPF_DSTM_ADDR_C1           0x102c
 
-#define VI6_WPF_WRBCK_CTRL             0x1034
+#define VI6_WPF_WRBCK_CTRL(n)          (0x1034 + (n) * 0x100)
 #define VI6_WPF_WRBCK_CTRL_WBMD                (1 << 0)
 
 /* -----------------------------------------------------------------------------
index a07c594..18c49e3 100644 (file)
@@ -291,7 +291,7 @@ static void wpf_configure_stream(struct vsp1_entity *entity,
        vsp1_dl_body_write(dlb, VI6_DPR_WPF_FPORCH(wpf->entity.index),
                           VI6_DPR_WPF_FPORCH_FP_WPFN);
 
-       vsp1_dl_body_write(dlb, VI6_WPF_WRBCK_CTRL, 0);
+       vsp1_dl_body_write(dlb, VI6_WPF_WRBCK_CTRL(wpf->entity.index), 0);
 
        /*
         * Sources. If the pipeline has a single input and BRx is not used,