vivid: do not implement VIDIOC_S_PARM for output streams

Message ID fc0e18f4-b499-60b4-d750-12beb06f98ce@xs4all.nl (mailing list archive)
State Accepted, archived
Delegated to: Hans Verkuil
Headers

Commit Message

Hans Verkuil Jan. 11, 2019, 11:37 a.m. UTC
  v4l2_compliance gave a warning for the S_PARM test for output streams:

warn: v4l2-test-formats.cpp(1235): S_PARM is supported for buftype 2, but not for ENUM_FRAMEINTERVALS

The reason is that vivid mapped s_parm for output streams to g_parm. But if
S_PARM doesn't actually change anything, then it shouldn't be enabled at all.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
---
  

Comments

Nicolas Dufresne Jan. 11, 2019, 8:13 p.m. UTC | #1
Le vendredi 11 janvier 2019 à 12:37 +0100, Hans Verkuil a écrit :
> v4l2_compliance gave a warning for the S_PARM test for output streams:
> 
> warn: v4l2-test-formats.cpp(1235): S_PARM is supported for buftype 2, but not for ENUM_FRAMEINTERVALS
> 
> The reason is that vivid mapped s_parm for output streams to g_parm. But if
> S_PARM doesn't actually change anything, then it shouldn't be enabled at all.

Though now, a vivid output reflect even less an output HW, for which I
would expect S_PARM to be used to configure the HW transmission clock.

> 
> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
> ---
> diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c
> index c931f007e5b0..7da5720b47a2 100644
> --- a/drivers/media/platform/vivid/vivid-core.c
> +++ b/drivers/media/platform/vivid/vivid-core.c
> @@ -371,7 +371,7 @@ static int vidioc_s_parm(struct file *file, void *fh,
> 
>  	if (vdev->vfl_dir == VFL_DIR_RX)
>  		return vivid_vid_cap_s_parm(file, fh, parm);
> -	return vivid_vid_out_g_parm(file, fh, parm);
> +	return -ENOTTY;
>  }
> 
>  static int vidioc_log_status(struct file *file, void *fh)
  
Hans Verkuil Jan. 11, 2019, 8:16 p.m. UTC | #2
On 1/11/19 9:13 PM, Nicolas Dufresne wrote:
> Le vendredi 11 janvier 2019 à 12:37 +0100, Hans Verkuil a écrit :
>> v4l2_compliance gave a warning for the S_PARM test for output streams:
>>
>> warn: v4l2-test-formats.cpp(1235): S_PARM is supported for buftype 2, but not for ENUM_FRAMEINTERVALS
>>
>> The reason is that vivid mapped s_parm for output streams to g_parm. But if
>> S_PARM doesn't actually change anything, then it shouldn't be enabled at all.
> 
> Though now, a vivid output reflect even less an output HW, for which I
> would expect S_PARM to be used to configure the HW transmission clock.

That's done via VIDIOC_S_STD or VIDIOC_S_DV_TIMINGS, not via VIDIOC_S_PARM.

S_PARM for an output really makes no sense. At least, I can't think of any.

Regards,

	Hans

> 
>>
>> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
>> ---
>> diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c
>> index c931f007e5b0..7da5720b47a2 100644
>> --- a/drivers/media/platform/vivid/vivid-core.c
>> +++ b/drivers/media/platform/vivid/vivid-core.c
>> @@ -371,7 +371,7 @@ static int vidioc_s_parm(struct file *file, void *fh,
>>
>>  	if (vdev->vfl_dir == VFL_DIR_RX)
>>  		return vivid_vid_cap_s_parm(file, fh, parm);
>> -	return vivid_vid_out_g_parm(file, fh, parm);
>> +	return -ENOTTY;
>>  }
>>
>>  static int vidioc_log_status(struct file *file, void *fh)
>
  

Patch

diff --git a/drivers/media/platform/vivid/vivid-core.c b/drivers/media/platform/vivid/vivid-core.c
index c931f007e5b0..7da5720b47a2 100644
--- a/drivers/media/platform/vivid/vivid-core.c
+++ b/drivers/media/platform/vivid/vivid-core.c
@@ -371,7 +371,7 @@  static int vidioc_s_parm(struct file *file, void *fh,

 	if (vdev->vfl_dir == VFL_DIR_RX)
 		return vivid_vid_cap_s_parm(file, fh, parm);
-	return vivid_vid_out_g_parm(file, fh, parm);
+	return -ENOTTY;
 }

 static int vidioc_log_status(struct file *file, void *fh)