mbox series

[0/7,SRU,OEM-5.10] Add Intel IPU6 driver

Message ID 20210326064407.1789434-1-vicamo.yang@canonical.com
Headers show
Series Add Intel IPU6 driver | expand

Message

You-Sheng Yang March 26, 2021, 6:44 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1921345

[Impact]

There are new platforms with MIPI camera based on Intel IPU6(Imaging
Processing Unit version 6) currently unsupported in Ubuntu.

[Fix]

Intel IPU6 can be enabled by integration of following kernel driver,
firmware, userspace HAL libraries as well as a GStreamer source element:

  * https://github.com/intel/ipu6-drivers
  * https://github.com/intel/ipu6-camera-bins
  * https://github.com/intel/ipu6-camera-hal
  * https://github.com/intel/icamerasrc

This patchset took kernel patches from intel/ipu6-drivers.

[Test Case]

With kernel/firmware properly installed, the hardware should be ready for
further development:

  $ dmesg | grep ipu
  intel-ipu6 intel-ipu: enabling device (0000 -> 0002)
  intel-ipu6 intel-ipu: Device 0x9a19 (rev: 0x1)
  intel-ipu6 intel-ipu: physical base address 0x6054000000
  intel-ipu6 intel-ipu: mapped as: 0x0000000097793328
  intel-ipu6 intel-ipu: IPU in secure mode
  intel-ipu6 intel-ipu: IPC reset done
  intel-ipu6 intel-ipu: cpd file name: intel/ipu6_fw.bin
  intel-ipu6 intel-ipu: FW version: 20201222
  intel-ipu6 intel-ipu: Sending BOOT_LOAD to CSE
  intel-ipu6 intel-ipu: Sending AUTHENTICATE_RUN to CSE
  intel-ipu6 intel-ipu: CSE authenticate_run done
  intel-ipu6 intel-ipu: IPU driver version 1.0
  intel-ipu6-psys intel-ipu6-psys0: pkg_dir entry count:8
  intel-ipu6-psys intel-ipu6-psys0: psys probe minor: 0
  intel-ipu6-isys intel-ipu6-isys0: bind ov01a1s 20-0036 nlanes is 1
port is 1
  intel-ipu6-isys intel-ipu6-isys0: All sensor registration completed.
  intel-ipu6-isys intel-ipu6-isys0: stream on ov01a1s 20-0036

There should be nearly 24 video4linux devices created under /dev.

[Where problems could occur]

MIPI camera through Intel IPU6 takes also firmware blobs loaded in
runtime from user space, addtional softwares are also required to
fully enable it for oridinary use. The exposed video devices are hidden
from general users and a relay daemon+v4l2loopback is used to enable
use from existing applications.

From kernel's point of view, there is still a known issue that it takes
root priviledge to access these devices.

[Other Info]

So far Intel has no plan to commit this driver to upstream yet, so it's
only nominated for oem-5.10. It will only be nominated to generic
kernels when the plan/requirements have changed.

The original driver Kconfig would disable VIDEO_IPU3_CIO2, but that's
reverted to avoid unnecessary changes to existing users.

Wang Yating (6):
  intel ipu drivers first release
  IPU driver release WW48
  IPU driver release WW48 with MCU
  IPU driver release WW52
  IPU driver release WW04
  UBUNTU: SAUCE: integrate IPU6 builds

