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