Message ID | 20220117151928.954829-1-vicamo.yang@canonical.com |
---|---|
Headers | show |
Series | Support Intel IPU6 MIPI camera on Alder Lake platforms | expand |
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@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@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team