From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: bingbu.cao@intel.com, laurent.pinchart@ideasonboard.com,
andriy.shevchenko@linux.intel.com, hdegoede@redhat.com,
ilpo.jarvinen@linux.intel.com, claus.stovgaard@gmail.com,
tomi.valkeinen@ideasonboard.com, tfiga@chromium.org,
senozhatsky@chromium.org, andreaskleist@gmail.com,
bingbu.cao@linux.intel.com, tian.shu.qiu@intel.com,
hongju.wang@intel.com
Subject: [PATCH v4 00/19] Intel IPU6 and IPU6 input system drivers
Date: Tue, 16 Apr 2024 23:10:46 +0300 [thread overview]
Message-ID: <20240416201105.781496-1-sakari.ailus@linux.intel.com> (raw)
Hello everyone,
This patch series adds a driver for Intel IPU6 input system.
IPU6 is the sixth generation of Imaging Processing Unit, it is a PCI
device which can be found in some Intel Client Platforms. User can use
IPU6 to capture images from MIPI camera sensors.
IPU6 has its own firmware which exposes ABIs to driver, and communicates
with CSE to do firmware authentication. IPU6 has its MMU hardware, so
the driver sets up a page table to allow IPU6 DMA to access the system
memory.
IPU6 input system driver uses MC and V4L2 sub-device APIs besides V4L2.
I can now capture images from ov01a10 and ov2740 sensors (including
metadata from the latter).
The series applies on top of the metadata patchset
<URL:https://lore.kernel.org/linux-media/20240416193319.778192-1-sakari.ailus@linux.intel.com/T/#t>.
---
since v3:
- Prepend the series with IPU bridge changes for more reliable
IPU bridge initialisation.
- Split off the IPU6 PCI device ID table (due to the former change).
- Documentation improvements (mostly non-technical).
- Update copyright year.
- Remove unused struct ipu6_buttress_constraint and a few other unused
definitions.
- Miscellaneous cleanups.
- Make functions static if they can be so.
- Merge watermark setup error handling bugfix from Hongju.
- Use media_pad_remote_pad_unique() instead of
media_pad_remote_pad_first() in figuring out the remote sub-device.
- Determine the number of queues by counting the video nodes in the graph.
- Make the links from the external sub-devices to CSI-2 receivers enabled
and immutable.
- Simplify determining CSI-2 port control base port offset.
- Create only as many links as needed between CSI-2 receivers and video
nodes (one per video node).
v2 -> v3:
- Add line-based metadata capture support
- Fix header files inclusion issues
- Fix the CSI2 timing calculation
- Fix crash when remove module during streaming
- Remove some unused code
- Use cross-referencing links in documentation
- Update Makefile to use ":=" for objects
- Fix several bugs and coding style issues
v1 -> v2:
- Add multiplexed streams support
- Use auxiliary bus to register IPU6 devices
- Add IPU6 hardware and driver overview documentation
- Updata IPU6 admin-guide documentation
- Update number of source pads and video nodes to support
multiplexed streams
TODOs:
- Add firmware CSI2 lanes configuration verification
Bingbu Cao (16):
media: intel/ipu6: add Intel IPU6 PCI device driver
media: intel/ipu6: add IPU auxiliary devices
media: intel/ipu6: add IPU6 buttress interface driver
media: intel/ipu6: CPD parsing for get firmware components
media: intel/ipu6: add IPU6 DMA mapping API and MMU table
media: intel/ipu6: add syscom interfaces between firmware and driver
media: intel/ipu6: input system ABI between firmware and driver
media: intel/ipu6: add IPU6 CSI2 receiver v4l2 sub-device
media: intel/ipu6: add the CSI2 DPHY implementation
media: intel/ipu6: input system video nodes and buffer queues
media: intel/ipu6: add the main input system driver
media: intel/ipu6: add Kconfig and Makefile
MAINTAINERS: add maintainers for Intel IPU6 input system driver
media: intel/ipu6: support line-based metadata capture support
Documentation: add Intel IPU6 ISYS driver admin-guide doc
Documentation: add documentation of Intel IPU6 driver and hardware
overview
Sakari Ailus (3):
media: ipu6: Add PCI device table header
media: ivsc: csi: Use IPU bridge
media: Kconfig: Select MEDIA_CONTROLLER for VIDEO_V4L2_SUBDEV_API
Documentation/admin-guide/media/ipu6-isys.rst | 161 ++
.../admin-guide/media/ipu6_isys_graph.svg | 548 +++++++
.../admin-guide/media/v4l-drivers.rst | 1 +
.../driver-api/media/drivers/index.rst | 1 +
.../driver-api/media/drivers/ipu6.rst | 205 +++
MAINTAINERS | 10 +
drivers/media/pci/intel/Kconfig | 1 +
drivers/media/pci/intel/Makefile | 1 +
drivers/media/pci/intel/ipu6/Kconfig | 17 +
drivers/media/pci/intel/ipu6/Makefile | 23 +
drivers/media/pci/intel/ipu6/ipu6-bus.c | 165 ++
drivers/media/pci/intel/ipu6/ipu6-bus.h | 58 +
drivers/media/pci/intel/ipu6/ipu6-buttress.c | 912 +++++++++++
drivers/media/pci/intel/ipu6/ipu6-buttress.h | 92 ++
drivers/media/pci/intel/ipu6/ipu6-cpd.c | 362 +++++
drivers/media/pci/intel/ipu6/ipu6-cpd.h | 105 ++
drivers/media/pci/intel/ipu6/ipu6-dma.c | 502 ++++++
drivers/media/pci/intel/ipu6/ipu6-dma.h | 19 +
drivers/media/pci/intel/ipu6/ipu6-fw-com.c | 413 +++++
drivers/media/pci/intel/ipu6/ipu6-fw-com.h | 47 +
drivers/media/pci/intel/ipu6/ipu6-fw-isys.c | 487 ++++++
drivers/media/pci/intel/ipu6/ipu6-fw-isys.h | 568 +++++++
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 667 ++++++++
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h | 82 +
.../media/pci/intel/ipu6/ipu6-isys-dwc-phy.c | 536 +++++++
.../media/pci/intel/ipu6/ipu6-isys-jsl-phy.c | 242 +++
.../media/pci/intel/ipu6/ipu6-isys-mcd-phy.c | 720 +++++++++
.../media/pci/intel/ipu6/ipu6-isys-queue.c | 824 ++++++++++
.../media/pci/intel/ipu6/ipu6-isys-queue.h | 78 +
.../media/pci/intel/ipu6/ipu6-isys-subdev.c | 408 +++++
.../media/pci/intel/ipu6/ipu6-isys-subdev.h | 59 +
.../media/pci/intel/ipu6/ipu6-isys-video.c | 1401 +++++++++++++++++
.../media/pci/intel/ipu6/ipu6-isys-video.h | 137 ++
drivers/media/pci/intel/ipu6/ipu6-isys.c | 1368 ++++++++++++++++
drivers/media/pci/intel/ipu6/ipu6-isys.h | 206 +++
drivers/media/pci/intel/ipu6/ipu6-mmu.c | 845 ++++++++++
drivers/media/pci/intel/ipu6/ipu6-mmu.h | 73 +
.../intel/ipu6/ipu6-platform-buttress-regs.h | 226 +++
.../intel/ipu6/ipu6-platform-isys-csi2-reg.h | 172 ++
.../media/pci/intel/ipu6/ipu6-platform-regs.h | 179 +++
drivers/media/pci/intel/ipu6/ipu6.c | 895 +++++++++++
drivers/media/pci/intel/ipu6/ipu6.h | 342 ++++
drivers/media/pci/intel/ivsc/mei_csi.c | 20 +-
drivers/media/v4l2-core/Kconfig | 3 +-
include/media/ipu6-pci-table.h | 28 +
45 files changed, 14206 insertions(+), 3 deletions(-)
create mode 100644 Documentation/admin-guide/media/ipu6-isys.rst
create mode 100644 Documentation/admin-guide/media/ipu6_isys_graph.svg
create mode 100644 Documentation/driver-api/media/drivers/ipu6.rst
create mode 100644 drivers/media/pci/intel/ipu6/Kconfig
create mode 100644 drivers/media/pci/intel/ipu6/Makefile
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-bus.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-bus.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-buttress.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-buttress.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-cpd.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-cpd.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-dma.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-dma.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-fw-com.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-fw-com.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-fw-isys.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-fw-isys.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-dwc-phy.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-jsl-phy.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-mcd-phy.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-queue.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-queue.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-subdev.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-video.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-video.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-mmu.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-mmu.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-platform-buttress-regs.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-platform-isys-csi2-reg.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6-platform-regs.h
create mode 100644 drivers/media/pci/intel/ipu6/ipu6.c
create mode 100644 drivers/media/pci/intel/ipu6/ipu6.h
create mode 100644 include/media/ipu6-pci-table.h
--
2.39.2
next reply other threads:[~2024-04-16 20:11 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-16 20:10 Sakari Ailus [this message]
2024-04-16 20:10 ` [PATCH v4 01/19] media: ipu6: Add PCI device table header Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 02/19] media: ivsc: csi: Use IPU bridge Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 03/19] media: intel/ipu6: add Intel IPU6 PCI device driver Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 04/19] media: intel/ipu6: add IPU auxiliary devices Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 05/19] media: intel/ipu6: add IPU6 buttress interface driver Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 06/19] media: intel/ipu6: CPD parsing for get firmware components Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 07/19] media: intel/ipu6: add IPU6 DMA mapping API and MMU table Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 08/19] media: intel/ipu6: add syscom interfaces between firmware and driver Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 09/19] media: intel/ipu6: input system ABI " Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 10/19] media: intel/ipu6: add IPU6 CSI2 receiver v4l2 sub-device Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 11/19] media: intel/ipu6: add the CSI2 DPHY implementation Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 12/19] media: intel/ipu6: input system video nodes and buffer queues Sakari Ailus
2024-04-16 20:10 ` [PATCH v4 13/19] media: intel/ipu6: add the main input system driver Sakari Ailus
2024-04-16 20:11 ` [PATCH v4 14/19] media: intel/ipu6: add Kconfig and Makefile Sakari Ailus
2024-04-16 20:11 ` [PATCH v4 15/19] media: Kconfig: Select MEDIA_CONTROLLER for VIDEO_V4L2_SUBDEV_API Sakari Ailus
2024-04-16 20:11 ` [PATCH v4 16/19] MAINTAINERS: add maintainers for Intel IPU6 input system driver Sakari Ailus
2024-04-16 20:11 ` [PATCH v4 17/19] media: intel/ipu6: support line-based metadata capture support Sakari Ailus
2024-04-16 20:11 ` [PATCH v4 18/19] Documentation: add Intel IPU6 ISYS driver admin-guide doc Sakari Ailus
2024-04-16 20:11 ` [PATCH v4 19/19] Documentation: add documentation of Intel IPU6 driver and hardware overview Sakari Ailus
2024-04-17 7:56 ` [PATCH v4 00/19] Intel IPU6 and IPU6 input system drivers Hans de Goede
2024-04-17 8:34 ` Sakari Ailus
2024-04-17 8:59 ` Hans de Goede
2024-04-17 11:33 ` Bingbu Cao
2024-04-17 12:29 ` Sakari Ailus
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=20240416201105.781496-1-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=andreaskleist@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bingbu.cao@intel.com \
--cc=bingbu.cao@linux.intel.com \
--cc=claus.stovgaard@gmail.com \
--cc=hdegoede@redhat.com \
--cc=hongju.wang@intel.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=senozhatsky@chromium.org \
--cc=tfiga@chromium.org \
--cc=tian.shu.qiu@intel.com \
--cc=tomi.valkeinen@ideasonboard.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.