You-Sheng Yang (1):
  UBUNTU: [Config] updateconfigs for IPU6 driver

 debian.oem/config/config.common.ubuntu        |    6 +
 drivers/media/i2c/Kconfig                     |   33 +
 drivers/media/i2c/Makefile                    |    4 +
 drivers/media/i2c/hm11b1.c                    | 1366 +++++++++++++
 drivers/media/i2c/ov01a1s.c                   |  935 +++++++++
 drivers/media/i2c/pmic_dsc1.c                 |  158 ++
 drivers/media/i2c/pmic_dsc1.h                 |   33 +
 drivers/media/pci/Kconfig                     |    2 +-
 drivers/media/pci/intel/Kconfig               |   32 +
 drivers/media/pci/intel/Makefile              |   11 +-
 drivers/media/pci/intel/ipu-bus.c             |  255 +++
 drivers/media/pci/intel/ipu-bus.h             |   67 +
 drivers/media/pci/intel/ipu-buttress.c        | 1399 +++++++++++++
 drivers/media/pci/intel/ipu-buttress.h        |  129 ++
 drivers/media/pci/intel/ipu-cpd.c             |  465 +++++
 drivers/media/pci/intel/ipu-cpd.h             |  110 +
 drivers/media/pci/intel/ipu-dma.c             |  409 ++++
 drivers/media/pci/intel/ipu-dma.h             |   19 +
 drivers/media/pci/intel/ipu-fw-com.c          |  496 +++++
 drivers/media/pci/intel/ipu-fw-com.h          |   48 +
 drivers/media/pci/intel/ipu-fw-isys.c         |  700 +++++++
 drivers/media/pci/intel/ipu-fw-isys.h         |  826 ++++++++
 drivers/media/pci/intel/ipu-fw-psys.c         |  433 ++++
 drivers/media/pci/intel/ipu-fw-psys.h         |  394 ++++
 .../media/pci/intel/ipu-isys-csi2-be-soc.c    |  293 +++
 drivers/media/pci/intel/ipu-isys-csi2-be.c    |  325 +++
 drivers/media/pci/intel/ipu-isys-csi2-be.h    |   66 +
 drivers/media/pci/intel/ipu-isys-csi2.c       |  662 ++++++
 drivers/media/pci/intel/ipu-isys-csi2.h       |  164 ++
 drivers/media/pci/intel/ipu-isys-media.h      |   77 +
 drivers/media/pci/intel/ipu-isys-queue.c      | 1062 ++++++++++
 drivers/media/pci/intel/ipu-isys-queue.h      |  142 ++
 drivers/media/pci/intel/ipu-isys-subdev.c     |  657 ++++++
 drivers/media/pci/intel/ipu-isys-subdev.h     |  153 ++
 drivers/media/pci/intel/ipu-isys-tpg.c        |  311 +++
 drivers/media/pci/intel/ipu-isys-tpg.h        |   99 +
 drivers/media/pci/intel/ipu-isys-video.c      | 1768 +++++++++++++++++
 drivers/media/pci/intel/ipu-isys-video.h      |  181 ++
 drivers/media/pci/intel/ipu-isys.c            | 1473 ++++++++++++++
 drivers/media/pci/intel/ipu-isys.h            |  237 +++
 drivers/media/pci/intel/ipu-mmu.c             |  787 ++++++++
 drivers/media/pci/intel/ipu-mmu.h             |   67 +
 drivers/media/pci/intel/ipu-pdata.h           |  255 +++
 drivers/media/pci/intel/ipu-psys-compat32.c   |  226 +++
 drivers/media/pci/intel/ipu-psys.c            | 1617 +++++++++++++++
 drivers/media/pci/intel/ipu-psys.h            |  218 ++
 drivers/media/pci/intel/ipu-trace.c           |  882 ++++++++
 drivers/media/pci/intel/ipu-trace.h           |  312 +++
 drivers/media/pci/intel/ipu.c                 |  813 ++++++++
 drivers/media/pci/intel/ipu.h                 |  106 +
 drivers/media/pci/intel/ipu6/Makefile         |   62 +
 .../media/pci/intel/ipu6/ipu-fw-resources.c   |  103 +
 .../intel/ipu6/ipu-platform-buttress-regs.h   |  317 +++
 .../intel/ipu6/ipu-platform-isys-csi2-reg.h   |  277 +++
 .../media/pci/intel/ipu6/ipu-platform-isys.h  |   26 +
 .../media/pci/intel/ipu6/ipu-platform-psys.h  |   78 +
 .../media/pci/intel/ipu6/ipu-platform-regs.h  |  333 ++++
 .../pci/intel/ipu6/ipu-platform-resources.h   |  102 +
 drivers/media/pci/intel/ipu6/ipu-platform.h   |   33 +
 drivers/media/pci/intel/ipu6/ipu-resources.c  |  861 ++++++++
 .../media/pci/intel/ipu6/ipu6-fw-resources.c  |  582 ++++++
 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c |  513 +++++
 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h |   14 +
 drivers/media/pci/intel/ipu6/ipu6-isys-gpc.c  |  205 ++
 drivers/media/pci/intel/ipu6/ipu6-isys-phy.c  |  595 ++++++
 drivers/media/pci/intel/ipu6/ipu6-isys-phy.h  |  159 ++
 drivers/media/pci/intel/ipu6/ipu6-isys.c      |  322 +++
 .../media/pci/intel/ipu6/ipu6-l-scheduler.c   |  611 ++++++
 .../pci/intel/ipu6/ipu6-platform-resources.h  |  197 ++
 drivers/media/pci/intel/ipu6/ipu6-ppg.c       |  559 ++++++
 drivers/media/pci/intel/ipu6/ipu6-ppg.h       |   38 +
 drivers/media/pci/intel/ipu6/ipu6-psys-gpc.c  |  212 ++
 drivers/media/pci/intel/ipu6/ipu6-psys.c      | 1056 ++++++++++
 drivers/media/pci/intel/ipu6/ipu6.c           |  368 ++++
 .../pci/intel/ipu6/ipu6se-fw-resources.c      |  352 ++++
 .../intel/ipu6/ipu6se-platform-resources.h    |  127 ++
 drivers/usb/Kconfig                           |    2 +
 drivers/usb/Makefile                          |    2 +
 drivers/usb/intel_ulpss/Kconfig               |   11 +
 drivers/usb/intel_ulpss/Makefile              |    3 +
 drivers/usb/intel_ulpss/diag_stub.c           |  116 ++
 drivers/usb/intel_ulpss/diag_stub.h           |   19 +
 drivers/usb/intel_ulpss/gpio_stub.c           |  459 +++++
 drivers/usb/intel_ulpss/gpio_stub.h           |   13 +
 drivers/usb/intel_ulpss/i2c_stub.c            |  456 +++++
 drivers/usb/intel_ulpss/i2c_stub.h            |   21 +
 drivers/usb/intel_ulpss/mng_stub.c            |  244 +++
 drivers/usb/intel_ulpss/mng_stub.h            |   18 +
 .../usb/intel_ulpss/protocol_intel_ulpss.h    |  173 ++
 drivers/usb/intel_ulpss/ulpss_bridge.c        |  529 +++++
 drivers/usb/intel_ulpss/ulpss_bridge.h        |   77 +
 drivers/usb/intel_ulpss/usb_stub.c            |  285 +++
 drivers/usb/intel_ulpss/usb_stub.h            |   49 +
 include/media/ipu-isys.h                      |   44 +
 include/uapi/linux/ipu-isys.h                 |   15 +
 include/uapi/linux/ipu-psys.h                 |  121 ++
 96 files changed, 32040 insertions(+), 2 deletions(-)
 create mode 100644 drivers/media/i2c/hm11b1.c
 create mode 100644 drivers/media/i2c/ov01a1s.c
 create mode 100644 drivers/media/i2c/pmic_dsc1.c
 create mode 100644 drivers/media/i2c/pmic_dsc1.h
 create mode 100644 drivers/media/pci/intel/Kconfig
 create mode 100644 drivers/media/pci/intel/ipu-bus.c
 create mode 100644 drivers/media/pci/intel/ipu-bus.h
 create mode 100644 drivers/media/pci/intel/ipu-buttress.c
 create mode 100644 drivers/media/pci/intel/ipu-buttress.h
 create mode 100644 drivers/media/pci/intel/ipu-cpd.c
 create mode 100644 drivers/media/pci/intel/ipu-cpd.h
 create mode 100644 drivers/media/pci/intel/ipu-dma.c
 create mode 100644 drivers/media/pci/intel/ipu-dma.h
 create mode 100644 drivers/media/pci/intel/ipu-fw-com.c
 create mode 100644 drivers/media/pci/intel/ipu-fw-com.h
 create mode 100644 drivers/media/pci/intel/ipu-fw-isys.c
 create mode 100644 drivers/media/pci/intel/ipu-fw-isys.h
 create mode 100644 drivers/media/pci/intel/ipu-fw-psys.c
 create mode 100644 drivers/media/pci/intel/ipu-fw-psys.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-csi2-be-soc.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-csi2-be.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-csi2-be.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-csi2.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-csi2.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-media.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-queue.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-queue.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-subdev.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-subdev.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-tpg.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-tpg.h
 create mode 100644 drivers/media/pci/intel/ipu-isys-video.c
 create mode 100644 drivers/media/pci/intel/ipu-isys-video.h
 create mode 100644 drivers/media/pci/intel/ipu-isys.c
 create mode 100644 drivers/media/pci/intel/ipu-isys.h
 create mode 100644 drivers/media/pci/intel/ipu-mmu.c
 create mode 100644 drivers/media/pci/intel/ipu-mmu.h
 create mode 100644 drivers/media/pci/intel/ipu-pdata.h
 create mode 100644 drivers/media/pci/intel/ipu-psys-compat32.c
 create mode 100644 drivers/media/pci/intel/ipu-psys.c
 create mode 100644 drivers/media/pci/intel/ipu-psys.h
 create mode 100644 drivers/media/pci/intel/ipu-trace.c
 create mode 100644 drivers/media/pci/intel/ipu-trace.h
 create mode 100644 drivers/media/pci/intel/ipu.c
 create mode 100644 drivers/media/pci/intel/ipu.h
 create mode 100644 drivers/media/pci/intel/ipu6/Makefile
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-fw-resources.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-buttress-regs.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-isys-csi2-reg.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-isys.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-psys.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-regs.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-resources.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu-resources.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-fw-resources.c
 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-gpc.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-phy.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-phy.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-l-scheduler.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-platform-resources.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-ppg.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-ppg.h
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-psys-gpc.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6-psys.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6se-fw-resources.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6se-platform-resources.h
 create mode 100644 drivers/usb/intel_ulpss/Kconfig
 create mode 100644 drivers/usb/intel_ulpss/Makefile
 create mode 100644 drivers/usb/intel_ulpss/diag_stub.c
 create mode 100644 drivers/usb/intel_ulpss/diag_stub.h
 create mode 100644 drivers/usb/intel_ulpss/gpio_stub.c
 create mode 100644 drivers/usb/intel_ulpss/gpio_stub.h
 create mode 100644 drivers/usb/intel_ulpss/i2c_stub.c
 create mode 100644 drivers/usb/intel_ulpss/i2c_stub.h
 create mode 100644 drivers/usb/intel_ulpss/mng_stub.c
 create mode 100644 drivers/usb/intel_ulpss/mng_stub.h
 create mode 100644 drivers/usb/intel_ulpss/protocol_intel_ulpss.h
 create mode 100644 drivers/usb/intel_ulpss/ulpss_bridge.c
 create mode 100644 drivers/usb/intel_ulpss/ulpss_bridge.h
 create mode 100644 drivers/usb/intel_ulpss/usb_stub.c
 create mode 100644 drivers/usb/intel_ulpss/usb_stub.h
 create mode 100644 include/media/ipu-isys.h
 create mode 100644 include/uapi/linux/ipu-isys.h
 create mode 100644 include/uapi/linux/ipu-psys.h

