Re: [RFC PATCH 00/14] Intel IPU6 and IPU6 input system drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bingbu,

Thank you for the patches.

On Thu, Apr 13, 2023 at 06:04:15PM +0800, bingbu.cao@xxxxxxxxx wrote:
> From: Bingbu Cao <bingbu.cao@xxxxxxxxx>
> 
> 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 had a look through the series, and it's a bit difficult to understand
how the different pieces interact with each other. Would it be possible
to provide some high-level documentation for the driver design, as well
as a high-level view of the hardware (and firmware) components ? It
would help the review process. Documentation/driver-api/media/drivers/
would be a good location for that.

> ---
> TODOs:
>   - Add support for multiplexed streams
>   - Add firmware CSI2 lanes configuration verification and documentation
> 
> ---
> 
> Bingbu Cao (13):
>   media: intel/ipu6: add Intel IPU6 PCI device driver
>   media: intel/ipu6: add IPU virtual bus driver
>   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: add input system driver
>   media: intel/ipu6: input system video capture nodes
>   media: add Kconfig and Makefile for IPU6
>   MAINTAINERS: add maintainers for Intel IPU6 input system driver
> 
>  MAINTAINERS                                   |   10 +
>  drivers/media/pci/Kconfig                     |    1 +
>  drivers/media/pci/intel/Makefile              |    3 +-
>  drivers/media/pci/intel/ipu6/Kconfig          |   15 +
>  drivers/media/pci/intel/ipu6/Makefile         |   23 +
>  drivers/media/pci/intel/ipu6/ipu6-bus.c       |  263 ++++
>  drivers/media/pci/intel/ipu6/ipu6-bus.h       |   69 +
>  drivers/media/pci/intel/ipu6/ipu6-buttress.c  |  916 ++++++++++++
>  drivers/media/pci/intel/ipu6/ipu6-buttress.h  |  109 ++
>  drivers/media/pci/intel/ipu6/ipu6-cpd.c       |  359 +++++
>  drivers/media/pci/intel/ipu6/ipu6-cpd.h       |  107 ++
>  drivers/media/pci/intel/ipu6/ipu6-dma.c       |  497 ++++++
>  drivers/media/pci/intel/ipu6/ipu6-dma.h       |   19 +
>  drivers/media/pci/intel/ipu6/ipu6-fw-com.c    |  417 ++++++
>  drivers/media/pci/intel/ipu6/ipu6-fw-com.h    |   47 +
>  drivers/media/pci/intel/ipu6/ipu6-fw-isys.c   |  566 +++++++
>  drivers/media/pci/intel/ipu6/ipu6-fw-isys.h   |  574 +++++++
>  drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c |  575 +++++++
>  drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h |   75 +
>  .../media/pci/intel/ipu6/ipu6-isys-dwc-phy.c  |  549 +++++++
>  .../media/pci/intel/ipu6/ipu6-isys-jsl-phy.c  |  245 +++
>  .../media/pci/intel/ipu6/ipu6-isys-mcd-phy.c  |  735 +++++++++
>  drivers/media/pci/intel/ipu6/ipu6-isys-phy.h  |   24 +
>  .../media/pci/intel/ipu6/ipu6-isys-queue.c    |  869 +++++++++++
>  .../media/pci/intel/ipu6/ipu6-isys-queue.h    |   97 ++
>  .../media/pci/intel/ipu6/ipu6-isys-subdev.c   |  309 ++++
>  .../media/pci/intel/ipu6/ipu6-isys-subdev.h   |   70 +
>  .../media/pci/intel/ipu6/ipu6-isys-video.c    | 1132 ++++++++++++++
>  .../media/pci/intel/ipu6/ipu6-isys-video.h    |  120 ++
>  drivers/media/pci/intel/ipu6/ipu6-isys.c      | 1326 +++++++++++++++++
>  drivers/media/pci/intel/ipu6/ipu6-isys.h      |  190 +++
>  drivers/media/pci/intel/ipu6/ipu6-mmu.c       |  833 +++++++++++
>  drivers/media/pci/intel/ipu6/ipu6-mmu.h       |   65 +
>  .../intel/ipu6/ipu6-platform-buttress-regs.h  |  231 +++
>  .../intel/ipu6/ipu6-platform-isys-csi2-reg.h  |  187 +++
>  .../media/pci/intel/ipu6/ipu6-platform-regs.h |  177 +++
>  drivers/media/pci/intel/ipu6/ipu6-platform.h  |   31 +
>  drivers/media/pci/intel/ipu6/ipu6.c           |  969 ++++++++++++
>  drivers/media/pci/intel/ipu6/ipu6.h           |  344 +++++
>  39 files changed, 13147 insertions(+), 1 deletion(-)
>  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-phy.h
>  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-platform.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6.h

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux