On 20/11/2024 15:46, Dikshita Agarwal wrote: > From: Vedang Nagar <quic_vnagar@xxxxxxxxxxx> > > Implement g_selection ioctl in the driver with necessary hooks. > > Signed-off-by: Vedang Nagar <quic_vnagar@xxxxxxxxxxx> > Signed-off-by: Dikshita Agarwal <quic_dikshita@xxxxxxxxxxx> Reviewed-by: Hans Verkuil <hverkuil@xxxxxxxxx> Regards, Hans > --- > drivers/media/platform/qcom/iris/iris_vidc.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/drivers/media/platform/qcom/iris/iris_vidc.c b/drivers/media/platform/qcom/iris/iris_vidc.c > index 6707eb9917fe..6a32fd8d6123 100644 > --- a/drivers/media/platform/qcom/iris/iris_vidc.c > +++ b/drivers/media/platform/qcom/iris/iris_vidc.c > @@ -259,6 +259,33 @@ static int iris_g_fmt_vid_mplane(struct file *filp, void *fh, struct v4l2_format > return ret; > } > > +static int iris_g_selection(struct file *filp, void *fh, struct v4l2_selection *s) > +{ > + struct iris_inst *inst = iris_get_inst(filp, NULL); > + > + if (s->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) > + return -EINVAL; > + > + switch (s->target) { > + case V4L2_SEL_TGT_CROP_BOUNDS: > + case V4L2_SEL_TGT_CROP_DEFAULT: > + case V4L2_SEL_TGT_CROP: > + case V4L2_SEL_TGT_COMPOSE_BOUNDS: > + case V4L2_SEL_TGT_COMPOSE_PADDED: > + case V4L2_SEL_TGT_COMPOSE_DEFAULT: > + case V4L2_SEL_TGT_COMPOSE: > + s->r.left = inst->crop.left; > + s->r.top = inst->crop.top; > + s->r.width = inst->crop.width; > + s->r.height = inst->crop.height; > + break; > + default: > + return -EINVAL; > + } > + > + return 0; > +} > + > static struct v4l2_file_operations iris_v4l2_file_ops = { > .owner = THIS_MODULE, > .open = iris_open, > @@ -280,6 +307,7 @@ static const struct v4l2_ioctl_ops iris_v4l2_ioctl_ops = { > .vidioc_g_fmt_vid_cap_mplane = iris_g_fmt_vid_mplane, > .vidioc_g_fmt_vid_out_mplane = iris_g_fmt_vid_mplane, > .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs, > + .vidioc_g_selection = iris_g_selection, > }; > > void iris_init_ops(struct iris_core *core) >