NACK: [PATCH 00/30][SRU][Jammy] Support Intel IPU6 MIPI camera on Alder Lake platforms

You-Sheng Yang vicamo.yang at canonical.com
Fri Mar 11 07:55:40 UTC 2022


Replaced by no change rebase in
https://lists.ubuntu.com/archives/kernel-team/2022-March/128576.html

On Mon, Jan 17, 2022 at 11:20 PM You-Sheng Yang
<vicamo.yang at canonical.com> 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.
>
> [Where problems could occur]
>
> It's confirmed Intel IPU6 MIPI camera doesn't support suspend at
> streaming.
>
> On Jammy, while intel_iommu is turned on in bug 1951440, it breaks
> current IPU6 driver implementation and can be worked-around with
> intel_iommu=off temporarily. A follow-up bug 1958004 has been filed.
>
> Besides, since UBSAN is also on since Ubuntu 5.15 kernels, multiple
> warnings have been detected and filed as bug 1958006. No function
> impact observed so far.
>
> [Other Info]
>
> Before this, we did not submit IPU6 driver for generic kernel due to
> the lack of a solid commitment from the vendor to upstream this
> before kernel camera API is out. There is still no such commitment,
> but during the process we've been able to address version migration
> issues and we would continue to do so. We're getting to have the
> confidence that it's possible to maintain and share the support for
> generic Ubuntu users.
>
> Fixes for oem-5.14 have been merged, so here we nominate for Jammy
> only. This patchset is almost identical to that for oem-5.14 except
> one additioanl fix for 5.15 kernel API change in "UBUNTU: SAUCE: Fix
> build error for kernel 5.15".
>
> Hao Yao (1):
>   UBUNTU: SAUCE: IPU6 driver release for kernel 5.14 on 2021-11-01
>
> 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 (4):
>   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
>
> Ye Xiang (7):
>   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
>
> You-Sheng Yang (3):
>   UBUNTU: [Config] updateconfigs for IPU6 driver
>   UBUNTU: [Config] IPU6: enable OV01A10 sensor
>   UBUNTU: [Config] ivsc: enable Intel VSC drivers
>
>  .../config/amd64/config.common.amd64          |    6 +
>  .../config/arm64/config.common.arm64          |    6 +
>  .../config/armhf/config.common.armhf          |    5 +
>  debian.master/config/config.common.ubuntu     |   10 +
>  .../config/ppc64el/config.common.ppc64el      |    5 +
>  .../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                     |   55 +
>  drivers/media/i2c/Makefile                    |    5 +
>  drivers/media/i2c/hm11b1.c                    | 1102 +++++++++++
>  drivers/media/i2c/ov01a10.c                   |  934 +++++++++
>  drivers/media/i2c/ov01a1s.c                   |  949 +++++++++
>  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              |   11 +-
>  drivers/media/pci/intel/ipu-bus.c             |  254 +++
>  drivers/media/pci/intel/ipu-bus.h             |   67 +
>  drivers/media/pci/intel/ipu-buttress.c        | 1372 +++++++++++++
>  drivers/media/pci/intel/ipu-buttress.h        |  128 ++
>  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.c    |  325 +++
>  drivers/media/pci/intel/ipu-isys-csi2-be.h    |   63 +
>  drivers/media/pci/intel/ipu-isys-csi2.c       |  655 ++++++
>  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            | 1355 +++++++++++++
>  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            | 1618 +++++++++++++++
>  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                 |  823 ++++++++
>  drivers/media/pci/intel/ipu.h                 |  109 +
>  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  |  851 ++++++++
>  .../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 ++
>  .../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       |  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 ++++
>  .../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/mfd/Kconfig                           |   10 +
>  drivers/mfd/Makefile                          |    2 +
>  drivers/mfd/ljca.c                            | 1191 +++++++++++
>  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                     | 1637 +++++++++++++++
>  drivers/misc/mei/hw-vsc.h                     |  378 ++++
>  drivers/misc/mei/spi-vsc.c                    |  293 +++
>  drivers/spi/Kconfig                           |   10 +
>  drivers/spi/Makefile                          |    1 +
>  drivers/spi/spi-ljca.c                        |  328 ++++
>  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/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 ++
>  133 files changed, 40479 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/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 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/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
>
> --
> 2.33.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team



-- 
Regards,
You-Sheng Yang



More information about the kernel-team mailing list