On 18/10/2022 16:03, tumic@xxxxxxxxxx wrote: > From: Martin Tůma <martin.tuma@xxxxxxxxxxxxxxxxxxxxx> > > Hi, > This series of patches adds a driver for the Digiteq Automotive MGB4 grabber > card. MGB4 is a modular frame grabber PCIe card for automotive video interfaces > (FPD-Link and GMSL for now). It is based on a Xilinx FPGA and uses their > XDMA IP core for DMA transfers. Additionally, Xilinx I2C and SPI IP cores > which already have drivers in linux are used in the design. > > The driver is a quite standard v4l2 driver, with one exception - there are > a lot of sysfs options that may/must be set before opening the v4l2 device > to adapt the card on a specific signal (see mgb4.rst for details) > as the card must be able to work with various signal sources (or displays) > that can not be auto-detected. > > I have run the driver through the v4l2-compliance test suite for both the > input and the output and the results look fine to me (I can provide the > output if required). Please do! Did you use the latest v4l2-compliance code from the v4l-utils git repo? Distros tend to have a too-old version. Regards, Hans > > The patch requires the new XDMA v8 driver from Xilinx/AMD from the dmaengine > mailing list to compile/work: > https://www.spinics.net/lists/dmaengine/msg31476.html > > > Changes in v3: > * Rebased the DMA transfers part to use the new XDMA driver from Xilinx/AMD > > Changes in v2: > * Completely rewritten the original Xilinx's XDMA driver to meet kernel code > standards. > * Added all required "to" and "cc" mail addresses. > > Martin Tůma (2): > i2c: xiic: Added platform module alias for the xiic I2C driver > Added Digiteq Automotive MGB4 driver > > Documentation/admin-guide/media/mgb4.rst | 342 ++++++++ > .../admin-guide/media/pci-cardlist.rst | 1 + > .../admin-guide/media/v4l-drivers.rst | 1 + > MAINTAINERS | 7 + > drivers/i2c/busses/i2c-xiic.c | 1 + > drivers/media/pci/Kconfig | 1 + > drivers/media/pci/Makefile | 1 + > drivers/media/pci/mgb4/Kconfig | 17 + > drivers/media/pci/mgb4/Makefile | 6 + > drivers/media/pci/mgb4/mgb4_cmt.c | 243 ++++++ > drivers/media/pci/mgb4/mgb4_cmt.h | 16 + > drivers/media/pci/mgb4/mgb4_core.c | 628 +++++++++++++++ > drivers/media/pci/mgb4/mgb4_core.h | 65 ++ > drivers/media/pci/mgb4/mgb4_dma.c | 120 +++ > drivers/media/pci/mgb4/mgb4_dma.h | 18 + > drivers/media/pci/mgb4/mgb4_i2c.c | 139 ++++ > drivers/media/pci/mgb4/mgb4_i2c.h | 35 + > drivers/media/pci/mgb4/mgb4_io.h | 36 + > drivers/media/pci/mgb4/mgb4_regs.c | 30 + > drivers/media/pci/mgb4/mgb4_regs.h | 35 + > drivers/media/pci/mgb4/mgb4_sysfs.h | 18 + > drivers/media/pci/mgb4/mgb4_sysfs_in.c | 750 ++++++++++++++++++ > drivers/media/pci/mgb4/mgb4_sysfs_out.c | 734 +++++++++++++++++ > drivers/media/pci/mgb4/mgb4_sysfs_pci.c | 83 ++ > drivers/media/pci/mgb4/mgb4_trigger.c | 203 +++++ > drivers/media/pci/mgb4/mgb4_trigger.h | 8 + > drivers/media/pci/mgb4/mgb4_vin.c | 665 ++++++++++++++++ > drivers/media/pci/mgb4/mgb4_vin.h | 64 ++ > drivers/media/pci/mgb4/mgb4_vout.c | 507 ++++++++++++ > drivers/media/pci/mgb4/mgb4_vout.h | 58 ++ > 30 files changed, 4832 insertions(+) > create mode 100644 Documentation/admin-guide/media/mgb4.rst > create mode 100644 drivers/media/pci/mgb4/Kconfig > create mode 100644 drivers/media/pci/mgb4/Makefile > create mode 100644 drivers/media/pci/mgb4/mgb4_cmt.c > create mode 100644 drivers/media/pci/mgb4/mgb4_cmt.h > create mode 100644 drivers/media/pci/mgb4/mgb4_core.c > create mode 100644 drivers/media/pci/mgb4/mgb4_core.h > create mode 100644 drivers/media/pci/mgb4/mgb4_dma.c > create mode 100644 drivers/media/pci/mgb4/mgb4_dma.h > create mode 100644 drivers/media/pci/mgb4/mgb4_i2c.c > create mode 100644 drivers/media/pci/mgb4/mgb4_i2c.h > create mode 100644 drivers/media/pci/mgb4/mgb4_io.h > create mode 100644 drivers/media/pci/mgb4/mgb4_regs.c > create mode 100644 drivers/media/pci/mgb4/mgb4_regs.h > create mode 100644 drivers/media/pci/mgb4/mgb4_sysfs.h > create mode 100644 drivers/media/pci/mgb4/mgb4_sysfs_in.c > create mode 100644 drivers/media/pci/mgb4/mgb4_sysfs_out.c > create mode 100644 drivers/media/pci/mgb4/mgb4_sysfs_pci.c > create mode 100644 drivers/media/pci/mgb4/mgb4_trigger.c > create mode 100644 drivers/media/pci/mgb4/mgb4_trigger.h > create mode 100644 drivers/media/pci/mgb4/mgb4_vin.c > create mode 100644 drivers/media/pci/mgb4/mgb4_vin.h > create mode 100644 drivers/media/pci/mgb4/mgb4_vout.c > create mode 100644 drivers/media/pci/mgb4/mgb4_vout.h >