Comments

You-Sheng Yang April 6, 2021, 10:52 a.m. UTC | #1
To be revised with Intel's latest WW14 release.

On 3/26/21 2:44 PM, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1921345
> 
> [Impact]
> 
> There are new platforms with MIPI camera based on Intel IPU6(Imaging
> Processing Unit version 6) currently unsupported in Ubuntu.
> 
> [Fix]
> 
> Intel IPU6 can be enabled by integration of following kernel driver,
> firmware, userspace HAL libraries as well as a GStreamer source element:
> 
>   * https://github.com/intel/ipu6-drivers
>   * https://github.com/intel/ipu6-camera-bins
>   * https://github.com/intel/ipu6-camera-hal
>   * https://github.com/intel/icamerasrc
> 
> This patchset took kernel patches from intel/ipu6-drivers.
> 
> [Test Case]
> 
> With kernel/firmware properly installed, the hardware should be ready for
> further development:
> 
>   $ dmesg | grep ipu
>   intel-ipu6 intel-ipu: enabling device (0000 -> 0002)
>   intel-ipu6 intel-ipu: Device 0x9a19 (rev: 0x1)
>   intel-ipu6 intel-ipu: physical base address 0x6054000000
>   intel-ipu6 intel-ipu: mapped as: 0x0000000097793328
>   intel-ipu6 intel-ipu: IPU in secure mode
>   intel-ipu6 intel-ipu: IPC reset done
>   intel-ipu6 intel-ipu: cpd file name: intel/ipu6_fw.bin
>   intel-ipu6 intel-ipu: FW version: 20201222
>   intel-ipu6 intel-ipu: Sending BOOT_LOAD to CSE
>   intel-ipu6 intel-ipu: Sending AUTHENTICATE_RUN to CSE
>   intel-ipu6 intel-ipu: CSE authenticate_run done
>   intel-ipu6 intel-ipu: IPU driver version 1.0
>   intel-ipu6-psys intel-ipu6-psys0: pkg_dir entry count:8
>   intel-ipu6-psys intel-ipu6-psys0: psys probe minor: 0
>   intel-ipu6-isys intel-ipu6-isys0: bind ov01a1s 20-0036 nlanes is 1
> port is 1
>   intel-ipu6-isys intel-ipu6-isys0: All sensor registration completed.
>   intel-ipu6-isys intel-ipu6-isys0: stream on ov01a1s 20-0036
> 
> There should be nearly 24 video4linux devices created under /dev.
> 
> [Where problems could occur]
> 
> MIPI camera through Intel IPU6 takes also firmware blobs loaded in
> runtime from user space, addtional softwares are also required to
> fully enable it for oridinary use. The exposed video devices are hidden
> from general users and a relay daemon+v4l2loopback is used to enable
> use from existing applications.
> 
> From kernel's point of view, there is still a known issue that it takes
> root priviledge to access these devices.
> 
> [Other Info]
> 
> So far Intel has no plan to commit this driver to upstream yet, so it's
> only nominated for oem-5.10. It will only be nominated to generic
> kernels when the plan/requirements have changed.
> 
> The original driver Kconfig would disable VIDEO_IPU3_CIO2, but that's
> reverted to avoid unnecessary changes to existing users.
> 
> Wang Yating (6):
>   intel ipu drivers first release
>   IPU driver release WW48
>   IPU driver release WW48 with MCU
>   IPU driver release WW52
>   IPU driver release WW04
>   UBUNTU: SAUCE: integrate IPU6 builds
> 
> You-Sheng Yang (1):
>   UBUNTU: [Config] updateconfigs for IPU6 driver
> 
>  debian.oem/config/config.common.ubuntu        |    6 +
>  drivers/media/i2c/Kconfig                     |   33 +
>  drivers/media/i2c/Makefile                    |    4 +
>  drivers/media/i2c/hm11b1.c                    | 1366 +++++++++++++
>  drivers/media/i2c/ov01a1s.c                   |  935 +++++++++
>  drivers/media/i2c/pmic_dsc1.c                 |  158 ++
>  drivers/media/i2c/pmic_dsc1.h                 |   33 +
>  drivers/media/pci/Kconfig                     |    2 +-
>  drivers/media/pci/intel/Kconfig               |   32 +
>  drivers/media/pci/intel/Makefile              |   11 +-
>  drivers/media/pci/intel/ipu-bus.c             |  255 +++
>  drivers/media/pci/intel/ipu-bus.h             |   67 +
>  drivers/media/pci/intel/ipu-buttress.c        | 1399 +++++++++++++
>  drivers/media/pci/intel/ipu-buttress.h        |  129 ++
>  drivers/media/pci/intel/ipu-cpd.c             |  465 +++++
>  drivers/media/pci/intel/ipu-cpd.h             |  110 +
>  drivers/media/pci/intel/ipu-dma.c             |  409 ++++
>  drivers/media/pci/intel/ipu-dma.h             |   19 +
>  drivers/media/pci/intel/ipu-fw-com.c          |  496 +++++
>  drivers/media/pci/intel/ipu-fw-com.h          |   48 +
>  drivers/media/pci/intel/ipu-fw-isys.c         |  700 +++++++
>  drivers/media/pci/intel/ipu-fw-isys.h         |  826 ++++++++
>  drivers/media/pci/intel/ipu-fw-psys.c         |  433 ++++
>  drivers/media/pci/intel/ipu-fw-psys.h         |  394 ++++
>  .../media/pci/intel/ipu-isys-csi2-be-soc.c    |  293 +++
>  drivers/media/pci/intel/ipu-isys-csi2-be.c    |  325 +++
>  drivers/media/pci/intel/ipu-isys-csi2-be.h    |   66 +
>  drivers/media/pci/intel/ipu-isys-csi2.c       |  662 ++++++
>  drivers/media/pci/intel/ipu-isys-csi2.h       |  164 ++
>  drivers/media/pci/intel/ipu-isys-media.h      |   77 +
>  drivers/media/pci/intel/ipu-isys-queue.c      | 1062 ++++++++++
>  drivers/media/pci/intel/ipu-isys-queue.h      |  142 ++
>  drivers/media/pci/intel/ipu-isys-subdev.c     |  657 ++++++
>  drivers/media/pci/intel/ipu-isys-subdev.h     |  153 ++
>  drivers/media/pci/intel/ipu-isys-tpg.c        |  311 +++
>  drivers/media/pci/intel/ipu-isys-tpg.h        |   99 +
>  drivers/media/pci/intel/ipu-isys-video.c      | 1768 +++++++++++++++++
>  drivers/media/pci/intel/ipu-isys-video.h      |  181 ++
>  drivers/media/pci/intel/ipu-isys.c            | 1473 ++++++++++++++
>  drivers/media/pci/intel/ipu-isys.h            |  237 +++
>  drivers/media/pci/intel/ipu-mmu.c             |  787 ++++++++
>  drivers/media/pci/intel/ipu-mmu.h             |   67 +
>  drivers/media/pci/intel/ipu-pdata.h           |  255 +++
>  drivers/media/pci/intel/ipu-psys-compat32.c   |  226 +++
>  drivers/media/pci/intel/ipu-psys.c            | 1617 +++++++++++++++
>  drivers/media/pci/intel/ipu-psys.h            |  218 ++
>  drivers/media/pci/intel/ipu-trace.c           |  882 ++++++++
>  drivers/media/pci/intel/ipu-trace.h           |  312 +++
>  drivers/media/pci/intel/ipu.c                 |  813 ++++++++
>  drivers/media/pci/intel/ipu.h                 |  106 +
>  drivers/media/pci/intel/ipu6/Makefile         |   62 +
>  .../media/pci/intel/ipu6/ipu-fw-resources.c   |  103 +
>  .../intel/ipu6/ipu-platform-buttress-regs.h   |  317 +++
>  .../intel/ipu6/ipu-platform-isys-csi2-reg.h   |  277 +++
>  .../media/pci/intel/ipu6/ipu-platform-isys.h  |   26 +
>  .../media/pci/intel/ipu6/ipu-platform-psys.h  |   78 +
>  .../media/pci/intel/ipu6/ipu-platform-regs.h  |  333 ++++
>  .../pci/intel/ipu6/ipu-platform-resources.h   |  102 +
>  drivers/media/pci/intel/ipu6/ipu-platform.h   |   33 +
>  drivers/media/pci/intel/ipu6/ipu-resources.c  |  861 ++++++++
>  .../media/pci/intel/ipu6/ipu6-fw-resources.c  |  582 ++++++
>  drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c |  513 +++++
>  drivers/media/pci/intel/ipu6/ipu6-isys-csi2.h |   14 +
>  drivers/media/pci/intel/ipu6/ipu6-isys-gpc.c  |  205 ++
>  drivers/media/pci/intel/ipu6/ipu6-isys-phy.c  |  595 ++++++
>  drivers/media/pci/intel/ipu6/ipu6-isys-phy.h  |  159 ++
>  drivers/media/pci/intel/ipu6/ipu6-isys.c      |  322 +++
>  .../media/pci/intel/ipu6/ipu6-l-scheduler.c   |  611 ++++++
>  .../pci/intel/ipu6/ipu6-platform-resources.h  |  197 ++
>  drivers/media/pci/intel/ipu6/ipu6-ppg.c       |  559 ++++++
>  drivers/media/pci/intel/ipu6/ipu6-ppg.h       |   38 +
>  drivers/media/pci/intel/ipu6/ipu6-psys-gpc.c  |  212 ++
>  drivers/media/pci/intel/ipu6/ipu6-psys.c      | 1056 ++++++++++
>  drivers/media/pci/intel/ipu6/ipu6.c           |  368 ++++
>  .../pci/intel/ipu6/ipu6se-fw-resources.c      |  352 ++++
>  .../intel/ipu6/ipu6se-platform-resources.h    |  127 ++
>  drivers/usb/Kconfig                           |    2 +
>  drivers/usb/Makefile                          |    2 +
>  drivers/usb/intel_ulpss/Kconfig               |   11 +
>  drivers/usb/intel_ulpss/Makefile              |    3 +
>  drivers/usb/intel_ulpss/diag_stub.c           |  116 ++
>  drivers/usb/intel_ulpss/diag_stub.h           |   19 +
>  drivers/usb/intel_ulpss/gpio_stub.c           |  459 +++++
>  drivers/usb/intel_ulpss/gpio_stub.h           |   13 +
>  drivers/usb/intel_ulpss/i2c_stub.c            |  456 +++++
>  drivers/usb/intel_ulpss/i2c_stub.h            |   21 +
>  drivers/usb/intel_ulpss/mng_stub.c            |  244 +++
>  drivers/usb/intel_ulpss/mng_stub.h            |   18 +
>  .../usb/intel_ulpss/protocol_intel_ulpss.h    |  173 ++
>  drivers/usb/intel_ulpss/ulpss_bridge.c        |  529 +++++
>  drivers/usb/intel_ulpss/ulpss_bridge.h        |   77 +
>  drivers/usb/intel_ulpss/usb_stub.c            |  285 +++
>  drivers/usb/intel_ulpss/usb_stub.h            |   49 +
>  include/media/ipu-isys.h                      |   44 +
>  include/uapi/linux/ipu-isys.h                 |   15 +
>  include/uapi/linux/ipu-psys.h                 |  121 ++
>  96 files changed, 32040 insertions(+), 2 deletions(-)
>  create mode 100644 drivers/media/i2c/hm11b1.c
>  create mode 100644 drivers/media/i2c/ov01a1s.c
>  create mode 100644 drivers/media/i2c/pmic_dsc1.c
>  create mode 100644 drivers/media/i2c/pmic_dsc1.h
>  create mode 100644 drivers/media/pci/intel/Kconfig
>  create mode 100644 drivers/media/pci/intel/ipu-bus.c
>  create mode 100644 drivers/media/pci/intel/ipu-bus.h
>  create mode 100644 drivers/media/pci/intel/ipu-buttress.c
>  create mode 100644 drivers/media/pci/intel/ipu-buttress.h
>  create mode 100644 drivers/media/pci/intel/ipu-cpd.c
>  create mode 100644 drivers/media/pci/intel/ipu-cpd.h
>  create mode 100644 drivers/media/pci/intel/ipu-dma.c
>  create mode 100644 drivers/media/pci/intel/ipu-dma.h
>  create mode 100644 drivers/media/pci/intel/ipu-fw-com.c
>  create mode 100644 drivers/media/pci/intel/ipu-fw-com.h
>  create mode 100644 drivers/media/pci/intel/ipu-fw-isys.c
>  create mode 100644 drivers/media/pci/intel/ipu-fw-isys.h
>  create mode 100644 drivers/media/pci/intel/ipu-fw-psys.c
>  create mode 100644 drivers/media/pci/intel/ipu-fw-psys.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-csi2-be-soc.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-csi2-be.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-csi2-be.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-csi2.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-csi2.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-media.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-queue.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-queue.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-subdev.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-subdev.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-tpg.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-tpg.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys-video.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys-video.h
>  create mode 100644 drivers/media/pci/intel/ipu-isys.c
>  create mode 100644 drivers/media/pci/intel/ipu-isys.h
>  create mode 100644 drivers/media/pci/intel/ipu-mmu.c
>  create mode 100644 drivers/media/pci/intel/ipu-mmu.h
>  create mode 100644 drivers/media/pci/intel/ipu-pdata.h
>  create mode 100644 drivers/media/pci/intel/ipu-psys-compat32.c
>  create mode 100644 drivers/media/pci/intel/ipu-psys.c
>  create mode 100644 drivers/media/pci/intel/ipu-psys.h
>  create mode 100644 drivers/media/pci/intel/ipu-trace.c
>  create mode 100644 drivers/media/pci/intel/ipu-trace.h
>  create mode 100644 drivers/media/pci/intel/ipu.c
>  create mode 100644 drivers/media/pci/intel/ipu.h
>  create mode 100644 drivers/media/pci/intel/ipu6/Makefile
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-fw-resources.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-buttress-regs.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-isys-csi2-reg.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-isys.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-psys.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-regs.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform-resources.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-platform.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu-resources.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-fw-resources.c
>  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-gpc.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-phy.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys-phy.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-isys.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-l-scheduler.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-platform-resources.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-ppg.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-ppg.h
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-psys-gpc.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6-psys.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6se-fw-resources.c
>  create mode 100644 drivers/media/pci/intel/ipu6/ipu6se-platform-resources.h
>  create mode 100644 drivers/usb/intel_ulpss/Kconfig
>  create mode 100644 drivers/usb/intel_ulpss/Makefile
>  create mode 100644 drivers/usb/intel_ulpss/diag_stub.c
>  create mode 100644 drivers/usb/intel_ulpss/diag_stub.h
>  create mode 100644 drivers/usb/intel_ulpss/gpio_stub.c
>  create mode 100644 drivers/usb/intel_ulpss/gpio_stub.h
>  create mode 100644 drivers/usb/intel_ulpss/i2c_stub.c
>  create mode 100644 drivers/usb/intel_ulpss/i2c_stub.h
>  create mode 100644 drivers/usb/intel_ulpss/mng_stub.c
>  create mode 100644 drivers/usb/intel_ulpss/mng_stub.h
>  create mode 100644 drivers/usb/intel_ulpss/protocol_intel_ulpss.h
>  create mode 100644 drivers/usb/intel_ulpss/ulpss_bridge.c
>  create mode 100644 drivers/usb/intel_ulpss/ulpss_bridge.h
>  create mode 100644 drivers/usb/intel_ulpss/usb_stub.c
>  create mode 100644 drivers/usb/intel_ulpss/usb_stub.h
>  create mode 100644 include/media/ipu-isys.h
>  create mode 100644 include/uapi/linux/ipu-isys.h
>  create mode 100644 include/uapi/linux/ipu-psys.h
>