public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] Intel IPU7 PCI and input system device drivers
@ 2025-02-21  7:52 bingbu.cao
  2025-02-21  7:52 ` [RFC PATCH 1/7] media: Rename the IPU PCI device table header and add IPU7 PCI IDs bingbu.cao
                   ` (8 more replies)
  0 siblings, 9 replies; 20+ messages in thread
From: bingbu.cao @ 2025-02-21  7:52 UTC (permalink / raw)
  To: linux-media, sakari.ailus, hdegoede
  Cc: hans, stanislaw.gruszka, jerry.w.hu, tian.shu.qiu, daxing.li,
	hao.yao, bingbu.cao, bingbu.cao

From: Bingbu Cao <bingbu.cao@intel.com>

This patch series adds a driver for Intel IPU7 input system.
IPU7 is the seventh generation of Imaging Processing Unit, it is a
PCI device which can be found in some Intel Client Platforms such as
Intel Lunar Lake and Panther Lake, etc.
User can use IPU7 to capture images from MIPI camera sensors, support
both MIPI CSI DPHY and CPHY.

IPU7 input system driver uses MC and V4L2 sub-device APIs besides V4L2.

 - ipu7.c: the IPU7 PCI device driver probe, basic hardware
   configuration and initialization
 - ipu7-bus: Initialise and register the auxiliary device for IS
 - ipu7-buttress: Hardware buttress interfaces to allow driver to
   program to enable the power, firmware authentication and interrupt
   handling.
 - ipu7-mmu and ipu7-dma: IPU MMU table setup and IPU DMA mapping APIs
 - ipu7-cpd and ipu7-boot: firmware format parse and firmware boot flow
 - abi: a series of ABI headers used by driver and firmware
 - ipu7-syscom: syscom communication interfaces used by driver to queue
   commands to firmware
 - ipu7-isys: main IPU7 input system driver, it registers CSI2 as v4l2
   sub-devices and the capture as video devices.


TODO list:
 1. ABI headers cleanup (currently a copy from firmware as it is
    still in development and updating regularly, need cleanup to unifiy
    the headers)
 2. add metadata capture support
 3. add multiple virtual-channels capture support
 4. remove unsecure mode code as secure mode is force to enabled in
    product

