@@ -300,8 +300,12 @@ 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);
+ } else {
+ fail_on_test(fmt.width != 0 || fmt.height != 0);
+ }
fail_on_test(fmt.code == 0 || fmt.code == ~0U);
fail_on_test(fmt.field == ~0U);
if (!node->is_passthrough_subdev) {