From: Hans Verkuil <hverkuil+cisco@kernel.org>
To: Ben Hoff <hoff.benjamin.k@gmail.com>, linux-media@vger.kernel.org
Cc: mchehab@kernel.org, hverkuil@kernel.org
Subject: Re: [PATCH v1 0/2] media: pci: AVMatrix HWS capture driver
Date: Mon, 9 Feb 2026 12:47:20 +0100 [thread overview]
Message-ID: <12a06e89-eb67-4be7-8b0a-9ea71ab4cf7c@kernel.org> (raw)
In-Reply-To: <CAMSzxxScAW+sR6OzXt4NxOFx=Q0LDFko9d_xY4zoROYOZMzzdA@mail.gmail.com>
On 08/02/2026 01:35, Ben Hoff wrote:
> Hi all,
>
> Just following up on this new driver patch sent Jan 11.
>
> Happy to address review comments or adjust the approach if needed.
>
> I’m happy to maintain this driver going forward.
It got lost in the flood of patches. Thank you for reminding me.
I've delegated it to myself in patchwork, so I hope I'll have a review
for you with two weeks tops. Ping me if you didn't hear from me after
two weeks.
Regards,
Hans
>
> Thanks,
> Ben
>
> On Sun, Jan 11, 2026 at 9:24 PM Ben Hoff <hoff.benjamin.k@gmail.com> wrote:
>>
>> Hi all,
>>
>> This series introduces an in-tree AVMatrix HWS PCIe capture driver.
>> The driver supports up to four HDMI inputs and exposes the video capture
>> path through V4L2. Audio support is intentionally omitted in this
>> revision so the series can focus on the video pipeline and PCIe glue.
>>
>> Major pieces include:
>> - PCI glue with capability discovery, BAR setup, interrupt handling,
>> and power-management hooks.
>> - A vb2-dma-contig based capture pipeline with DV timings support,
>> per-channel controls, two-buffer management, and loss-of-signal
>> recovery.
>>
>> The baseline GPL out-of-tree driver is available at:
>> https://github.com/benhoff/hws/tree/baseline
>> A vendor driver bundle is available at:
>> https://www.acasis.com/pages/acasis-product-drivers
>> The vendor is not involved in this upstreaming effort.
>>
>> Prior RFC posting: https://lore.kernel.org/lkml/20251027195638.481129-1-hoff.benjamin.k@gmail.com/
>>
>> Current status / open items:
>> - `v4l2-compliance` passes for each video node, and I have exercised
>> basic capture in OBS and run this driver in a steady state mode
>> daily
>>
>> v4l2-compliance (from v4l-utils git, v4l2-compliance 1.32.0):
>> v4l2-compliance 1.32.0, 64 bits, 64-bit time_t
>>
>> Compliance test for HwsCapture device /dev/video1:
>>
>> Driver Info:
>> Driver name : HwsCapture
>> Card type : AVMatrix HWS Capture 2
>> Bus info : PCI:0000:17:00.0
>> Driver version : 6.18.3
>> Capabilities : 0x84200001
>> Video Capture
>> Streaming
>> Extended Pix Format
>> Device Capabilities
>> Device Caps : 0x04200001
>> Video Capture
>> Streaming
>> Extended Pix Format
>>
>> Required ioctls:
>> test VIDIOC_QUERYCAP: OK
>> test invalid ioctls: OK
>>
>> Allow for multiple opens:
>> test second /dev/video1 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
>>
>> 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):
>> info: checking v4l2_query_ext_ctrl of control 'User Controls' (0x00980001)
>> info: checking v4l2_query_ext_ctrl of control 'Brightness' (0x00980900)
>> info: checking v4l2_query_ext_ctrl of control 'Contrast' (0x00980901)
>> info: checking v4l2_query_ext_ctrl of control 'Saturation' (0x00980902)
>> info: checking v4l2_query_ext_ctrl of control 'Hue' (0x00980903)
>> info: checking v4l2_query_ext_ctrl of control 'Brightness' (0x00980900)
>> info: checking v4l2_query_ext_ctrl of control 'Contrast' (0x00980901)
>> info: checking v4l2_query_ext_ctrl of control 'Saturation' (0x00980902)
>> info: checking v4l2_query_ext_ctrl of control 'Hue' (0x00980903)
>> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
>> test VIDIOC_QUERYCTRL: OK
>> info: checking control 'User Controls' (0x00980001)
>> info: checking control 'Brightness' (0x00980900)
>> info: checking control 'Contrast' (0x00980901)
>> info: checking control 'Saturation' (0x00980902)
>> info: checking control 'Hue' (0x00980903)
>> test VIDIOC_G/S_CTRL: OK
>> info: checking extended control 'User Controls' (0x00980001)
>> info: checking extended control 'Brightness' (0x00980900)
>> info: checking extended control 'Contrast' (0x00980901)
>> info: checking extended control 'Saturation' (0x00980902)
>> info: checking extended control 'Hue' (0x00980903)
>> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
>> info: checking control event 'User Controls' (0x00980001)
>> info: checking control event 'Brightness' (0x00980900)
>> info: checking control event 'Contrast' (0x00980901)
>> info: checking control event 'Saturation' (0x00980902)
>> info: checking control event 'Hue' (0x00980903)
>> warn: v4l2-test-controls.cpp(1159): V4L2_CID_DV_RX_POWER_PRESENT not found for input 0
>> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
>> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
>> Standard Controls: 5 Private Controls: 0
>>
>> Format ioctls (Input 0):
>> info: found 1 formats for buftype 1
>> test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
>> warn: v4l2-test-formats.cpp(1485): S_PARM is supported for buftype 1, 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
>>
>> 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):
>> info: test buftype Video Capture
>> test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
>> test CREATE_BUFS maximum buffers: OK
>> test VIDIOC_REMOVE_BUFS: OK
>> test VIDIOC_EXPBUF: OK
>> test Requests: OK (Not Supported)
>> test blocking wait: OK
>>
>> Test input 0:
>>
>> Stream using all formats:
>> test MMAP for Format YUYV, Frame Size 640x480:
>> Stride 1280, Field None: OK
>> Stride 1344, Field None: OK
>> test MMAP for Format YUYV, Frame Size 1920x1080:
>> Stride 3840, Field None: OK
>> Total for HwsCapture device /dev/video1: 51, Succeeded: 51, Failed: 0, Warnings: 2
>>
>>
>> Thanks for taking a look!
>>
>> Ben
>>
>> Ben Hoff (2):
>> media: pci: add AVMatrix HWS capture driver
>> MAINTAINERS: add entry for AVMatrix HWS driver
>>
>> MAINTAINERS | 6 +
>> drivers/media/pci/Kconfig | 1 +
>> drivers/media/pci/Makefile | 1 +
>> drivers/media/pci/hws/Kconfig | 12 +
>> drivers/media/pci/hws/Makefile | 4 +
>> drivers/media/pci/hws/hws.h | 175 +++
>> drivers/media/pci/hws/hws_irq.c | 268 ++++
>> drivers/media/pci/hws/hws_irq.h | 10 +
>> drivers/media/pci/hws/hws_pci.c | 722 +++++++++++
>> drivers/media/pci/hws/hws_reg.h | 144 +++
>> drivers/media/pci/hws/hws_v4l2_ioctl.c | 755 ++++++++++++
>> drivers/media/pci/hws/hws_v4l2_ioctl.h | 38 +
>> drivers/media/pci/hws/hws_video.c | 1542 ++++++++++++++++++++++++
>> drivers/media/pci/hws/hws_video.h | 29 +
>> 14 files changed, 3707 insertions(+)
>> create mode 100644 drivers/media/pci/hws/Kconfig
>> create mode 100644 drivers/media/pci/hws/Makefile
>> create mode 100644 drivers/media/pci/hws/hws.h
>> create mode 100644 drivers/media/pci/hws/hws_irq.c
>> create mode 100644 drivers/media/pci/hws/hws_irq.h
>> create mode 100644 drivers/media/pci/hws/hws_pci.c
>> create mode 100644 drivers/media/pci/hws/hws_reg.h
>> create mode 100644 drivers/media/pci/hws/hws_v4l2_ioctl.c
>> create mode 100644 drivers/media/pci/hws/hws_v4l2_ioctl.h
>> create mode 100644 drivers/media/pci/hws/hws_video.c
>> create mode 100644 drivers/media/pci/hws/hws_video.h
>>
>> --
>> 2.51.0
>
next prev parent reply other threads:[~2026-02-09 11:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-12 2:24 [PATCH v1 0/2] media: pci: AVMatrix HWS capture driver Ben Hoff
2026-01-12 2:24 ` [PATCH v1 1/2] media: pci: add " Ben Hoff
2026-01-12 2:24 ` [PATCH v1 2/2] MAINTAINERS: add entry for AVMatrix HWS driver Ben Hoff
2026-02-08 0:35 ` [PATCH v1 0/2] media: pci: AVMatrix HWS capture driver Ben Hoff
2026-02-09 11:47 ` Hans Verkuil [this message]
2026-02-09 12:53 ` Hans Verkuil
2026-03-17 16:01 ` Hans Verkuil
2026-03-18 0:23 ` Ben Hoff
2026-03-18 0:10 ` [PATCH v2 0/2] media: pci: add " Ben Hoff
2026-03-18 0:10 ` [PATCH v2 1/2] " Ben Hoff
2026-03-24 9:17 ` Hans Verkuil
2026-03-18 0:10 ` [PATCH v2 2/2] MAINTAINERS: add entry for AVMatrix HWS driver Ben Hoff
2026-03-24 9:19 ` [PATCH v2 0/2] media: pci: add AVMatrix HWS capture driver Hans Verkuil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12a06e89-eb67-4be7-8b0a-9ea71ab4cf7c@kernel.org \
--to=hverkuil+cisco@kernel.org \
--cc=hoff.benjamin.k@gmail.com \
--cc=hverkuil@kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox