[PATCH v2 0/2] media: pci: add AVMatrix HWS capture driver

Ben Hoff
2026-03-18T00:11:01Z

Add an AVMatrix HWS PCIe capture driver and its MAINTAINERS entry.

The driver exposes one V4L2 capture node per input channel, supports
YUYV capture through vb2-dma-contig, reports DV timings, emits
SOURCE_CHANGE events, and provides the basic brightness/contrast/
saturation/hue controls used by the hardware.

Changes in v2:
- keep scratch DMA allocation on a single probe-owned path
- fix hws_video_register()/probe unwind ownership to avoid control-handler
double-free on late registration failures
- on live input resolution changes, emit SOURCE_CHANGE, error queued
buffers, and require userspace to renegotiate buffers and restart
streaming
- add enum_frameintervals and report DV_RX_POWER_PRESENT, addressing the
two v1 v4l2-compliance warnings

Testing for v2:
- build-tested with W=1:
make -C /home/hoff/swdev/linux O=/tmp/hws-build \
M=drivers/media/pci/hws W=1 KBUILD_MODPOST_WARN=1 modules
- checkpatch.pl --no-tree --strict --file ... is clean for the new files

Context carried forward from v1:
- audio support remains intentionally omitted from this submission
- the driver is derived from a GPL out-of-tree driver; the baseline tree 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

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 | 176 +++
drivers/media/pci/hws/hws_irq.c | 271 +++++
drivers/media/pci/hws/hws_irq.h | 10 +
drivers/media/pci/hws/hws_pci.c | 864 +++++++++++++
drivers/media/pci/hws/hws_reg.h | 144 +++
drivers/media/pci/hws/hws_v4l2_ioctl.c | 778 ++++++++++++
drivers/media/pci/hws/hws_v4l2_ioctl.h | 43 +
drivers/media/pci/hws/hws_video.c | 1546 ++++++++++++++++++++++++
drivers/media/pci/hws/hws_video.h | 29 +
14 files changed, 3885 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

base-commit: f0caa1d49cc07b30a7e2f104d3853ec6dc1c3cad
--
2.53.0