lkml.org 
[lkml]   [2022]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/20] media: s5p-mfc: Add support for rate controls in MFCv12
    Date
    In MFCv12, the rc configs are changed with support for
    CBR loose, CBR tight and Variable Bitrate (VBR) added.

    Cc: linux-fsd@tesla.com
    Signed-off-by: Smitha T Murthy <smitha.t@samsung.com>
    ---
    .../platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c | 22 +++++++++++++++----
    .../platform/samsung/s5p-mfc/s5p_mfc_opr_v6.h | 1 +
    2 files changed, 19 insertions(+), 4 deletions(-)

    diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c
    index 425c708eddcc..7db7945ea80f 100644
    --- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c
    +++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c
    @@ -1048,10 +1048,24 @@ static int s5p_mfc_set_enc_params(struct s5p_mfc_ctx *ctx)

    /* reaction coefficient */
    if (p->rc_frame) {
    - if (p->rc_reaction_coeff < TIGHT_CBR_MAX) /* tight CBR */
    - writel(1, mfc_regs->e_rc_mode);
    - else /* loose CBR */
    - writel(2, mfc_regs->e_rc_mode);
    + if (IS_MFCV12(dev)) {
    + /* loose CBR */
    + if (p->rc_reaction_coeff < LOOSE_CBR_MAX)
    + writel(1, mfc_regs->e_rc_mode);
    + /* tight CBR */
    + else if (p->rc_reaction_coeff < TIGHT_CBR_MAX)
    + writel(0, mfc_regs->e_rc_mode);
    + /* VBR */
    + else
    + writel(2, mfc_regs->e_rc_mode);
    + } else {
    + /* tight CBR */
    + if (p->rc_reaction_coeff < TIGHT_CBR_MAX)
    + writel(1, mfc_regs->e_rc_mode);
    + /* loose CBR */
    + else
    + writel(2, mfc_regs->e_rc_mode);
    + }
    }

    /* seq header ctrl */
    diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.h b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.h
    index ee2018ee95cc..f09499ba153d 100644
    --- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.h
    +++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.h
    @@ -44,6 +44,7 @@
    #define ENC_H264_LEVEL_MAX 42
    #define ENC_MPEG4_VOP_TIME_RES_MAX ((1 << 16) - 1)
    #define FRAME_DELTA_H264_H263 1
    +#define LOOSE_CBR_MAX 5
    #define TIGHT_CBR_MAX 10
    #define ENC_HEVC_RC_FRAME_RATE_MAX ((1 << 16) - 1)
    #define ENC_HEVC_QP_INDEX_MIN -12
    --
    2.17.1
    \
     
     \ /
      Last update: 2022-05-17 15:00    [W:3.338 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site