Add structures and context for HEVC support

Signed-off-by: Benjamin Gaignard <benjamin.gaign...@collabora.com>
Signed-off-by: Ezequiel Garcia <ezequ...@collabora.com>
Signed-off-by: Adrian Ratiu <adrian.ra...@collabora.com>
---
 drivers/staging/media/hantro/hantro.h    |  3 ++
 drivers/staging/media/hantro/hantro_hw.h | 35 ++++++++++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git a/drivers/staging/media/hantro/hantro.h 
b/drivers/staging/media/hantro/hantro.h
index 2a566dfc2fe3..8459643657ab 100644
--- a/drivers/staging/media/hantro/hantro.h
+++ b/drivers/staging/media/hantro/hantro.h
@@ -34,6 +34,7 @@ struct hantro_codec_ops;
 #define HANTRO_MPEG2_DECODER   BIT(16)
 #define HANTRO_VP8_DECODER     BIT(17)
 #define HANTRO_H264_DECODER    BIT(18)
+#define HANTRO_HEVC_DECODER    BIT(19)
 #define HANTRO_DECODERS                0xffff0000
 
 #define HANTRO_G1_REV          0x6731
@@ -224,6 +225,7 @@ struct hantro_dev {
  * @jpeg_enc:          JPEG-encoding context.
  * @mpeg2_dec:         MPEG-2-decoding context.
  * @vp8_dec:           VP8-decoding context.
+ * @hevc_dec:          HEVC-decoding context.
  */
 struct hantro_ctx {
        struct hantro_dev *dev;
@@ -250,6 +252,7 @@ struct hantro_ctx {
                struct hantro_jpeg_enc_hw_ctx jpeg_enc;
                struct hantro_mpeg2_dec_hw_ctx mpeg2_dec;
                struct hantro_vp8_dec_hw_ctx vp8_dec;
+               struct hantro_hevc_dec_hw_ctx hevc_dec;
        };
 };
 
diff --git a/drivers/staging/media/hantro/hantro_hw.h 
b/drivers/staging/media/hantro/hantro_hw.h
index 34c9e4649a25..191c5ba4a599 100644
--- a/drivers/staging/media/hantro/hantro_hw.h
+++ b/drivers/staging/media/hantro/hantro_hw.h
@@ -90,6 +90,41 @@ struct hantro_h264_dec_hw_ctx {
        struct hantro_h264_dec_ctrls ctrls;
 };
 
+/**
+ * struct hantro_hevc_dec_ctrls
+ * @scaling:   Scaling info
+ * @decode_params: Decode params
+ * @sps:       SPS info
+ * @pps:       PPS info
+ */
+struct hantro_hevc_dec_ctrls {
+       const struct v4l2_ctrl_hevc_scaling_matrix *scaling;
+       const struct v4l2_ctrl_hevc_decode_params *decode_params;
+       const struct v4l2_ctrl_hevc_sps *sps;
+       const struct v4l2_ctrl_hevc_pps *pps;
+};
+
+/**
+ * struct hantro_hevc_dec_hw_ctx
+ * @scaling_lists:     Scaling lists buffer
+ * @tile_sizes:                Tile sizes buffer
+ * @tile_filter:       Tile vertical filter buffer
+ * @tile_sao:          Tile SAO buffer
+ * @tile_bsd:          Tile BSD control buffer
+ * @dpb:       DPB
+ * @reflists:  P/B0/B1 reflists
+ * @ctrls:     V4L2 controls attached to a run
+ */
+struct hantro_hevc_dec_hw_ctx {
+       struct hantro_aux_buf scaling_lists;
+       struct hantro_aux_buf tile_sizes;
+       struct hantro_aux_buf tile_filter;
+       struct hantro_aux_buf tile_sao;
+       struct hantro_aux_buf tile_bsd;
+       struct hantro_hevc_dec_ctrls ctrls;
+       unsigned int num_tile_cols_allocated;
+};
+
 /**
  * struct hantro_mpeg2_dec_hw_ctx
  * @qtable:            Quantization table
-- 
2.25.1

Reply via email to