Message ID | 20240805154054.8633-1-tumic@gpxsee.org (mailing list archive) |
---|---|
Headers |
Received: from sy.mirrors.kernel.org ([147.75.48.161]) by linuxtv.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <linux-media+bounces-15778-patchwork=linuxtv.org@vger.kernel.org>) id 1sbiKN-0000Lr-1j for patchwork@linuxtv.org; Wed, 07 Aug 2024 15:11:52 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id A8760B23693 for <patchwork@linuxtv.org>; Mon, 5 Aug 2024 15:46:44 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A7867159217; Mon, 5 Aug 2024 15:46:33 +0000 (UTC) X-Original-To: linux-media@vger.kernel.org Received: from mx.gpxsee.org (mx.gpxsee.org [37.205.14.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DDEB7E101; Mon, 5 Aug 2024 15:46:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=37.205.14.76 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722872793; cv=none; b=Bct2nqnhmwra77GO16+mK9Earo35zmIsFAtN7GqYM5pLhz0swrXmwCFGzNLvAXVOtWcq8Ja1A3BMDfNqj8tOQGp2ErDSD/hIY3F6Lq4dv/Z87FsCVycFfPupv/dBHdD1W8caCR4zEVeGFboi1aH2hLVrQLXyC1I3jZ/tY+5d4h8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722872793; c=relaxed/simple; bh=c7HXXvBTV5PGlRRhVIlLpfYS5XM04ZPwGWusUMtWg+w=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=RWEVeVSeOUZl5I+DoNThrJK1cAx99H3+Q1t4ZL/0doV5UxhYzfkp/pTrsDkOsbbdsQrZdY/VKXra1eb82TOBF5/63kVQ157r/TOp5Y7edaKq+FOrzCEIyrhEw9QnQJ8qJAIaww7MMeIZ3B05zZy+bbxqpxD91ltbTG9mjf7Q5Rs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=gpxsee.org; spf=pass smtp.mailfrom=gpxsee.org; arc=none smtp.client-ip=37.205.14.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=gpxsee.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gpxsee.org Received: from mgb4.. (unknown [62.77.71.229]) by mx.gpxsee.org (Postfix) with ESMTPSA id 043B65EB9C; Mon, 05 Aug 2024 17:41:02 +0200 (CEST) From: tumic@gpxsee.org To: Mauro Carvalho Chehab <mchehab@kernel.org>, Hans Verkuil <hverkuil@xs4all.nl> Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Mar?= =?utf-8?q?tin_T=C5=AFma?= <martin.tuma@digiteqautomotive.com> Subject: [PATCH v6 0/4 RESEND] media: mgb4: YUV and variable framerate support Date: Mon, 5 Aug 2024 17:40:50 +0200 Message-ID: <20240805154054.8633-1-tumic@gpxsee.org> X-Mailer: git-send-email 2.45.1 Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: <linux-media.vger.kernel.org> List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-LSpam-Score: -6.2 (------) X-LSpam-Report: No, score=-6.2 required=5.0 tests=ARC_SIGNED=0.001,ARC_VALID=-0.1,BAYES_00=-1.9,DMARC_MISSING=0.001,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_VALIDITY_CERTIFIED=-3,RCVD_IN_VALIDITY_RPBL=1.31,RCVD_IN_VALIDITY_SAFE=-2,SPF_HELO_NONE=0.001,SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no |
Series |
media: mgb4: YUV and variable framerate support
|
|
Message
Martin Tůma
Aug. 5, 2024, 3:40 p.m. UTC
From: Martin Tůma <martin.tuma@digiteqautomotive.com>
Recent mgb4 FW update added support for the YUV image format and variable
framerates independent of the signal framerate. The following patches extend
the mgb4 driver with support for both features.
Changes in V6:
- Properly handle the timings when no signal is present.
Changes in V5:
- Removed surplus v4l2_format.type checks.
- Improved the patch descriptions.
- Splitted the frame rate limit patch into separate code/documentation parts.
Changes in V4:
- Splitted the output frame_rate handling fix from the variable frame rate
addition patch.
Changes in V3:
- Use div_u64() for 64b division (fixes build error on ARM32)
Changes in V2:
- Added missing stride limit
Martin Tůma (4):
media: mgb4: Add support for YUV image formats
media: mgb4: Add support for V4L2_CAP_TIMEPERFRAME
media: mgb4: Fixed signal frame rate limit handling
media: admin-guide: mgb4: Outputs DV timings documentation update
Documentation/admin-guide/media/mgb4.rst | 23 +-
drivers/media/pci/mgb4/mgb4_core.c | 2 +-
drivers/media/pci/mgb4/mgb4_core.h | 2 +
drivers/media/pci/mgb4/mgb4_io.h | 29 ++-
drivers/media/pci/mgb4/mgb4_sysfs_out.c | 9 +-
drivers/media/pci/mgb4/mgb4_vin.c | 193 +++++++++++---
drivers/media/pci/mgb4/mgb4_vin.h | 3 +-
drivers/media/pci/mgb4/mgb4_vout.c | 309 ++++++++++++++++++++---
drivers/media/pci/mgb4/mgb4_vout.h | 5 +-
9 files changed, 482 insertions(+), 93 deletions(-)
base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
Comments
Hi Martin, Before I merge this series, I would like to see the v4l2-compliance output for each video device. Can you reply with that output? I want to make sure that all the g/s_parm and dv_timings changes are correct according to v4l2-compliance. And of course, if it isn't, then please fix any reported issue and post a v7. Regards, Hans On 05/08/2024 17:40, tumic@gpxsee.org wrote: > From: Martin Tůma <martin.tuma@digiteqautomotive.com> > > Recent mgb4 FW update added support for the YUV image format and variable > framerates independent of the signal framerate. The following patches extend > the mgb4 driver with support for both features. > > Changes in V6: > - Properly handle the timings when no signal is present. > > Changes in V5: > - Removed surplus v4l2_format.type checks. > - Improved the patch descriptions. > - Splitted the frame rate limit patch into separate code/documentation parts. > > Changes in V4: > - Splitted the output frame_rate handling fix from the variable frame rate > addition patch. > > Changes in V3: > - Use div_u64() for 64b division (fixes build error on ARM32) > > Changes in V2: > - Added missing stride limit > > Martin Tůma (4): > media: mgb4: Add support for YUV image formats > media: mgb4: Add support for V4L2_CAP_TIMEPERFRAME > media: mgb4: Fixed signal frame rate limit handling > media: admin-guide: mgb4: Outputs DV timings documentation update > > Documentation/admin-guide/media/mgb4.rst | 23 +- > drivers/media/pci/mgb4/mgb4_core.c | 2 +- > drivers/media/pci/mgb4/mgb4_core.h | 2 + > drivers/media/pci/mgb4/mgb4_io.h | 29 ++- > drivers/media/pci/mgb4/mgb4_sysfs_out.c | 9 +- > drivers/media/pci/mgb4/mgb4_vin.c | 193 +++++++++++--- > drivers/media/pci/mgb4/mgb4_vin.h | 3 +- > drivers/media/pci/mgb4/mgb4_vout.c | 309 ++++++++++++++++++++--- > drivers/media/pci/mgb4/mgb4_vout.h | 5 +- > 9 files changed, 482 insertions(+), 93 deletions(-) > > > base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
===== INPUT ===== v4l2-compliance 1.26.1, 64 bits, 64-bit time_t Compliance test for mgb4 device /dev/video0: Driver Info: Driver name : mgb4 Card type : MGB4 PCIe Card Bus info : PCI:0000:01:00.0 Driver version : 6.10.0 Capabilities : 0x85200001 Video Capture Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x05200001 Video Capture Read/Write Streaming Extended Pix Format Required ioctls: test VIDIOC_QUERYCAP: OK test invalid ioctls: OK Allow for multiple opens: test second /dev/video0 open: OK test VIDIOC_QUERYCAP: OK test VIDIOC_G/S_PRIORITY: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) test VIDIOC_LOG_STATUS: OK (Not Supported) Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 1 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 0 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK test VIDIOC_DV_TIMINGS_CAP: OK test VIDIOC_G/S_EDID: OK (Not Supported) Control ioctls (Input 0): test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) warn: v4l2-test-controls.cpp(1139): V4L2_CID_DV_RX_POWER_PRESENT not found for input 0 test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls (Input 0): test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK test VIDIOC_S_FMT: OK test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK (Not Supported) Codec ioctls (Input 0): test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) test VIDIOC_G_ENC_INDEX: OK (Not Supported) test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) Buffer ioctls (Input 0): test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK test CREATE_BUFS maximum buffers: OK test VIDIOC_EXPBUF: OK test Requests: OK (Not Supported) Total for mgb4 device /dev/video0: 46, Succeeded: 46, Failed: 0, Warnings: 1 ===== OUTPUT ===== v4l2-compliance 1.26.1, 64 bits, 64-bit time_t Compliance test for mgb4 device /dev/video2: Driver Info: Driver name : mgb4 Card type : MGB4 PCIe Card Bus info : PCI:0000:01:00.0 Driver version : 6.10.0 Capabilities : 0x85200002 Video Output Read/Write Streaming Extended Pix Format Device Capabilities Device Caps : 0x05200002 Video Output Read/Write Streaming Extended Pix Format Required ioctls: test VIDIOC_QUERYCAP: OK test invalid ioctls: OK Allow for multiple opens: test second /dev/video2 open: OK test VIDIOC_QUERYCAP: OK test VIDIOC_G/S_PRIORITY: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) test VIDIOC_LOG_STATUS: OK (Not Supported) Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK (Not Supported) test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 0 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 1 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK test VIDIOC_DV_TIMINGS_CAP: OK test VIDIOC_G/S_EDID: OK (Not Supported) Control ioctls (Output 0): test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK (Not Supported) test VIDIOC_QUERYCTRL: OK (Not Supported) test VIDIOC_G/S_CTRL: OK (Not Supported) test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported) warn: v4l2-test-controls.cpp(1144): V4L2_CID_DV_TX_HOTPLUG not found for output 0 warn: v4l2-test-controls.cpp(1147): V4L2_CID_DV_TX_EDID_PRESENT not found for output 0 test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported) test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 0 Private Controls: 0 Format ioctls (Output 0): test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK warn: v4l2-test-formats.cpp(1421): S_PARM is supported for buftype 2, but not for ENUM_FRAMEINTERVALS test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK test VIDIOC_S_FMT: OK test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK (Not Supported) Codec ioctls (Output 0): test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) test VIDIOC_G_ENC_INDEX: OK (Not Supported) test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) Buffer ioctls (Output 0): test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK test CREATE_BUFS maximum buffers: OK test VIDIOC_EXPBUF: OK test Requests: OK (Not Supported) Total for mgb4 device /dev/video2: 46, Succeeded: 46, Failed: 0, Warnings: 3 On 12. 08. 24 8:53 dop., Hans Verkuil wrote: > Hi Martin, > > Before I merge this series, I would like to see the v4l2-compliance output for > each video device. > > Can you reply with that output? > > I want to make sure that all the g/s_parm and dv_timings changes are correct > according to v4l2-compliance. And of course, if it isn't, then please fix > any reported issue and post a v7. > > Regards, > > Hans > > On 05/08/2024 17:40, tumic@gpxsee.org wrote: >> From: Martin Tůma <martin.tuma@digiteqautomotive.com> >> >> Recent mgb4 FW update added support for the YUV image format and variable >> framerates independent of the signal framerate. The following patches extend >> the mgb4 driver with support for both features. >> >> Changes in V6: >> - Properly handle the timings when no signal is present. >> >> Changes in V5: >> - Removed surplus v4l2_format.type checks. >> - Improved the patch descriptions. >> - Splitted the frame rate limit patch into separate code/documentation parts. >> >> Changes in V4: >> - Splitted the output frame_rate handling fix from the variable frame rate >> addition patch. >> >> Changes in V3: >> - Use div_u64() for 64b division (fixes build error on ARM32) >> >> Changes in V2: >> - Added missing stride limit >> >> Martin Tůma (4): >> media: mgb4: Add support for YUV image formats >> media: mgb4: Add support for V4L2_CAP_TIMEPERFRAME >> media: mgb4: Fixed signal frame rate limit handling >> media: admin-guide: mgb4: Outputs DV timings documentation update >> >> Documentation/admin-guide/media/mgb4.rst | 23 +- >> drivers/media/pci/mgb4/mgb4_core.c | 2 +- >> drivers/media/pci/mgb4/mgb4_core.h | 2 + >> drivers/media/pci/mgb4/mgb4_io.h | 29 ++- >> drivers/media/pci/mgb4/mgb4_sysfs_out.c | 9 +- >> drivers/media/pci/mgb4/mgb4_vin.c | 193 +++++++++++--- >> drivers/media/pci/mgb4/mgb4_vin.h | 3 +- >> drivers/media/pci/mgb4/mgb4_vout.c | 309 ++++++++++++++++++++--- >> drivers/media/pci/mgb4/mgb4_vout.h | 5 +- >> 9 files changed, 482 insertions(+), 93 deletions(-) >> >> >> base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0 >