[PATCH v4 4/7] media: vsp1: Fix addresses of display-related registers for VSP-DL
Kieran Bingham
kieran.bingham at ideasonboard.com
Sun Feb 17 20:27:20 UTC 2019
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+renesas at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+renesas at 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
More information about the dri-devel
mailing list