Message ID | 20250428-qcom-iris-hevc-vp9-v2-2-3a6013ecb8a5@quicinc.com |
---|---|
State | New |
Headers | show |
Series | Add support for HEVC and VP9 codecs in decoder | expand |
On 4/28/2025 2:58 PM, Dikshita Agarwal wrote: > Update the width, height and buffer size of CAPTURE based on the > resolution set to OUTPUT via VIDIOC_S_FMT. This is required to set the > updated capture resolution to firmware when S_FMT is called only for > OUTPUT. > > Cc: stable@vger.kernel.org > Fixes: b530b95de22c ("media: iris: implement s_fmt, g_fmt and try_fmt ioctls") > Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com> > --- > drivers/media/platform/qcom/iris/iris_vdec.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/platform/qcom/iris/iris_vdec.c > index 2c1a7162d2da..71751365b000 100644 > --- a/drivers/media/platform/qcom/iris/iris_vdec.c > +++ b/drivers/media/platform/qcom/iris/iris_vdec.c > @@ -171,6 +171,11 @@ int iris_vdec_s_fmt(struct iris_inst *inst, struct v4l2_format *f) > output_fmt->fmt.pix_mp.ycbcr_enc = f->fmt.pix_mp.ycbcr_enc; > output_fmt->fmt.pix_mp.quantization = f->fmt.pix_mp.quantization; > > + /* Update capture format based on new ip w/h */ > + output_fmt->fmt.pix_mp.width = ALIGN(f->fmt.pix_mp.width, 128); > + output_fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 32); > + inst->buffers[BUF_OUTPUT].size = iris_get_buffer_size(inst, BUF_OUTPUT); > + > inst->crop.left = 0; > inst->crop.top = 0; > inst->crop.width = f->fmt.pix_mp.width; > Acked-by: Vikash Garodia <quic_vgarodia@quicinc.com>
diff --git a/drivers/media/platform/qcom/iris/iris_vdec.c b/drivers/media/platform/qcom/iris/iris_vdec.c index 2c1a7162d2da..71751365b000 100644 --- a/drivers/media/platform/qcom/iris/iris_vdec.c +++ b/drivers/media/platform/qcom/iris/iris_vdec.c @@ -171,6 +171,11 @@ int iris_vdec_s_fmt(struct iris_inst *inst, struct v4l2_format *f) output_fmt->fmt.pix_mp.ycbcr_enc = f->fmt.pix_mp.ycbcr_enc; output_fmt->fmt.pix_mp.quantization = f->fmt.pix_mp.quantization; + /* Update capture format based on new ip w/h */ + output_fmt->fmt.pix_mp.width = ALIGN(f->fmt.pix_mp.width, 128); + output_fmt->fmt.pix_mp.height = ALIGN(f->fmt.pix_mp.height, 32); + inst->buffers[BUF_OUTPUT].size = iris_get_buffer_size(inst, BUF_OUTPUT); + inst->crop.left = 0; inst->crop.top = 0; inst->crop.width = f->fmt.pix_mp.width;