Bingbu Cao (7):
  media: Rename the IPU PCI device table header and add IPU7 PCI IDs
  media: ipu7: add Intel IPU7 PCI device driver
  media: ipu7: add IPU7 DMA APIs and MMU mapping
  media: ipu7: add firmware parse, syscom interface and boot sequence
  media: ipu7: add IPU7 firmware ABI headers
  media: ipu7: add IPU7 input system device driver
  media: ipu7: add Makefile and Kconfig for IPU7

 drivers/media/pci/intel/Kconfig               |    1 +
 drivers/media/pci/intel/Makefile              |    1 +
 drivers/media/pci/intel/ipu6/ipu6.c           |    2 +-
 drivers/media/pci/intel/ipu7/Kconfig          |   18 +
 drivers/media/pci/intel/ipu7/Makefile         |   23 +
 .../pci/intel/ipu7/abi/ipu7_fw_boot_abi.h     |  164 +
 .../pci/intel/ipu7/abi/ipu7_fw_common_abi.h   |  243 ++
 .../pci/intel/ipu7/abi/ipu7_fw_config_abi.h   |   19 +
 .../intel/ipu7/abi/ipu7_fw_insys_config_abi.h |   19 +
 .../pci/intel/ipu7/abi/ipu7_fw_isys_abi.h     |  495 +++
 .../pci/intel/ipu7/abi/ipu7_fw_msg_abi.h      |  509 +++
 .../intel/ipu7/abi/ipu7_fw_psys_config_abi.h  |   22 +
 .../pci/intel/ipu7/abi/ipu7_fw_syscom_abi.h   |   60 +
 drivers/media/pci/intel/ipu7/ipu7-boot.c      |  434 +++
 drivers/media/pci/intel/ipu7/ipu7-boot.h      |   21 +
 drivers/media/pci/intel/ipu7/ipu7-bus.c       |  158 +
 drivers/media/pci/intel/ipu7/ipu7-bus.h       |   69 +
 .../media/pci/intel/ipu7/ipu7-buttress-regs.h |  465 +++
 drivers/media/pci/intel/ipu7/ipu7-buttress.c  | 1187 +++++++
 drivers/media/pci/intel/ipu7/ipu7-buttress.h  |   84 +
 drivers/media/pci/intel/ipu7/ipu7-cpd.c       |  230 ++
 drivers/media/pci/intel/ipu7/ipu7-cpd.h       |   62 +
 drivers/media/pci/intel/ipu7/ipu7-dma.c       |  509 +++
 drivers/media/pci/intel/ipu7/ipu7-dma.h       |   50 +
 drivers/media/pci/intel/ipu7/ipu7-fw-isys.c   |  300 ++
 drivers/media/pci/intel/ipu7/ipu7-fw-isys.h   |   39 +
 .../media/pci/intel/ipu7/ipu7-isys-csi-phy.c  | 1051 +++++++
 .../media/pci/intel/ipu7/ipu7-isys-csi-phy.h  |   16 +
 .../pci/intel/ipu7/ipu7-isys-csi2-regs.h      | 1197 +++++++
 drivers/media/pci/intel/ipu7/ipu7-isys-csi2.c |  565 ++++
 drivers/media/pci/intel/ipu7/ipu7-isys-csi2.h |   73 +
 .../media/pci/intel/ipu7/ipu7-isys-queue.c    |  836 +++++
 .../media/pci/intel/ipu7/ipu7-isys-queue.h    |   79 +
 .../media/pci/intel/ipu7/ipu7-isys-subdev.c   |  381 +++
 .../media/pci/intel/ipu7/ipu7-isys-subdev.h   |   55 +
 .../media/pci/intel/ipu7/ipu7-isys-video.c    | 1130 +++++++
 .../media/pci/intel/ipu7/ipu7-isys-video.h    |  117 +
 drivers/media/pci/intel/ipu7/ipu7-isys.c      | 1170 +++++++
 drivers/media/pci/intel/ipu7/ipu7-isys.h      |  150 +
 drivers/media/pci/intel/ipu7/ipu7-mmu.c       |  853 +++++
 drivers/media/pci/intel/ipu7/ipu7-mmu.h       |  414 +++
 .../media/pci/intel/ipu7/ipu7-platform-regs.h |  146 +
 drivers/media/pci/intel/ipu7/ipu7-syscom.c    |   79 +
 drivers/media/pci/intel/ipu7/ipu7-syscom.h    |   36 +
 drivers/media/pci/intel/ipu7/ipu7.c           | 2791 +++++++++++++++++
 drivers/media/pci/intel/ipu7/ipu7.h           |  244 ++
 drivers/media/pci/intel/ivsc/mei_csi.c        |    2 +-
 .../{ipu6-pci-table.h => ipu-pci-table.h}     |   14 +-
 48 files changed, 16578 insertions(+), 5 deletions(-)
 create mode 100644 drivers/media/pci/intel/ipu7/Kconfig
 create mode 100644 drivers/media/pci/intel/ipu7/Makefile
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_boot_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_common_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_config_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_insys_config_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_isys_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_msg_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_psys_config_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/abi/ipu7_fw_syscom_abi.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-boot.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-boot.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-bus.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-bus.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-buttress-regs.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-buttress.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-buttress.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-cpd.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-cpd.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-dma.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-dma.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-fw-isys.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-fw-isys.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-csi-phy.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-csi-phy.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-csi2-regs.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-csi2.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-csi2.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-queue.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-queue.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-subdev.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-subdev.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-video.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys-video.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-isys.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-mmu.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-mmu.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-platform-regs.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-syscom.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7-syscom.h
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7.c
 create mode 100644 drivers/media/pci/intel/ipu7/ipu7.h
 rename include/media/{ipu6-pci-table.h => ipu-pci-table.h} (68%)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-04-09 20:23 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-21  7:52 [RFC PATCH 0/7] Intel IPU7 PCI and input system device drivers bingbu.cao
2025-02-21  7:52 ` [RFC PATCH 1/7] media: Rename the IPU PCI device table header and add IPU7 PCI IDs bingbu.cao
2025-02-21  7:52 ` [RFC PATCH 2/7] media: ipu7: add Intel IPU7 PCI device driver bingbu.cao
2025-02-24 14:38   ` Philipp Stanner
2025-02-25  9:39     ` Bingbu Cao
2025-02-27  4:06     ` Bingbu Cao
2025-03-03 15:01       ` Philipp Stanner
2025-03-03 15:18         ` Philipp Stanner
2025-02-26 10:00   ` Philipp Stanner
2025-02-27  3:47     ` Bingbu Cao
2025-02-21  7:52 ` [RFC PATCH 3/7] media: ipu7: add IPU7 DMA APIs and MMU mapping bingbu.cao
2025-03-03 16:13   ` Bjorn Helgaas
2025-02-21  7:52 ` [RFC PATCH 4/7] media: ipu7: add firmware parse, syscom interface and boot sequence bingbu.cao
2025-02-21  7:52 ` [RFC PATCH 5/7] media: ipu7: add IPU7 firmware ABI headers bingbu.cao
2025-02-21  7:52 ` [RFC PATCH 6/7] media: ipu7: add IPU7 input system device driver bingbu.cao
2025-02-21  7:52 ` [RFC PATCH 7/7] media: ipu7: add Makefile and Kconfig for IPU7 bingbu.cao
2025-02-25  5:55   ` Bingbu Cao
2025-02-21 12:55 ` [RFC PATCH 0/7] Intel IPU7 PCI and input system device drivers Sakari Ailus
2025-04-09 20:23   ` Laurent Pinchart
2025-03-03 16:23 ` Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox