diff mbox series

v4l2-compliance: skip dimentions tests for media bus format MEDIA_BUS_FMT_METADATA_FIXED

Message ID 20200922171933.3830-1-dafna.hirschfeld@collabora.com
State New
Headers show
Series v4l2-compliance: skip dimentions tests for media bus format MEDIA_BUS_FMT_METADATA_FIXED | expand

Commit Message

Dafna Hirschfeld Sept. 22, 2020, 5:19 p.m. UTC
The media bus format code MEDIA_BUS_FMT_METADATA_FIXED
is used for metadata formats that are not configurable
from userspace and therefore may have any value for
width and height. So skip width and height tests for
this format.

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
---
note, this patch should be applied after updating the header
include/linux/media-bus-format.h to include that new format.
---
 utils/v4l2-compliance/v4l2-test-subdevs.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Helen Koike Oct. 14, 2020, 8:41 p.m. UTC | #1
On 9/22/20 2:19 PM, Dafna Hirschfeld wrote:
> The media bus format code MEDIA_BUS_FMT_METADATA_FIXED
> is used for metadata formats that are not configurable
> from userspace and therefore may have any value for
> width and height. So skip width and height tests for
> this format.
> 
> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>

lgtm

Reviewed-by: Helen Koike <helen.koike@collabora.com>

Thanks
Helen

> ---
> note, this patch should be applied after updating the header
> include/linux/media-bus-format.h to include that new format.
> ---
>  utils/v4l2-compliance/v4l2-test-subdevs.cpp | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/utils/v4l2-compliance/v4l2-test-subdevs.cpp b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
> index ec3ef169..f60853e3 100644
> --- a/utils/v4l2-compliance/v4l2-test-subdevs.cpp
> +++ b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
> @@ -300,8 +300,10 @@ int testSubDevFrameInterval(struct node *node, unsigned pad)
>  static int checkMBusFrameFmt(struct node *node, struct v4l2_mbus_framefmt &fmt)
>  {
>  	fail_on_test(check_0(fmt.reserved, sizeof(fmt.reserved)));
> -	fail_on_test(fmt.width == 0 || fmt.width > 65536);
> -	fail_on_test(fmt.height == 0 || fmt.height > 65536);
> +	if (fmt.code != MEDIA_BUS_FMT_METADATA_FIXED) {
> +		fail_on_test(fmt.width == 0 || fmt.width > 65536);
> +		fail_on_test(fmt.height == 0 || fmt.height > 65536);
> +	}
>  	fail_on_test(fmt.code == 0 || fmt.code == ~0U);
>  	fail_on_test(fmt.field == ~0U);
>  	if (!node->is_passthrough_subdev) {
>
Hans Verkuil Oct. 20, 2020, 7:23 a.m. UTC | #2
On 14/10/2020 22:41, Helen Koike wrote:
> 
> 
> On 9/22/20 2:19 PM, Dafna Hirschfeld wrote:
>> The media bus format code MEDIA_BUS_FMT_METADATA_FIXED
>> is used for metadata formats that are not configurable
>> from userspace and therefore may have any value for
>> width and height. So skip width and height tests for
>> this format.
>>
>> Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
> 
> lgtm
> 
> Reviewed-by: Helen Koike <helen.koike@collabora.com>
> 
> Thanks
> Helen
> 
>> ---
>> note, this patch should be applied after updating the header
>> include/linux/media-bus-format.h to include that new format.
>> ---
>>  utils/v4l2-compliance/v4l2-test-subdevs.cpp | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/utils/v4l2-compliance/v4l2-test-subdevs.cpp b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
>> index ec3ef169..f60853e3 100644
>> --- a/utils/v4l2-compliance/v4l2-test-subdevs.cpp
>> +++ b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
>> @@ -300,8 +300,10 @@ int testSubDevFrameInterval(struct node *node, unsigned pad)
>>  static int checkMBusFrameFmt(struct node *node, struct v4l2_mbus_framefmt &fmt)
>>  {
>>  	fail_on_test(check_0(fmt.reserved, sizeof(fmt.reserved)));
>> -	fail_on_test(fmt.width == 0 || fmt.width > 65536);
>> -	fail_on_test(fmt.height == 0 || fmt.height > 65536);
>> +	if (fmt.code != MEDIA_BUS_FMT_METADATA_FIXED) {
>> +		fail_on_test(fmt.width == 0 || fmt.width > 65536);
>> +		fail_on_test(fmt.height == 0 || fmt.height > 65536);
>> +	}

I would always fail if width or height != 0 for this format.

Regards,

	Hans

>>  	fail_on_test(fmt.code == 0 || fmt.code == ~0U);
>>  	fail_on_test(fmt.field == ~0U);
>>  	if (!node->is_passthrough_subdev) {
>>
diff mbox series

Patch

diff --git a/utils/v4l2-compliance/v4l2-test-subdevs.cpp b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
index ec3ef169..f60853e3 100644
--- a/utils/v4l2-compliance/v4l2-test-subdevs.cpp
+++ b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
@@ -300,8 +300,10 @@  int testSubDevFrameInterval(struct node *node, unsigned pad)
 static int checkMBusFrameFmt(struct node *node, struct v4l2_mbus_framefmt &fmt)
 {
 	fail_on_test(check_0(fmt.reserved, sizeof(fmt.reserved)));
-	fail_on_test(fmt.width == 0 || fmt.width > 65536);
-	fail_on_test(fmt.height == 0 || fmt.height > 65536);
+	if (fmt.code != MEDIA_BUS_FMT_METADATA_FIXED) {
+		fail_on_test(fmt.width == 0 || fmt.width > 65536);
+		fail_on_test(fmt.height == 0 || fmt.height > 65536);
+	}
 	fail_on_test(fmt.code == 0 || fmt.code == ~0U);
 	fail_on_test(fmt.field == ~0U);
 	if (!node->is_passthrough_subdev) {