Missing MIPI IPU6 camera driver for Intel Alder Lake laptops
From: Paul Menzel
Date: Thu Aug 11 2022 - 04:23:37 EST
[Cc: folks from IPU6 external driver, IPU3 maintainers, Dell, Lenovo,
Chromium, Canonical/Ubuntu, Red Hat]
Dear Greg,
I am writing you, because I remember you – at least – were active
several years ago in getting good upstream driver support into the Linux
kernel.
It looks like the driver for the MIPI IPU6 camera of Intel Alder Lake
based laptops, for example, Lenovo ThinkPad X1 Carbon and Dell XPS 13
9315/9320, is not in the upstream Linux kernel.
With Ubuntu’s OEM image pre-installed by Dell, and on Google Chromebooks
the camera is supposedly working [1]. There is a GitHub project with a
repository for the Linux kernel patches [2], but the patches – as
expected, and known from other external drivers, and Android drivers –
do not build against all Linux kernel versions [3]. A request to
upstream the drivers was opened at the end of March [4], and got the
reply below in July:
Intel is not ready yet to provide technical support to various Linux
distro and all OEM devices at this moment with Intel IPU6 github.
Intel is supporting Dell laptop and their MIPI camera functionality
on Ubuntu with release/integration support from Canonical. If you are
using Dell devices, please refer to the devices listed in this link.
(https://wiki.ubuntu.com/Dell) You can learn the latest updates from
the installation guide.
The patches were integrated into ChromiumOS’ Linux kernel tree – for
specific version, like 5.15 [5], and the same for Ubuntu 22.04 with
Linux 5.15 – only in June [6]. A lot of that (redundant) work seems to
be done by the Intel developers involved also in the GitHub project.
In the last seven or so years Linux upstream driver support worked well
for me – especially with Intel hardware –, so I wanted to make you (and
others) aware of the situation, and hope, that you could do something
about the situation. With the current situation I can only recommend to
FLOSS users to *not* buy these devices.
Kind regards,
Paul
PS: The proprietary firmware is also not in the linux-firmware
repository [7], and the user space packages [8] are also not packaged
yet for some distributions like Debian.
PPS: VA-API support also does not work [9].
[1]: https://ubuntu.com/certified/202203-30070
[2]: https://github.com/intel/ipu6-drivers
[3]: https://github.com/intel/ipu6-drivers/issues/13
[4]: https://github.com/intel/ipu6-drivers/issues/22
[5]:
https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3034663
[6]:
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy/log/drivers/media/pci/intel
[7]: https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1955383
[8]:
https://launchpad.net/~oem-solutions-group/+archive/ubuntu/intel-ipu6/+packages
[9]: https://github.com/intel/media-driver/issues/1371$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Device [8086:4602] (rev 06)
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-UP4 GT2 [Iris Xe Graphics] [8086:46aa] (rev 0c)
00:04.0 Signal processing controller [1180]: Intel Corporation Alder Lake Innovation Platform Framework Processor Participant [8086:461d] (rev 06)
00:05.0 Multimedia controller [0480]: Intel Corporation Device [8086:465d] (rev 06)
00:06.0 PCI bridge [0604]: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 [8086:464d] (rev 06)
00:07.0 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #0 [8086:466e] (rev 06)
00:07.1 PCI bridge [0604]: Intel Corporation Alder Lake-P Thunderbolt 4 PCI Express Root Port #1 [8086:463f] (rev 06)
00:08.0 System peripheral [0880]: Intel Corporation 12th Gen Core Processor Gaussian & Neural Accelerator [8086:464f] (rev 06)
00:0d.0 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 USB Controller [8086:461e] (rev 06)
00:0d.2 USB controller [0c03]: Intel Corporation Alder Lake-P Thunderbolt 4 NHI #0 [8086:463e] (rev 06)
00:12.0 Serial controller [0700]: Intel Corporation Device [8086:51fc] (rev 01)
00:14.0 USB controller [0c03]: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller [8086:51ed] (rev 01)
00:14.2 RAM memory [0500]: Intel Corporation Alder Lake PCH Shared SRAM [8086:51ef] (rev 01)
00:14.3 Network controller [0280]: Intel Corporation Alder Lake-P PCH CNVi WiFi [8086:51f0] (rev 01)
00:15.0 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 [8086:51e8] (rev 01)
00:15.1 Serial bus controller [0c80]: Intel Corporation Alder Lake PCH Serial IO I2C Controller #1 [8086:51e9] (rev 01)
00:16.0 Communication controller [0780]: Intel Corporation Alder Lake PCH HECI Controller [8086:51e0] (rev 01)
00:1e.0 Communication controller [0780]: Intel Corporation Alder Lake PCH UART #0 [8086:51a8] (rev 01)
00:1e.2 Serial bus controller [0c80]: Intel Corporation Device [8086:51aa] (rev 01)
00:1e.3 Serial bus controller [0c80]: Intel Corporation Device [8086:51ab] (rev 01)
00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:5187] (rev 01)
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Device [8086:51cc] (rev 01)
00:1f.4 SMBus [0c05]: Intel Corporation Alder Lake PCH-P SMBus Host Controller [8086:51a3] (rev 01)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Alder Lake-P PCH SPI Controller [8086:51a4] (rev 01)
01:00.0 Non-Volatile memory controller [0108]: Phison Electronics Corporation Device [1987:5019] (rev 01)