[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <55bb35b0-b98b-9961-aa95-554f8af141f5@collabora.com>
Date: Tue, 23 Nov 2021 12:22:15 +0100
From: Andrzej Pietrasiewicz <andrzej.p@...labora.com>
To: Jernej Skrabec <jernej.skrabec@...il.com>,
linux-media@...r.kernel.org
Cc: ezequiel@...guardiasur.com.ar, nicolas.dufresne@...labora.com,
mchehab@...nel.org, robh+dt@...nel.org, mripard@...nel.org,
wens@...e.org, p.zabel@...gutronix.de, gregkh@...uxfoundation.org,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-sunxi@...ts.linux.dev, linux-kernel@...r.kernel.org,
linux-staging@...ts.linux.dev
Subject: Re: [PATCH 2/7] media: hantro: vp9: use double buffering if needed
W dniu 22.11.2021 o 19:46, Jernej Skrabec pisze:
> Some G2 variants need double buffering to be enabled in order to work
> correctly, like that found in Allwinner H6 SoC.
>
> Add platform quirk for that.
>
> Signed-off-by: Jernej Skrabec <jernej.skrabec@...il.com>
Reviewed-by: Andrzej Pietrasiewicz <andrzej.p@...labora.com>
> ---
> drivers/staging/media/hantro/hantro.h | 2 ++
> drivers/staging/media/hantro/hantro_g2_regs.h | 1 +
> drivers/staging/media/hantro/hantro_g2_vp9_dec.c | 2 ++
> 3 files changed, 5 insertions(+)
>
> diff --git a/drivers/staging/media/hantro/hantro.h b/drivers/staging/media/hantro/hantro.h
> index 33eb3e092cc1..d03824fa3222 100644
> --- a/drivers/staging/media/hantro/hantro.h
> +++ b/drivers/staging/media/hantro/hantro.h
> @@ -73,6 +73,7 @@ struct hantro_irq {
> * @num_clocks: number of clocks in the array
> * @reg_names: array of register range names
> * @num_regs: number of register range names in the array
> + * @double_buffer: core needs double buffering
> */
> struct hantro_variant {
> unsigned int enc_offset;
> @@ -94,6 +95,7 @@ struct hantro_variant {
> int num_clocks;
> const char * const *reg_names;
> int num_regs;
> + unsigned int double_buffer : 1;
> };
>
> /**
> diff --git a/drivers/staging/media/hantro/hantro_g2_regs.h b/drivers/staging/media/hantro/hantro_g2_regs.h
> index 9c857dd1ad9b..15a391a4650e 100644
> --- a/drivers/staging/media/hantro/hantro_g2_regs.h
> +++ b/drivers/staging/media/hantro/hantro_g2_regs.h
> @@ -270,6 +270,7 @@
> #define g2_apf_threshold G2_DEC_REG(55, 0, 0xffff)
>
> #define g2_clk_gate_e G2_DEC_REG(58, 16, 0x1)
> +#define g2_double_buffer_e G2_DEC_REG(58, 15, 0x1)
> #define g2_buswidth G2_DEC_REG(58, 8, 0x7)
> #define g2_max_burst G2_DEC_REG(58, 0, 0xff)
>
> diff --git a/drivers/staging/media/hantro/hantro_g2_vp9_dec.c b/drivers/staging/media/hantro/hantro_g2_vp9_dec.c
> index e04242d10fa2..d4fc649a4da1 100644
> --- a/drivers/staging/media/hantro/hantro_g2_vp9_dec.c
> +++ b/drivers/staging/media/hantro/hantro_g2_vp9_dec.c
> @@ -847,6 +847,8 @@ config_registers(struct hantro_ctx *ctx, const struct v4l2_ctrl_vp9_frame *dec_p
> hantro_reg_write(ctx->dev, &g2_clk_gate_e, 1);
> hantro_reg_write(ctx->dev, &g2_max_cb_size, 6);
> hantro_reg_write(ctx->dev, &g2_min_cb_size, 3);
> + if (ctx->dev->variant->double_buffer)
> + hantro_reg_write(ctx->dev, &g2_double_buffer_e, 1);
>
> config_output(ctx, dst, dec_params);
>
>
Powered by blists - more mailing lists