[PATCH v5 3/3] [media] s5p-mfc: Check and set 'v4l2_pix_format:field' field in try_fmt
Thibault Saunier
thibault.saunier at osg.samsung.com
Wed Feb 22 05:10:40 PST 2017
Hello,
On 02/22/2017 06:29 AM, Andrzej Hajda wrote:
> On 21.02.2017 20:20, Thibault Saunier wrote:
>> It is required by the standard that the field order is set by the
>> driver.
>>
>> Signed-off-by: Thibault Saunier <thibault.saunier at osg.samsung.com>
>>
>> ---
>>
>> Changes in v5:
>> - Just adapt the field and never error out.
>>
>> Changes in v4: None
>> Changes in v3:
>> - Do not check values in the g_fmt functions as Andrzej explained in previous review
>>
>> Changes in v2:
>> - Fix a silly build error that slipped in while rebasing the patches
>>
>> drivers/media/platform/s5p-mfc/s5p_mfc_dec.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
>> index 0976c3e0a5ce..44ed2afe0780 100644
>> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
>> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
>> @@ -386,6 +386,9 @@ static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_format *f)
>> struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
>> struct s5p_mfc_fmt *fmt;
>>
>> + if (f->fmt.pix.field == V4L2_FIELD_ANY)
>> + f->fmt.pix.field = V4L2_FIELD_NONE;
>> +
> In previous version the only supported field type was NONE, here you
> support everything.
> If the only supported format is none you should set 'field'
> unconditionally to NONE, nothing more.
Afaict we support 2 things:
1. NONE
2. INTERLACE
Until now we were not checking what was supported or not and basically
ignoring that info, this patch
keeps the old behaviour making sure to be compliant.
I had a doubt and was pondering doing:
``` diff
+ if (f->fmt.pix.field != V4L2_FIELD_INTERLACED)
+ f->fmt.pix.field = V4L2_FIELD_NONE;
+
```
instead, it is probably more correct, do you think it is what should be
done here?
Regards,
Thibault
>
> Regards
> Andrzej
>
>> mfc_debug(2, "Type is %d\n", f->type);
>> if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
>> fmt = find_format(f, MFC_FMT_DEC);
>
More information about the linux-arm-kernel
mailing list