On 10/05/18 12:47, Niklas Söderlund wrote:
> Hi Hans,
>
> Thanks for your work.
>
> On 2018-10-05 09:49:10 +0200, Hans Verkuil wrote:
>> From: Hans Verkuil <[email protected]>
>>
>> Now that all drivers have dropped vidioc_g/s_crop we can remove
>> support for them in the V4L2 core.
>>
>> Signed-off-by: Hans Verkuil <[email protected]>
>
> If the quirk patch hurt my head this makes me smile!
There you go, they cancel each other out in your head :-)
Regards,
Hans
>
> Reviewed-by: Niklas Söderlund <[email protected]>
>
>> ---
>> drivers/media/v4l2-core/v4l2-dev.c | 4 ++--
>> drivers/media/v4l2-core/v4l2-ioctl.c | 4 ----
>> include/media/v4l2-ioctl.h | 8 --------
>> 3 files changed, 2 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/media/v4l2-core/v4l2-dev.c
>> b/drivers/media/v4l2-core/v4l2-dev.c
>> index 69e775930fc4..d81141d51faa 100644
>> --- a/drivers/media/v4l2-core/v4l2-dev.c
>> +++ b/drivers/media/v4l2-core/v4l2-dev.c
>> @@ -621,9 +621,9 @@ static void determine_valid_ioctls(struct video_device
>> *vdev)
>> SET_VALID_IOCTL(ops, VIDIOC_TRY_DECODER_CMD,
>> vidioc_try_decoder_cmd);
>> SET_VALID_IOCTL(ops, VIDIOC_ENUM_FRAMESIZES,
>> vidioc_enum_framesizes);
>> SET_VALID_IOCTL(ops, VIDIOC_ENUM_FRAMEINTERVALS,
>> vidioc_enum_frameintervals);
>> - if (ops->vidioc_g_crop || ops->vidioc_g_selection)
>> + if (ops->vidioc_g_selection)
>> set_bit(_IOC_NR(VIDIOC_G_CROP), valid_ioctls);
>> - if (ops->vidioc_s_crop || ops->vidioc_s_selection)
>> + if (ops->vidioc_s_selection)
>> set_bit(_IOC_NR(VIDIOC_S_CROP), valid_ioctls);
>> SET_VALID_IOCTL(ops, VIDIOC_G_SELECTION, vidioc_g_selection);
>> SET_VALID_IOCTL(ops, VIDIOC_S_SELECTION, vidioc_s_selection);
>> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c
>> b/drivers/media/v4l2-core/v4l2-ioctl.c
>> index 63a92285de39..a59954d351a2 100644
>> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
>> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
>> @@ -2207,8 +2207,6 @@ static int v4l_g_crop(const struct v4l2_ioctl_ops *ops,
>> };
>> int ret;
>>
>> - if (ops->vidioc_g_crop)
>> - return ops->vidioc_g_crop(file, fh, p);
>> /* simulate capture crop using selection api */
>>
>> /* crop means compose for output devices */
>> @@ -2239,8 +2237,6 @@ static int v4l_s_crop(const struct v4l2_ioctl_ops *ops,
>> .r = p->c,
>> };
>>
>> - if (ops->vidioc_s_crop)
>> - return ops->vidioc_s_crop(file, fh, p);
>> /* simulate capture crop using selection api */
>>
>> /* crop means compose for output devices */
>> diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
>> index 5848d92c30da..85fdd3f4b8ad 100644
>> --- a/include/media/v4l2-ioctl.h
>> +++ b/include/media/v4l2-ioctl.h
>> @@ -222,10 +222,6 @@ struct v4l2_fh;
>> * :ref:`VIDIOC_S_MODULATOR <vidioc_g_modulator>` ioctl
>> * @vidioc_cropcap: pointer to the function that implements
>> * :ref:`VIDIOC_CROPCAP <vidioc_cropcap>` ioctl
>> - * @vidioc_g_crop: pointer to the function that implements
>> - * :ref:`VIDIOC_G_CROP <vidioc_g_crop>` ioctl
>> - * @vidioc_s_crop: pointer to the function that implements
>> - * :ref:`VIDIOC_S_CROP <vidioc_g_crop>` ioctl
>> * @vidioc_g_selection: pointer to the function that implements
>> * :ref:`VIDIOC_G_SELECTION <vidioc_g_selection>` ioctl
>> * @vidioc_s_selection: pointer to the function that implements
>> @@ -493,10 +489,6 @@ struct v4l2_ioctl_ops {
>> /* Crop ioctls */
>> int (*vidioc_cropcap)(struct file *file, void *fh,
>> struct v4l2_cropcap *a);
>> - int (*vidioc_g_crop)(struct file *file, void *fh,
>> - struct v4l2_crop *a);
>> - int (*vidioc_s_crop)(struct file *file, void *fh,
>> - const struct v4l2_crop *a);
>> int (*vidioc_g_selection)(struct file *file, void *fh,
>> struct v4l2_selection *s);
>> int (*vidioc_s_selection)(struct file *file, void *fh,
>> --
>> 2.18.0
>>
>