[RFC PATCH v1 0/2] media: pci: AVMatrix HWS capture driver refresh

Ben Hoff
2025-10-27T19:56:46Z

Hi all,

This RFC series significantly refactors the downstream AVMatrix HWS PCIe
capture driver so it is maintainable in-tree and aligns with upstream
media driver expectations. The new implementation follows V4L2 and ALSA
subsystem patterns, splits the hardware plumbing across focused source
files, and introduces proper runtime PM and interrupt handling. The goal
is to keep future maintenance manageable while providing a direct path for
existing users of the vendor tree.

Current status / open items:
- Audio capture paths have been refactored from the vendor driver but have
not yet been validated on real hardware. I would appreciate guidance
on whether you would prefer that I drop the ALSA pieces from the
initial submission and stage them as a follow-up once I finish
validation.
- `v4l2-compliance` passes for each video node, and I have exercised
basic capture in OBS. I still plan to do heavier soak testing across
all inputs and audio channels, as well as cover the suspend/resume
paths.

Any feedback on the overall structure, subsystem integration, and in
particular the best way to stage the audio support would be very welcome.
Once I hear back on the preferred direction I will respin this as a
formal v1 submission.

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 | 13 +
drivers/media/pci/hws/Makefile | 4 +
drivers/media/pci/hws/hws.h | 194 +++
drivers/media/pci/hws/hws_audio.c | 571 +++++++++
drivers/media/pci/hws/hws_audio.h | 22 +
drivers/media/pci/hws/hws_irq.c | 281 +++++
drivers/media/pci/hws/hws_irq.h | 12 +
drivers/media/pci/hws/hws_pci.c | 708 +++++++++++
drivers/media/pci/hws/hws_reg.h | 142 +++
drivers/media/pci/hws/hws_v4l2_ioctl.c | 576 +++++++++
drivers/media/pci/hws/hws_v4l2_ioctl.h | 32 +
drivers/media/pci/hws/hws_video.c | 1542 ++++++++++++++++++++++++
drivers/media/pci/hws/hws_video.h | 24 +
16 files changed, 4129 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_audio.c
create mode 100644 drivers/media/pci/hws/hws_audio.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