[PATCH 00/13][SRU][OEM-5.13] Support MIPI camera through Intel IPU6

You-Sheng Yang vicamo.yang at canonical.com
Thu Jul 29 06:48:19 UTC 2021


BugLink: https://bugs.launchpad.net/bugs/1921345

[Impact]

To bring Intel IPU6(Imaging Processing Unit version 6) to oem-5.13.

[Fix]

This patchset took kernel patches that have been included in oem-5.10 and two
more to address changes in kernel version differences.

[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 a new video4linux device created under /dev.

[Where problems could occur]

The last patch contains addtional bits other than the need to address in
kernel mmap API changes. Not necessarily an issue, but at least that has not yet
received the same amount of verifications as oem-5.10 has.

[Other Info]

This SRU integrates fixes from several bugs for IPU6 previously for oem-5.10.
They are bug 1921345, 1926275, and 1929157.

Wang Yating (12):
  UBUNTU: SAUCE: intel ipu drivers first release
  UBUNTU: SAUCE: IPU driver release WW48
  UBUNTU: SAUCE: IPU driver release WW48 with MCU
  UBUNTU: SAUCE: IPU driver release WW52
  UBUNTU: SAUCE: IPU driver release WW04
  UBUNTU: SAUCE: IPU driver release WW14
  UBUNTU: SAUCE: Fix ov01a1s output mirror issue
  UBUNTU: SAUCE: integrate IPU6 builds
  UBUNTU: SAUCE: Fix ov01a1s IQ issues
  UBUNTU: SAUCE: intel/ipu6: Remove unnecessary video devices
  UBUNTU: SAUCE: change power control driver to acpi driver
  UBUNTU: SAUCE: IPU6 driver release for kernel 5.13

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

 debian.oem/config/config.common.ubuntu        |    5 +
 drivers/media/i2c/Kconfig                     |   41 +
 drivers/media/i2c/Makefile                    |    4 +
 drivers/media/i2c/hm11b1.c                    | 1366 +++++++++++++
 drivers/media/i2c/ov01a1s.c                   |  936 +++++++++
 drivers/media/i2c/power_ctrl_logic.c          |  147 ++
 drivers/media/i2c/power_ctrl_logic.h          |    9 +
 drivers/media/pci/Kconfig                     |    2 +-
 drivers/media/pci/intel/Kconfig               |   21 +
 drivers/media/pci/intel/Makefile              |   11 +-
 drivers/media/pci/intel/ipu-bus.c             |  256 +++
 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             |  406 ++++
 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         |  600 ++++++
 drivers/media/pci/intel/ipu-fw-isys.h         |  816 ++++++++
 drivers/media/pci/intel/ipu-fw-psys.c         |  430 ++++
 drivers/media/pci/intel/ipu-fw-psys.h         |  382 ++++
 .../media/pci/intel/ipu-isys-csi2-be-soc.c    |  341 ++++
 drivers/media/pci/intel/ipu-isys-csi2-be.h    |   63 +
 drivers/media/pci/intel/ipu-isys-csi2.c       |  631 ++++++
 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      | 1063 ++++++++++
 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-video.c      | 1748 +++++++++++++++++
 drivers/media/pci/intel/ipu-isys-video.h      |  178 ++
 drivers/media/pci/intel/ipu-isys.c            | 1383 +++++++++++++
 drivers/media/pci/intel/ipu-isys.h            |  228 +++
 drivers/media/pci/intel/ipu-mmu.c             |  860 ++++++++
 drivers/media/pci/intel/ipu-mmu.h             |   76 +
 drivers/media/pci/intel/ipu-pdata.h           |  242 +++
 drivers/media/pci/intel/ipu-psys-compat32.c   |  226 +++
 drivers/media/pci/intel/ipu-psys.c            | 1628 +++++++++++++++
 drivers/media/pci/intel/ipu-psys.h            |  218 ++
 drivers/media/pci/intel/ipu-trace.c           |  869 ++++++++
 drivers/media/pci/intel/ipu-trace.h           |  146 ++
 drivers/media/pci/intel/ipu.c                 |  821 ++++++++
 drivers/media/pci/intel/ipu.h                 |  108 +
 drivers/media/pci/intel/ipu6/Makefile         |   58 +
 .../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   |  103 +
 drivers/media/pci/intel/ipu6/ipu-platform.h   |   34 +
 drivers/media/pci/intel/ipu6/ipu-resources.c  |  863 ++++++++
 .../media/pci/intel/ipu6/ipu6-fw-resources.c  |  595 ++++++
 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      |  174 ++
 .../media/pci/intel/ipu6/ipu6-l-scheduler.c   |  615 ++++++
 .../pci/intel/ipu6/ipu6-platform-resources.h  |  196 ++
 drivers/media/pci/intel/ipu6/ipu6-ppg.c       |  561 ++++++
 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           |  333 ++++
 .../pci/intel/ipu6/ipu6ep-fw-resources.c      |  393 ++++
 .../intel/ipu6/ipu6ep-platform-resources.h    |   42 +
 .../pci/intel/ipu6/ipu6se-fw-resources.c      |  194 ++
 .../intel/ipu6/ipu6se-platform-resources.h    |  103 +
 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 ++
 95 files changed, 31032 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/power_ctrl_logic.c
 create mode 100644 drivers/media/i2c/power_ctrl_logic.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.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-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/ipu6ep-fw-resources.c
 create mode 100644 drivers/media/pci/intel/ipu6/ipu6ep-platform-resources.h
 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

-- 
2.31.1




More information about the kernel-team mailing list