APPLIED: [PULL v7][SRU][Jammy] Support Intel IPU6 MIPI camera on Alder Lake platforms

Kleber Souza kleber.sacilotto.de.souza at canonical.com
Thu May 26 16:06:20 UTC 2022


On 25.05.22 12:38, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1955383
> 
> [Impact]
> 
> To support Intel IPU6 MIPI camera on Alder Lake platforms.
> 
> [Fix]
> 
> Initial support for Intel IPU6 MIPI camera on Tiger Lake platforms has
> been addressed by bug 1921345 and 1939539. They are backported from
> https://github.com/intel/ipu6-drivers.
> 
> Further works to enable IPU6 camera on Alder Lake platforms depend on a
> few more fixes from same ipu6-drivers repository, as well as an extra
> https://github.com/intel/ivsc-driver for Intel Vision Sensing
> Controller(IVSC).
> 
> [Test Case]
> 
> This depends on an integral of enablement components inclusive of the
> kernel drivers that are being proposed, firmware, updates for the
> userspace camera hardware abstration layer library and a gstreamer
> element as what we have for Tiger Lake platforms.
> 
> Due to previous regression on another TGL-based SKU, reboot stress
> tests were also enrolled on following platforms/SKUs:
> 
>    * TGL/ov01a1s sensor, SKU 2
>    * TGL/ov01a1s sensor, SKU 3
>    * TGL/hm11b1 sensor
>    * Tributo
>    * AndrewsMLK
> 
> [Where problems could occur]
> 
> It's confirmed Intel IPU6 MIPI camera doesn't support suspend at
> streaming.
> 
> It's also a known issue that we don't have support on IPU6 TGL
> platforms as this initial kernel 5.15 porting. This is being worked
> on by the vendor.
> 
> [Other Info]
> 
> V7: Drop previous Acked-By, Signed-off-by from commit messages.
> 
> V6: Added additional commits for the stability issue that regressed in
>      Ubuntu-5.15.0-28.29 and reverted in Ubuntu-5.15.0-29.30.
> 
> V5: correct wrong branch/repo generated in previous rev
> 
> V4: drop obsoleted cflags manipulation and fix UBSAN warnings
> 
> V3: build only on amd64 and add config annotations
> 
> V2: no change rebase only.
> 
> ----------------------------------------------------------------
> 
> The following changes since commit b3e2cb756994b810c9486627ca5b889099cc54d8:
> 
>    UBUNTU: Ubuntu-5.15.0-34.35 (2022-05-20 14:58:09 +0200)
> 
> are available in the Git repository at:
> 
>    https://git.launchpad.net/~vicamo/+git/ubuntu-kernel bug-1955383/intel-ipu6/jammy-pull
> 
> for you to fetch changes up to 0c734bdda4be9caba4f5694398d3f0aada9bea09:
> 
>    UBUNTU: [Config] drop intel_ulpss in favor of by LJCA (2022-05-25 18:32:26 +0800)

Applied to jammy:linux.

Thanks,
Kleber

