media: allegro: add helper to get entropy mode
authorMichael Tretter <m.tretter@pengutronix.de>
Thu, 3 Dec 2020 11:01:02 +0000 (12:01 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 27 Jan 2021 15:12:59 +0000 (16:12 +0100)
The driver only supports CAVLC for H.264, but HEVC only uses CABAC. As
the driver has to explicitly tell the MCU to use CABAC for HEVC, add a
helper function to get the entropy mode.

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/allegro-dvt/allegro-core.c

index ffb989b46bf9dcc2309d2fdc03029695136f07aa..93559ffe9fd248c52b3e578436d0589df6c40173 100644 (file)
@@ -944,6 +944,14 @@ static s16 get_qp_delta(int minuend, int subtrahend)
                return minuend - subtrahend;
 }
 
+static u32 allegro_channel_get_entropy_mode(struct allegro_channel *channel)
+{
+#define ALLEGRO_ENTROPY_MODE_CAVLC 0
+#define ALLEGRO_ENTROPY_MODE_CABAC 1
+
+       return ALLEGRO_ENTROPY_MODE_CAVLC;
+}
+
 static int fill_create_channel_param(struct allegro_channel *channel,
                                     struct create_channel_param *param)
 {
@@ -974,6 +982,7 @@ static int fill_create_channel_param(struct allegro_channel *channel,
        param->temporal_mvp_enable = channel->temporal_mvp_enable;
 
        param->dbf_ovr_en = channel->dbf_ovr_en;
+       param->entropy_mode = allegro_channel_get_entropy_mode(channel);
        param->rdo_cost_mode = 1;
        param->custom_lda = 1;
        param->lf = 1;