Hi Laurent,

On 17/02/2019 02:48, Laurent Pinchart wrote:
> 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.
> 

Seep. This could have ended badly if someone used both LIF's :)
 (which I'm sure happens)


> Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>

Reviewed-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>


> ---
>  drivers/media/platform/vsp1/vsp1_drm.c  | 4 ++--
>  drivers/media/platform/vsp1/vsp1_regs.h | 6 +++---
>  drivers/media/platform/vsp1/vsp1_wpf.c  | 2 +-
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/platform/vsp1/vsp1_drm.c 
> b/drivers/media/platform/vsp1/vsp1_drm.c
> index 8d86f618ec77..048190fd3a2d 100644
> --- a/drivers/media/platform/vsp1/vsp1_drm.c
> +++ b/drivers/media/platform/vsp1/vsp1_drm.c
> @@ -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);
> diff --git a/drivers/media/platform/vsp1/vsp1_regs.h 
> b/drivers/media/platform/vsp1/vsp1_regs.h
> index f6e4157095cc..1bb1d39c60d9 100644
> --- a/drivers/media/platform/vsp1/vsp1_regs.h
> +++ b/drivers/media/platform/vsp1/vsp1_regs.h
> @@ -39,12 +39,12 @@
>  #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))
> @@ -307,7 +307,7 @@
>  #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)
>  
>  /* 
> -----------------------------------------------------------------------------
> diff --git a/drivers/media/platform/vsp1/vsp1_wpf.c 
> b/drivers/media/platform/vsp1/vsp1_wpf.c
> index a07c5944b598..18c49e3a7875 100644
> --- a/drivers/media/platform/vsp1/vsp1_wpf.c
> +++ b/drivers/media/platform/vsp1/vsp1_wpf.c
> @@ -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,
> 

-- 
Regards
--
Kieran
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to