> 
> ----------------------------------------------------------------
> Hao Yao (5):
>        UBUNTU: SAUCE: IPU6 driver release for kernel 5.14 on 2021-11-01
>        UBUNTU: SAUCE: IPU6: 2022-03-11 alpha release for Andrews MLK
>        UBUNTU: SAUCE: IPU6: 2022-04-01 Andrews MLK PV release
>        UBUNTU: SAUCE: media: pci: intel: Avoid UBSAN warnings of index bound and shift
>        UBUNTU: SAUCE: intel_ulpss: Replaced by LJCA and remove
> 
> Ignacio Hernandez (1):
>        UBUNTU: SAUCE: Fix build error for kernel 5.15
> 
> Wang Yating (14):
>        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
>        UBUNTU: SAUCE: sensor HM11b1 brightness bugfix
>        UBUNTU: SAUCE: Fix build error on Kernel 5.13
> 
> Wentong Wu (5):
>        UBUNTU: SAUCE: intel visual sensing controller(VSC) driver first release
>        UBUNTU: SAUCE: ivsc: return error when device not ready
>        UBUNTU: SAUCE: ivsc: add soft dependencies for intel_vsc module
>        UBUNTU: SAUCE: ivsc: add delay for acquire camera to wait firmware ready
>        UBUNTU: SAUCE: mei: cleanup header file including
> 
> Ye Xiang (13):
>        UBUNTU: SAUCE: ljca: switch wait event to uninterruptible
>        UBUNTU: SAUCE: mei-vsc: switch wait event to uninterruptible
>        UBUNTU: SAUCE: mei_vsc: add ACPI HID for ADL
>        UBUNTU: SAUCE: ljca: add multi ACPI HID support
>        UBUNTU: SAUCE: mei_vsc: distinguish platform with different camera sensor
>        UBUNTU: SAUCE: i2c-ljca: fix a potential issue
>        UBUNTU: SAUCE: ljca: disable autosuspend by default
>        UBUNTU: SAUCE: spi: ljca: return when a sub-transaction first failed
>        UBUNTU: SACUE: ljca: disable parallelly stub write
>        UBUNTU: SAUCE: ljca: fix race condition issue in runtime PM
>        UBUNTU: SAUCE: i2c-ljca: fix a null pointer access issue on tgl
>        UBUNTU: SAUCE: ljca: fix a typo issue
>        UBUNTU: SAUCE: ljca: assume stub enum failed as a warning
> 
> You-Sheng Yang (6):
>        UBUNTU: [Config] updateconfigs for IPU6 driver
>        UBUNTU: [Config] IPU6: enable OV01A10 sensor
>        UBUNTU: [Config] ivsc: enable Intel VSC drivers
>        UBUNTU: [Config] make Intel IPU6 modules amd64 only
>        UBUNTU: SAUCE: IPU6: drop unnecessary cflags manipulation
>        UBUNTU: [Config] IPU6: enable OV02C10 sensor
> 
> You-Sheng Yang (vicamo) (1):
>        UBUNTU: [Config] drop intel_ulpss in favor of by LJCA
> 
>   debian.master/config/amd64/config.common.amd64     |    8 +
>   debian.master/config/annotations                   |   16 +
>   debian.master/config/arm64/config.common.arm64     |    8 +
>   debian.master/config/armhf/config.common.armhf     |    4 +
>   debian.master/config/config.common.ubuntu          |    8 +
>   debian.master/config/ppc64el/config.common.ppc64el |    4 +
>   debian.master/config/s390x/config.common.s390x     |    3 +
>   drivers/gpio/Kconfig                               |   11 +
>   drivers/gpio/Makefile                              |    1 +
>   drivers/gpio/gpio-ljca.c                           |  468 ++++++
>   drivers/i2c/busses/Kconfig                         |   10 +
>   drivers/i2c/busses/Makefile                        |    1 +
>   drivers/i2c/busses/i2c-ljca.c                      |  422 +++++
>   drivers/media/i2c/Kconfig                          |   69 +
>   drivers/media/i2c/Makefile                         |    6 +
>   drivers/media/i2c/hm11b1.c                         | 1102 ++++++++++++
>   drivers/media/i2c/ov01a10.c                        |  948 +++++++++++
>   drivers/media/i2c/ov01a1s.c                        |  937 +++++++++++
>   drivers/media/i2c/ov02c10.c                        | 1044 ++++++++++++
>   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                    |   20 +
>   drivers/media/pci/intel/Makefile                   |    3 +-
>   drivers/media/pci/intel/ipu-bus.c                  |  254 +++
>   drivers/media/pci/intel/ipu-bus.h                  |   67 +
>   drivers/media/pci/intel/ipu-buttress.c             | 1396 ++++++++++++++++
>   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 +++++
>   drivers/media/pci/intel/ipu-isys-csi2-be-soc.c     |  341 ++++
>   drivers/media/pci/intel/ipu-isys-csi2-be.c         |  325 ++++
>   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          |  650 ++++++++
>   drivers/media/pci/intel/ipu-isys-subdev.h          |  152 ++
>   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           | 1748 ++++++++++++++++++++
>   drivers/media/pci/intel/ipu-isys-video.h           |  178 ++
>   drivers/media/pci/intel/ipu-isys.c                 | 1356 +++++++++++++++
>   drivers/media/pci/intel/ipu-isys.h                 |  227 +++
>   drivers/media/pci/intel/ipu-mmu.c                  |  858 ++++++++++
>   drivers/media/pci/intel/ipu-mmu.h                  |   76 +
>   drivers/media/pci/intel/ipu-pdata.h                |  242 +++
>   drivers/media/pci/intel/ipu-psys-compat32.c        |  225 +++
>   drivers/media/pci/intel/ipu-psys.c                 | 1619 ++++++++++++++++++
>   drivers/media/pci/intel/ipu-psys.h                 |  217 +++
>   drivers/media/pci/intel/ipu-trace.c                |  869 ++++++++++
>   drivers/media/pci/intel/ipu-trace.h                |  146 ++
>   drivers/media/pci/intel/ipu.c                      |  831 ++++++++++
>   drivers/media/pci/intel/ipu.h                      |  111 ++
>   drivers/media/pci/intel/ipu6/Makefile              |   58 +
>   drivers/media/pci/intel/ipu6/ipu-fw-resources.c    |  103 ++
>   .../pci/intel/ipu6/ipu-platform-buttress-regs.h    |  318 ++++
>   .../pci/intel/ipu6/ipu-platform-isys-csi2-reg.h    |  277 ++++
>   drivers/media/pci/intel/ipu6/ipu-platform-isys.h   |   26 +
>   drivers/media/pci/intel/ipu6/ipu-platform-psys.h   |   78 +
>   drivers/media/pci/intel/ipu6/ipu-platform-regs.h   |  333 ++++
>   .../media/pci/intel/ipu6/ipu-platform-resources.h  |  103 ++
>   drivers/media/pci/intel/ipu6/ipu-platform.h        |   35 +
>   drivers/media/pci/intel/ipu6/ipu-resources.c       |  860 ++++++++++
>   drivers/media/pci/intel/ipu6/ipu6-fw-resources.c   |  608 +++++++
>   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       |  203 +++
>   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 ++
>   drivers/media/pci/intel/ipu6/ipu6-l-scheduler.c    |  615 +++++++
>   .../media/pci/intel/ipu6/ipu6-platform-resources.h |  196 +++
>   drivers/media/pci/intel/ipu6/ipu6-ppg.c            |  560 +++++++
>   drivers/media/pci/intel/ipu6/ipu6-ppg.h            |   38 +
>   drivers/media/pci/intel/ipu6/ipu6-psys-gpc.c       |  210 +++
>   drivers/media/pci/intel/ipu6/ipu6-psys.c           | 1032 ++++++++++++
>   drivers/media/pci/intel/ipu6/ipu6.c                |  333 ++++
>   drivers/media/pci/intel/ipu6/ipu6ep-fw-resources.c |  393 +++++
>   .../pci/intel/ipu6/ipu6ep-platform-resources.h     |   42 +
>   drivers/media/pci/intel/ipu6/ipu6se-fw-resources.c |  194 +++
>   .../pci/intel/ipu6/ipu6se-platform-resources.h     |  103 ++
>   drivers/mfd/Kconfig                                |   10 +
>   drivers/mfd/Makefile                               |    2 +
>   drivers/mfd/ljca.c                                 | 1187 +++++++++++++
>   drivers/misc/Kconfig                               |    1 +
>   drivers/misc/Makefile                              |    1 +
>   drivers/misc/ivsc/Kconfig                          |   40 +
>   drivers/misc/ivsc/Makefile                         |    9 +
>   drivers/misc/ivsc/intel_vsc.c                      |  250 +++
>   drivers/misc/ivsc/intel_vsc.h                      |  177 ++
>   drivers/misc/ivsc/mei_ace.c                        |  589 +++++++
>   drivers/misc/ivsc/mei_ace_debug.c                  |  696 ++++++++
>   drivers/misc/ivsc/mei_csi.c                        |  456 +++++
>   drivers/misc/ivsc/mei_pse.c                        |  944 +++++++++++
>   drivers/misc/mei/Kconfig                           |    7 +
>   drivers/misc/mei/Makefile                          |    4 +
>   drivers/misc/mei/hw-vsc.c                          | 1634 ++++++++++++++++++
>   drivers/misc/mei/hw-vsc.h                          |  377 +++++
>   drivers/misc/mei/spi-vsc.c                         |  291 ++++
>   drivers/spi/Kconfig                                |   10 +
>   drivers/spi/Makefile                               |    1 +
>   drivers/spi/spi-ljca.c                             |  331 ++++
>   include/linux/mfd/ljca.h                           |   47 +
>   include/linux/vsc.h                                |   83 +
>   include/media/ipu-isys.h                           |   44 +
>   include/uapi/linux/ipu-isys.h                      |   15 +
>   include/uapi/linux/ipu-psys.h                      |  121 ++
>   118 files changed, 39088 insertions(+), 2 deletions(-)
>   create mode 100644 drivers/gpio/gpio-ljca.c
>   create mode 100644 drivers/i2c/busses/i2c-ljca.c
>   create mode 100644 drivers/media/i2c/hm11b1.c
>   create mode 100644 drivers/media/i2c/ov01a10.c
>   create mode 100644 drivers/media/i2c/ov01a1s.c
>   create mode 100644 drivers/media/i2c/ov02c10.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.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/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/mfd/ljca.c
>   create mode 100644 drivers/misc/ivsc/Kconfig
>   create mode 100644 drivers/misc/ivsc/Makefile
>   create mode 100644 drivers/misc/ivsc/intel_vsc.c
>   create mode 100644 drivers/misc/ivsc/intel_vsc.h
>   create mode 100644 drivers/misc/ivsc/mei_ace.c
>   create mode 100644 drivers/misc/ivsc/mei_ace_debug.c
>   create mode 100644 drivers/misc/ivsc/mei_csi.c
>   create mode 100644 drivers/misc/ivsc/mei_pse.c
>   create mode 100644 drivers/misc/mei/hw-vsc.c
>   create mode 100644 drivers/misc/mei/hw-vsc.h
>   create mode 100644 drivers/misc/mei/spi-vsc.c
>   create mode 100644 drivers/spi/spi-ljca.c
>   create mode 100644 include/linux/mfd/ljca.h
>   create mode 100644 include/linux/vsc.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
> 



More information about the kernel-team mailing list