summaryrefslogtreecommitdiff
path: root/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
diff options
context:
space:
mode:
authorJames Cowgill <james.cowgill@blaize.com>2021-11-11 23:01:08 +0100
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-11-30 12:08:23 +0100
commit41479adb5e52998ecf690b46164fffea3f5d65fd (patch)
tree134cb3fe65b88ccd32410922a6f61b87677d7182 /drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
parent615c6f28b9ad7efc9bfbef2cafc6a0c5bc0c21e0 (diff)
media: hantro: Avoid global variable for jpeg quantization tables
On a system with multiple encoders present, it's possible for two encoders to write to the global luma and chroma quantization tables at the same time if they both submit a JPEG frame to be encoded. Avoid this race by moving the tables into the `jpeg_ctx` structure which is stored on the stack. Signed-off-by: James Cowgill <james.cowgill@blaize.com> Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c')
-rw-r--r--drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c b/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
index 991213ce1610..37f9707c3691 100644
--- a/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
+++ b/drivers/staging/media/hantro/rockchip_vpu2_hw_jpeg_enc.c
@@ -143,9 +143,8 @@ int rockchip_vpu2_jpeg_enc_run(struct hantro_ctx *ctx)
rockchip_vpu2_set_src_img_ctrl(vpu, ctx);
rockchip_vpu2_jpeg_enc_set_buffers(vpu, ctx, &src_buf->vb2_buf);
- rockchip_vpu2_jpeg_enc_set_qtable(vpu,
- hantro_jpeg_get_qtable(0),
- hantro_jpeg_get_qtable(1));
+ rockchip_vpu2_jpeg_enc_set_qtable(vpu, jpeg_ctx.hw_luma_qtable,
+ jpeg_ctx.hw_chroma_qtable);
reg = VEPU_REG_OUTPUT_SWAP32
| VEPU_REG_OUTPUT_SWAP16