Jernej, On Thu, Jun 16, 2022 at 10:25:12PM +0200, Jernej Skrabec wrote: > Now that we have proper infrastructure for postprocessing 10-bit > formats, store VP9 bit depth in context. > > Signed-off-by: Jernej Skrabec <jernej.skrabec@xxxxxxxxx> > --- > drivers/staging/media/hantro/hantro_drv.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c > index 01d33dcb0467..afddf7ac0731 100644 > --- a/drivers/staging/media/hantro/hantro_drv.c > +++ b/drivers/staging/media/hantro/hantro_drv.c > @@ -324,6 +324,24 @@ static int hantro_hevc_s_ctrl(struct v4l2_ctrl *ctrl) > return 0; > } > > +static int hantro_vp9_s_ctrl(struct v4l2_ctrl *ctrl) > +{ > + struct hantro_ctx *ctx; > + > + ctx = container_of(ctrl->handler, > + struct hantro_ctx, ctrl_handler); > + > + switch (ctrl->id) { > + case V4L2_CID_STATELESS_VP9_FRAME: > + ctx->bit_depth = ctrl->p_new.p_vp9_frame->bit_depth; Since this affects the possible formats, shouldn't it reset the decoded format? In other words, it would mean calling hantro_reset_raw_fmt(). Hopefully, that would be OK and not cause any weird issues? Nicolas, any feedback? Thanks, Ezequiel > + break; > + default: > + return -EINVAL; > + } > + > + return 0; > +} > + > static const struct v4l2_ctrl_ops hantro_ctrl_ops = { > .try_ctrl = hantro_try_ctrl, > }; > @@ -336,6 +354,10 @@ static const struct v4l2_ctrl_ops hantro_hevc_ctrl_ops = { > .s_ctrl = hantro_hevc_s_ctrl, > }; > > +static const struct v4l2_ctrl_ops hantro_vp9_ctrl_ops = { > + .s_ctrl = hantro_vp9_s_ctrl, > +}; > + > #define HANTRO_JPEG_ACTIVE_MARKERS (V4L2_JPEG_ACTIVE_MARKER_APP0 | \ > V4L2_JPEG_ACTIVE_MARKER_COM | \ > V4L2_JPEG_ACTIVE_MARKER_DQT | \ > @@ -503,6 +525,7 @@ static const struct hantro_ctrl controls[] = { > .codec = HANTRO_VP9_DECODER, > .cfg = { > .id = V4L2_CID_STATELESS_VP9_FRAME, > + .ops = &hantro_vp9_ctrl_ops, > }, > }, { > .codec = HANTRO_VP9_DECODER, > -- > 2.36.1 >