This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: hantro: vp9: use double buffering if needed
Author:  Jernej Skrabec <[email protected]>
Date:    Mon Nov 29 19:26:27 2021 +0100

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.

Reviewed-by: Andrzej Pietrasiewicz <[email protected]>
Signed-off-by: Jernej Skrabec <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 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);
 

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to