mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
media: s5p-mfc: Fix in register read and write for H264
commit06710cd5d2upstream. Few of the H264 encoder registers written were not getting reflected since the read values were not stored and getting overwritten. Fixes:6a9c6f6812("[media] s5p-mfc: Add variants to access mfc registers") Cc: stable@vger.kernel.org Cc: linux-fsd@tesla.com Signed-off-by: Smitha T Murthy <smitha.t@samsung.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
bd1b72f0c3
commit
f845a9d33b
@@ -1060,7 +1060,7 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
|
||||
}
|
||||
|
||||
/* aspect ratio VUI */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x1 << 5);
|
||||
reg |= ((p_h264->vui_sar & 0x1) << 5);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
@@ -1083,7 +1083,7 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
|
||||
|
||||
/* intra picture period for H.264 open GOP */
|
||||
/* control */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x1 << 4);
|
||||
reg |= ((p_h264->open_gop & 0x1) << 4);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
@@ -1097,23 +1097,23 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
|
||||
}
|
||||
|
||||
/* 'WEIGHTED_BI_PREDICTION' for B is disable */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x3 << 9);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
|
||||
/* 'CONSTRAINED_INTRA_PRED_ENABLE' is disable */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x1 << 14);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
|
||||
/* ASO */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x1 << 6);
|
||||
reg |= ((p_h264->aso & 0x1) << 6);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
|
||||
/* hier qp enable */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x1 << 8);
|
||||
reg |= ((p_h264->open_gop & 0x1) << 8);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
@@ -1134,7 +1134,7 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
|
||||
writel(reg, mfc_regs->e_h264_num_t_layer);
|
||||
|
||||
/* frame packing SEI generation */
|
||||
readl(mfc_regs->e_h264_options);
|
||||
reg = readl(mfc_regs->e_h264_options);
|
||||
reg &= ~(0x1 << 25);
|
||||
reg |= ((p_h264->sei_frame_packing & 0x1) << 25);
|
||||
writel(reg, mfc_regs->e_h264_options);
|
||||
|
||||
Reference in New Issue
Block a user