ACK/cmnt: [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 15:59:27 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)

This PR has patches using 3 different bug reports:

     BugLink: https://bugs.launchpad.net/bugs/1955383
     BugLink: https://bugs.launchpad.net/bugs/1958006
     BugLink: https://bugs.launchpad.net/bugs/1964983

Ideally the fixes for each of the bug reports should have been sent sepratedly,
or at least all bug reports mentioned in the cover letter.

Given we are passed the deadline to get these patches applied:

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>

Thanks


> 
> ----------------------------------------------------------------
> 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