[intel-ipu6-kmod] Update to latest upstream
by jwrdegoede
commit 587672e01bb470189c51c0bba95600572fe6d07d
Author: Hans de Goede <hdegoede(a)redhat.com>
Date: Sat Feb 1 14:45:54 2025 +0100
Update to latest upstream
Drop iVSC drivers, these are part of the mainline kernel now
Integrate USBIO drivers for IO chip used on Meteor Lake models
Now only builds psys and always uses isys from mainline
Fix building against 6.13 kernels
Update to latest upstream
Drop iVSC drivers, these are part of the mainline kernel now
Integrate USBIO drivers for IO chip used on Meteor Lake models
Now only builds psys and always uses isys from mainline
Fix building against 6.13 kernels
Update to latest upstream
Drop iVSC drivers, these are part of the mainline kernel now
Integrate USBIO drivers for IO chip used on Meteor Lake models
Now only builds psys and always uses isys from mainline
Fix building against 6.13 kernels
.gitignore | 2 +
...itch-sensor-driver-symbols-from-CONFIG_VI.patch | 88 +++
...-enable-gc5035-compilation-with-kernels-6.patch | 25 +-
...ia-ipu6-Fix-compilation-with-kernels-6.10.patch | 85 ---
...-not-build-hi556-driver-with-kernels-6.10.patch | 54 ++
...efix-ipu6-modules-with-icamera-instead-of.patch | 84 ---
...-not-build-ov01a10-driver-with-kernels-6..patch | 51 ++
...ia-ipu6-Fix-compilation-with-kernels-6.11.patch | 32 -
...Fix-compilation-with-kernels-6.12-move-as.patch | 269 -------
0005-media-ipu6-Fix-out-of-tree-builds.patch | 28 +
...-media-ipu6-Fix-building-with-kernel-6.13.patch | 53 ++
...Fix-compilation-with-kernels-6.12-Finally.patch | 53 --
...-v6.10-IPU6-headers-used-by-PSYS.patch-fo.patch | 49 ++
...djust-DMA-code-for-ipu6-bus-DMA-changes-i.patch | 306 ++++++++
...a.h-to-0001-v6.10-IPU6-headers-used-by-PS.patch | 84 +++
...-usbio-Fix-GPIO-and-I2C-driver-modaliases.patch | 38 +
0011-usbio-Fix-I2C-max-transfer-size.patch | 115 +++
...Use-MAX_PAYLOAD_BSIZE-in-usbio_bulk_write.patch | 30 +
...l-mod-integrate-usbio-drivers-within-ipu6.patch | 38 +
...just-which-modules-to-build-for-which-ker.patch | 773 ---------------------
intel-ipu6-kmod.spec | 79 ++-
sources | 4 +-
22 files changed, 1000 insertions(+), 1340 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index b3fe129..a8d5f77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@
/ivsc-driver-a6dccbb.tar.gz
/ipu6-drivers-404740a.tar.gz
/ipu6-drivers-aecec2a.tar.gz
+/ipu6-drivers-13c466e.tar.gz
+/usbio-drivers-450939f.tar.gz
diff --git a/0001-Makefile-Switch-sensor-driver-symbols-from-CONFIG_VI.patch b/0001-Makefile-Switch-sensor-driver-symbols-from-CONFIG_VI.patch
new file mode 100644
index 0000000..4e768ef
--- /dev/null
+++ b/0001-Makefile-Switch-sensor-driver-symbols-from-CONFIG_VI.patch
@@ -0,0 +1,88 @@
+From c451aa3f50f8a5ef26d9a36f159c3f9fb8e6ef11 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Mon, 10 Jun 2024 13:05:53 +0200
+Subject: [PATCH 1/9] Makefile: Switch sensor driver symbols from
+ CONFIG_VIDEO_FOO to CONFIG_ICAMERA_FOO
+
+Switch the Kconfig symbols for sensor drivers from CONFIG_VIDEO_FOO to
+CONFIG_ICAMERA_FOO to avoid these still being set when they should not
+because of the CONFIG_VIDEO_FOO symbols inherited from the base kernel.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ Makefile | 22 +++++++++++-----------
+ drivers/media/i2c/Makefile | 22 +++++++++++-----------
+ 2 files changed, 22 insertions(+), 22 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 49b27300a..356f5e7f3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -81,22 +81,22 @@ else
+ obj-y += drivers/media/pci/intel/ipu6/psys/
+ endif
+
+-export CONFIG_VIDEO_HM11B1 = m
+-export CONFIG_VIDEO_OV01A1S = m
+-export CONFIG_VIDEO_OV01A10 = m
+-export CONFIG_VIDEO_OV02C10 = m
+-export CONFIG_VIDEO_OV02E10 = m
+-export CONFIG_VIDEO_HM2170 = m
+-export CONFIG_VIDEO_HM2172 = m
+-export CONFIG_VIDEO_HI556 = m
++export CONFIG_ICAMERA_HM11B1 = m
++export CONFIG_ICAMERA_OV01A1S = m
++export CONFIG_ICAMERA_OV01A10 = m
++export CONFIG_ICAMERA_OV02C10 = m
++export CONFIG_ICAMERA_OV02E10 = m
++export CONFIG_ICAMERA_HM2170 = m
++export CONFIG_ICAMERA_HM2172 = m
++export CONFIG_ICAMERA_HI556 = m
+
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV2740)),true)
+-export CONFIG_VIDEO_OV2740 = m
+-export CONFIG_VIDEO_GC5035 = m
++export CONFIG_ICAMERA_OV2740 = m
++export CONFIG_ICAMERA_GC5035 = m
+ endif
+
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV05C10)),false)
+-export CONFIG_VIDEO_OV05C10 = m
++export CONFIG_ICAMERA_OV05C10 = m
+ endif
+
+ obj-y += drivers/media/i2c/
+diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile
+index b4fa25598..2bcc878e7 100644
+--- a/drivers/media/i2c/Makefile
++++ b/drivers/media/i2c/Makefile
+@@ -1,15 +1,15 @@
+ # SPDX-License-Identifier: GPL-2.0
+ # Copyright (c) 2021 Intel Corporation.
+
+-obj-$(CONFIG_VIDEO_HM11B1) += hm11b1.o
+-obj-$(CONFIG_VIDEO_GC5035) += gc5035.o
+-obj-$(CONFIG_VIDEO_OV01A1S) += ov01a1s.o
+-obj-$(CONFIG_VIDEO_OV01A10) += ov01a10.o
+-obj-$(CONFIG_VIDEO_OV02C10) += ov02c10.o
+-obj-$(CONFIG_VIDEO_OV02E10) += ov02e10.o
+-obj-$(CONFIG_VIDEO_OV05C10) += ov05c10.o
+-obj-$(CONFIG_VIDEO_OV2740) += ov2740.o
+-obj-$(CONFIG_VIDEO_HM2170) += hm2170.o
+-obj-$(CONFIG_VIDEO_HM2170) += hm2172.o
+-obj-$(CONFIG_VIDEO_HI556) += hi556.o
++obj-$(CONFIG_ICAMERA_HM11B1) += hm11b1.o
++obj-$(CONFIG_ICAMERA_GC5035) += gc5035.o
++obj-$(CONFIG_ICAMERA_OV01A1S) += ov01a1s.o
++obj-$(CONFIG_ICAMERA_OV01A10) += ov01a10.o
++obj-$(CONFIG_ICAMERA_OV02C10) += ov02c10.o
++obj-$(CONFIG_ICAMERA_OV02E10) += ov02e10.o
++obj-$(CONFIG_ICAMERA_OV05C10) += ov05c10.o
++obj-$(CONFIG_ICAMERA_OV2740) += ov2740.o
++obj-$(CONFIG_ICAMERA_HM2170) += hm2170.o
++obj-$(CONFIG_ICAMERA_HM2170) += hm2172.o
++obj-$(CONFIG_ICAMERA_HI556) += hi556.o
+ obj-$(CONFIG_POWER_CTRL_LOGIC) += power_ctrl_logic.o
+--
+2.48.1
+
diff --git a/0001-gc5035-Fix-compilation-with-kernels-6.8.patch b/0002-Makefile-Re-enable-gc5035-compilation-with-kernels-6.patch
similarity index 84%
rename from 0001-gc5035-Fix-compilation-with-kernels-6.8.patch
rename to 0002-Makefile-Re-enable-gc5035-compilation-with-kernels-6.patch
index 20faa71..d8bb788 100644
--- a/0001-gc5035-Fix-compilation-with-kernels-6.8.patch
+++ b/0002-Makefile-Re-enable-gc5035-compilation-with-kernels-6.patch
@@ -1,7 +1,8 @@
-From 1e0c448f48540e08f621b324627feca927eb75fe Mon Sep 17 00:00:00 2001
+From b839b8153bd364c22811496c1753145fa475bcc8 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede(a)redhat.com>
Date: Mon, 10 Jun 2024 13:41:16 +0200
-Subject: [PATCH 1/6] gc5035: Fix compilation with kernels >= 6.8
+Subject: [PATCH 2/9] Makefile: Re-enable gc5035 compilation with kernels >=
+ 6.8
For some reason the gc5035 driver has been disabled for kernels >= 6.8,
but it is not upstream yet.
@@ -15,21 +16,21 @@ Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 6286beade..4734c4497 100644
+index 356f5e7f3..58bc10aed 100644
--- a/Makefile
+++ b/Makefile
-@@ -83,10 +83,10 @@ export CONFIG_VIDEO_OV02E10 = m
- export CONFIG_VIDEO_HM2170 = m
- export CONFIG_VIDEO_HM2172 = m
- export CONFIG_VIDEO_HI556 = m
-+export CONFIG_VIDEO_GC5035 = m
+@@ -89,10 +89,10 @@ export CONFIG_ICAMERA_OV02E10 = m
+ export CONFIG_ICAMERA_HM2170 = m
+ export CONFIG_ICAMERA_HM2172 = m
+ export CONFIG_ICAMERA_HI556 = m
++export CONFIG_ICAMERA_GC5035 = m
ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV2740)),true)
- export CONFIG_VIDEO_OV2740 = m
--export CONFIG_VIDEO_GC5035 = m
+ export CONFIG_ICAMERA_OV2740 = m
+-export CONFIG_ICAMERA_GC5035 = m
endif
- obj-y += drivers/media/i2c/
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV05C10)),false)
diff --git a/drivers/media/i2c/gc5035.c b/drivers/media/i2c/gc5035.c
index 16bbd4845..e825dfa7d 100644
--- a/drivers/media/i2c/gc5035.c
@@ -92,5 +93,5 @@ index 16bbd4845..e825dfa7d 100644
if (ret) {
dev_err_probe(dev, ret, "Failed to initialize controls\n");
--
-2.47.0
+2.48.1
diff --git a/0003-Makefile-Do-not-build-hi556-driver-with-kernels-6.10.patch b/0003-Makefile-Do-not-build-hi556-driver-with-kernels-6.10.patch
new file mode 100644
index 0000000..923f266
--- /dev/null
+++ b/0003-Makefile-Do-not-build-hi556-driver-with-kernels-6.10.patch
@@ -0,0 +1,54 @@
+From 580d73c387405534bdef7911e0616ad66953f7ce Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Mon, 13 Jan 2025 13:11:00 +0100
+Subject: [PATCH 3/9] Makefile: Do not build hi556 driver with kernels >= 6.10
+
+The mainline kernel hi556 driver has ACPI enumeration, GPIO and clk support
+since kernel 6.10, so it can be used instead of the out of tree driver.
+
+Add a new KV_HI556 variable and stop building the hi556 driver on
+kernels >= 6.10.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ Makefile | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 58bc10aed..472fdec22 100644
+--- a/Makefile
++++ b/Makefile
+@@ -24,6 +24,7 @@ KV_IVSC := 6.6.0
+ KV_IPU_BRIDGE := 6.6.0
+ KV_OV2740 := 6.8.0
+ KV_OV05C10 := 6.8.0
++KV_HI556 := 6.10
+ KV_IPU6_ISYS := 6.10.0
+
+ KERNEL_SRC ?= /lib/modules/$(KERNELRELEASE)/build
+@@ -88,17 +89,21 @@ export CONFIG_ICAMERA_OV02C10 = m
+ export CONFIG_ICAMERA_OV02E10 = m
+ export CONFIG_ICAMERA_HM2170 = m
+ export CONFIG_ICAMERA_HM2172 = m
+-export CONFIG_ICAMERA_HI556 = m
+ export CONFIG_ICAMERA_GC5035 = m
+
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV2740)),true)
+ export CONFIG_ICAMERA_OV2740 = m
+ endif
+
++# Note OV05C10 check is reversed, it is not build on too old kernels
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV05C10)),false)
+ export CONFIG_ICAMERA_OV05C10 = m
+ endif
+
++ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_HI556)),true)
++export CONFIG_ICAMERA_HI556 = m
++endif
++
+ obj-y += drivers/media/i2c/
+
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_IVSC)),true)
+--
+2.48.1
+
diff --git a/0004-Makefile-Do-not-build-ov01a10-driver-with-kernels-6..patch b/0004-Makefile-Do-not-build-ov01a10-driver-with-kernels-6..patch
new file mode 100644
index 0000000..73f37ea
--- /dev/null
+++ b/0004-Makefile-Do-not-build-ov01a10-driver-with-kernels-6..patch
@@ -0,0 +1,51 @@
+From 14d41bf82770fcab65dcf3b2eec3f95b7a963aff Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Mon, 13 Jan 2025 13:15:15 +0100
+Subject: [PATCH 4/9] Makefile: Do not build ov01a10 driver with kernels >= 6.8
+
+Since commit 47a78052db51 ("media: ov01a10: Enable runtime PM before
+registering async sub-device") the mainline ov01a10 driver is fully
+usable and it can be used instead of the out of tree driver.
+
+Add a new KV_OV01A10 variable and stop building the ov01a10 driver on
+kernels >= 6.8.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ Makefile | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 472fdec22..7ae3be835 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,6 +23,7 @@ version_lt = $(shell \
+ KV_IVSC := 6.6.0
+ KV_IPU_BRIDGE := 6.6.0
+ KV_OV2740 := 6.8.0
++KV_OV01A10 := 6.8.0
+ KV_OV05C10 := 6.8.0
+ KV_HI556 := 6.10
+ KV_IPU6_ISYS := 6.10.0
+@@ -84,7 +85,6 @@ endif
+
+ export CONFIG_ICAMERA_HM11B1 = m
+ export CONFIG_ICAMERA_OV01A1S = m
+-export CONFIG_ICAMERA_OV01A10 = m
+ export CONFIG_ICAMERA_OV02C10 = m
+ export CONFIG_ICAMERA_OV02E10 = m
+ export CONFIG_ICAMERA_HM2170 = m
+@@ -95,6 +95,10 @@ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV2740)),true)
+ export CONFIG_ICAMERA_OV2740 = m
+ endif
+
++ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV01A10)),true)
++export CONFIG_ICAMERA_OV01A10 = m
++endif
++
+ # Note OV05C10 check is reversed, it is not build on too old kernels
+ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_OV05C10)),false)
+ export CONFIG_ICAMERA_OV05C10 = m
+--
+2.48.1
+
diff --git a/0005-media-ipu6-Fix-out-of-tree-builds.patch b/0005-media-ipu6-Fix-out-of-tree-builds.patch
new file mode 100644
index 0000000..52b0d88
--- /dev/null
+++ b/0005-media-ipu6-Fix-out-of-tree-builds.patch
@@ -0,0 +1,28 @@
+From 7ce00bf77d1b92981f471a26fa2d92c96d14e51c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Tue, 14 Jan 2025 23:07:35 +0100
+Subject: [PATCH 5/9] media: ipu6: Fix out of tree builds
+
+Fix out of tree builds not finding the ipu6*.h files.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ drivers/media/pci/intel/ipu6/psys/Makefile | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/media/pci/intel/ipu6/psys/Makefile b/drivers/media/pci/intel/ipu6/psys/Makefile
+index fa638fcdf..9a3aa6e78 100644
+--- a/drivers/media/pci/intel/ipu6/psys/Makefile
++++ b/drivers/media/pci/intel/ipu6/psys/Makefile
+@@ -23,6 +23,8 @@ obj-$(CONFIG_VIDEO_INTEL_IPU6) += intel-ipu6-psys.o
+
+ ifeq ($(is_kernel_lt_6_10), 1)
+ ccflags-y += -I$(src)/../ipu6/
++else
++ccflags-y += -I/lib/modules/$(KERNELRELEASE)/build/drivers/media/pci/intel/ipu6/
+ endif
+ ccflags-y += -I$(src)/../
+ ccflags-y += -I$(src)/../../
+--
+2.48.1
+
diff --git a/0006-media-ipu6-Fix-building-with-kernel-6.13.patch b/0006-media-ipu6-Fix-building-with-kernel-6.13.patch
new file mode 100644
index 0000000..a4b0ddb
--- /dev/null
+++ b/0006-media-ipu6-Fix-building-with-kernel-6.13.patch
@@ -0,0 +1,53 @@
+From a42273020f4a2e1c633dda6f30c512db56738b67 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Tue, 14 Jan 2025 23:08:04 +0100
+Subject: [PATCH 6/9] media: ipu6: Fix building with kernel 6.13
+
+Fix building with kernel 6.13.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ drivers/media/pci/intel/ipu6/psys/ipu-psys.c | 8 ++++++++
+ drivers/media/pci/intel/ipu6/psys/ipu6-psys.c | 4 ++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/drivers/media/pci/intel/ipu6/psys/ipu-psys.c b/drivers/media/pci/intel/ipu6/psys/ipu-psys.c
+index 00e394f20..36f99a3b8 100644
+--- a/drivers/media/pci/intel/ipu6/psys/ipu-psys.c
++++ b/drivers/media/pci/intel/ipu6/psys/ipu-psys.c
+@@ -2681,8 +2681,16 @@ MODULE_AUTHOR("Yunliang Ding <yunliang.ding(a)intel.com>");
+ MODULE_LICENSE("GPL");
+ MODULE_DESCRIPTION("Intel ipu processing system driver");
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 16, 0) || IS_ENABLED(CONFIG_DRM_I915_HAS_SRIOV)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0)
+ MODULE_IMPORT_NS(DMA_BUF);
++#else
++MODULE_IMPORT_NS("DMA_BUF");
++#endif
+ #endif
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 10, 0)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0)
+ MODULE_IMPORT_NS(INTEL_IPU6);
++#else
++MODULE_IMPORT_NS("INTEL_IPU6");
++#endif
+ #endif
+diff --git a/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c b/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c
+index 53c845ba3..0c3a5ca62 100644
+--- a/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c
++++ b/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c
+@@ -32,7 +32,11 @@
+ #include "ipu6-platform-buttress-regs.h"
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0)
+ MODULE_IMPORT_NS(DMA_BUF);
++#else
++MODULE_IMPORT_NS("DMA_BUF");
++#endif
+
+ static bool early_pg_transfer;
+ module_param(early_pg_transfer, bool, 0664);
+--
+2.48.1
+
diff --git a/0007-Modify-0001-v6.10-IPU6-headers-used-by-PSYS.patch-fo.patch b/0007-Modify-0001-v6.10-IPU6-headers-used-by-PSYS.patch-fo.patch
new file mode 100644
index 0000000..d1bccf2
--- /dev/null
+++ b/0007-Modify-0001-v6.10-IPU6-headers-used-by-PSYS.patch-fo.patch
@@ -0,0 +1,49 @@
+From 32ce53b82bef51479d49d7d68794e2b801367dd6 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Thu, 30 Jan 2025 22:20:16 +0100
+Subject: [PATCH 7/9] Modify 0001-v6.10-IPU6-headers-used-by-PSYS.patch for
+ v6.13
+
+Modify 0001-v6.10-IPU6-headers-used-by-PSYS.patch so that it also works
+with 6.13 kernels.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
+index 00fb961d2..6a465a924 100644
+--- a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
++++ b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
+@@ -52,7 +52,7 @@ index 000000000..b26c6aee1
+ +
+ +struct ipu6_bus_device {
+ + struct auxiliary_device auxdev;
+-+ struct auxiliary_driver *auxdrv;
+++ const struct auxiliary_driver *auxdrv;
+ + const struct ipu6_auxdrv_data *auxdrv_data;
+ + struct list_head list;
+ + void *pdata;
+@@ -92,7 +92,7 @@ new file mode 100644
+ index 000000000..9b6f56958
+ --- /dev/null
+ +++ b/drivers/media/pci/intel/ipu6/ipu6-buttress.h
+-@@ -0,0 +1,92 @@
++@@ -0,0 +1,94 @@
+ +/* SPDX-License-Identifier: GPL-2.0-only */
+ +/* Copyright (C) 2013--2024 Intel Corporation */
+ +
+@@ -141,7 +141,9 @@ index 000000000..9b6f56958
+ +struct ipu6_buttress {
+ + struct mutex power_mutex, auth_mutex, cons_mutex, ipc_mutex;
+ + struct ipu6_buttress_ipc cse;
+++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0)
+ + struct ipu6_buttress_ipc ish;
+++#endif
+ + struct list_head constraints;
+ + u32 wdt_cached_value;
+ + bool force_suspend;
+--
+2.48.1
+
diff --git a/0008-ipu6-psys-Adjust-DMA-code-for-ipu6-bus-DMA-changes-i.patch b/0008-ipu6-psys-Adjust-DMA-code-for-ipu6-bus-DMA-changes-i.patch
new file mode 100644
index 0000000..141202d
--- /dev/null
+++ b/0008-ipu6-psys-Adjust-DMA-code-for-ipu6-bus-DMA-changes-i.patch
@@ -0,0 +1,306 @@
+From a9236f549f28811a5af0c71ce6708d1f259d0e78 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Sat, 1 Feb 2025 08:04:35 +0100
+Subject: [PATCH 8/9] ipu6-psys: Adjust DMA code for ipu6-bus DMA changes in
+ kernels >= 6.12
+
+Upstream commit daabc5c64703 ("media: ipu6: not override the dma_ops of
+device in driver") has changed the ipu6-bus code to no longer modify
+the aux device's dma_ops, instead new ipu6_dma_*() helpers were introduced
+modify the psys driver to use these new helpers.
+
+This fixes the below DMA warning, which was followed by ipu6_psys_probe()
+failing due to dma_alloc_attrs() failing:
+
+Jan 31 11:59:59 x1 kernel: ------------[ cut here ]------------
+Jan 31 11:59:59 x1 kernel: WARNING: CPU: 3 PID: 8595 at kernel/dma/mapping.c:597 dma_alloc_attrs+0x12b/0x140
+Jan 31 11:59:59 x1 kernel: Modules linked in: intel_ipu6_psys(OE+) rfcomm snd_seq_dummy snd_hrtimer qrtr bnep binfmt_misc vfat fat snd_soc_skl_hda_dsp snd_soc_intel_sof_board_helpers snd_sof_probes snd_soc_intel_hda_dsp_common snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_scodec_component snd_soc_dmic snd_sof_pci_intel_mtl snd_sof_intel_hda_generic soundwire_intel soundwire_cadence snd_sof_intel_hda_common snd_soc_hdac_hda iwlmvm snd_sof_intel_hda_mlink snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp snd_sof snd_sof_utils snd_hda_ext_core mac80211 snd_soc_acpi_intel_match soundwire_generic_allocation snd_soc_acpi intel_uncore_frequency soundwire_bus intel_uncore_frequency_common x86_pkg_temp_thermal snd_soc_core intel_ipu6_isys intel_powerclamp videobuf2_dma_sg coretemp snd_compress videobuf2_memops ac97_bus videobuf2_v4l2 snd_pcm_dmaengine videobuf2_common snd_hda_intel libarc4 snd_intel_dspcfg snd_intel_sdw_acpi kvm_intel snd_hda_codec spi_nor btusb iTCO_
wdt btrtl mhi_wwan_mbim intel_pmc_bxt mhi_wwan_ctrl
+Jan 31 11:59:59 x1 kernel: snd_hda_core mei_gsc_proxy gpio_usbio(OE) mei_wdt i2c_usbio(OE) mtd iTCO_vendor_support intel_rapl_msr btintel snd_hwdep kvm btbcm btmtk snd_seq snd_ctl_led hid_sensor_accel_3d hid_sensor_gyro_3d iwlwifi bluetooth snd_seq_device rapl processor_thermal_device_pci intel_cstate hid_sensor_trigger think_lmi processor_thermal_device hid_sensor_iio_common processor_thermal_wt_hint industrialio_triggered_buffer intel_uncore usbio(OE) firmware_attributes_class snd_pcm wmi_bmof mhi_pci_generic kfifo_buf processor_thermal_rfim i2c_i801 mei_me cfg80211 processor_thermal_rapl thinkpad_acpi spi_intel_pci mhi industrialio thunderbolt snd_timer spi_intel mei intel_ipu6 i2c_smbus intel_rapl_common idma64 platform_profile processor_thermal_wt_req ipu_bridge rfkill processor_thermal_power_floor snd igen6_edac processor_thermal_mbox int3403_thermal soundcore soc_button_array int340x_thermal_zone intel_pmc_core intel_skl_int3472_tps68470 ov08x40(OE) tps68470_regulator v4l2_f
wnode clk_tps68470 intel_vsec v4l2_async
+Jan 31 11:59:59 x1 kernel: pmt_telemetry intel_skl_int3472_discrete int3400_thermal intel_hid acpi_tad pmt_class intel_skl_int3472_common acpi_pad sparse_keymap joydev acpi_thermal_rel loop nfnetlink zram lz4hc_compress lz4_compress dm_crypt xe drm_ttm_helper gpu_sched drm_suballoc_helper drm_gpuvm drm_exec hid_sensor_hub intel_ishtp_hid i915 i2c_algo_bit drm_buddy nvme ttm nvme_core drm_display_helper intel_ish_ipc video ucsi_acpi crct10dif_pclmul hid_multitouch crc32_pclmul crc32c_intel polyval_clmulni polyval_generic ghash_clmulni_intel intel_vpu sha512_ssse3 sha256_ssse3 typec_ucsi sha1_ssse3 intel_ishtp cec typec nvme_auth i2c_hid_acpi i2c_hid wmi pinctrl_meteorlake serio_raw v4l2loopback(OE) videodev mc i2c_dev fuse
+Jan 31 11:59:59 x1 kernel: CPU: 3 UID: 0 PID: 8595 Comm: modprobe Tainted: G OE 6.12.10-200.fc41.x86_64 #1
+Jan 31 11:59:59 x1 kernel: Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
+Jan 31 11:59:59 x1 kernel: Hardware name: LENOVO 21KCSIT080/21KCSIT080, BIOS N3YET72W (1.37 ) 10/03/2024
+Jan 31 11:59:59 x1 kernel: RIP: 0010:dma_alloc_attrs+0x12b/0x140
+Jan 31 11:59:59 x1 kernel: Code: 4c 89 e6 48 89 df e8 94 5d 9a 00 49 89 c7 e9 62 ff ff ff 0f 0b 45 31 ff 5b 5d 4c 89 f8 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc <0f> 0b e9 0d ff ff ff 45 31 ff e9 3e ff ff ff 66 0f 1f 44 00 00 90
+Jan 31 11:59:59 x1 kernel: RSP: 0018:ffffaeefe452fbc8 EFLAGS: 00010246
+Jan 31 11:59:59 x1 kernel: RAX: 0000000000000000 RBX: ffff936a8de60800 RCX: 0000000000000cc0
+Jan 31 11:59:59 x1 kernel: RDX: ffff936af6c65018 RSI: 0000000000002000 RDI: ffff936a8de60800
+Jan 31 11:59:59 x1 kernel: RBP: ffff936a8de60800 R08: 0000000000000000 R09: ffff936af6c65000
+Jan 31 11:59:59 x1 kernel: R10: ffffaeefe452fc00 R11: ffff9371bf9a17c0 R12: 0000000000002000
+Jan 31 11:59:59 x1 kernel: R13: ffff936af6c65018 R14: 0000000000000000 R15: ffff936a9d9be440
+Jan 31 11:59:59 x1 kernel: FS: 00007f8ff258f740(0000) GS:ffff9371bf980000(0000) knlGS:0000000000000000
+Jan 31 11:59:59 x1 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
+Jan 31 11:59:59 x1 kernel: CR2: 00007f2e39eee67c CR3: 000000013b884003 CR4: 0000000000f72ef0
+Jan 31 11:59:59 x1 kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+Jan 31 11:59:59 x1 kernel: DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
+Jan 31 11:59:59 x1 kernel: PKRU: 55555554
+Jan 31 11:59:59 x1 kernel: Call Trace:
+Jan 31 11:59:59 x1 kernel: <TASK>
+Jan 31 11:59:59 x1 kernel: ? dma_alloc_attrs+0x12b/0x140
+Jan 31 11:59:59 x1 kernel: ? __warn.cold+0x93/0xfa
+Jan 31 11:59:59 x1 kernel: ? dma_alloc_attrs+0x12b/0x140
+Jan 31 11:59:59 x1 kernel: ? report_bug+0xff/0x140
+Jan 31 11:59:59 x1 kernel: ? handle_bug+0x58/0x90
+Jan 31 11:59:59 x1 kernel: ? exc_invalid_op+0x17/0x70
+Jan 31 11:59:59 x1 kernel: ? asm_exc_invalid_op+0x1a/0x20
+Jan 31 11:59:59 x1 kernel: ? dma_alloc_attrs+0x12b/0x140
+Jan 31 11:59:59 x1 kernel: ipu6_psys_probe+0x37d/0x4b0 [intel_ipu6_psys]
+Jan 31 11:59:59 x1 kernel: ? __pfx_ipu6_psys_probe+0x10/0x10 [intel_ipu6_psys]
+Jan 31 11:59:59 x1 kernel: auxiliary_bus_probe+0x46/0x80
+Jan 31 11:59:59 x1 kernel: ? driver_sysfs_add+0x57/0xc0
+Jan 31 11:59:59 x1 kernel: really_probe+0xdb/0x340
+Jan 31 11:59:59 x1 kernel: ? pm_runtime_barrier+0x54/0x90
+Jan 31 11:59:59 x1 kernel: ? __pfx___driver_attach+0x10/0x10
+Jan 31 11:59:59 x1 kernel: __driver_probe_device+0x78/0x110
+Jan 31 11:59:59 x1 kernel: driver_probe_device+0x1f/0xa0
+Jan 31 11:59:59 x1 kernel: __driver_attach+0xba/0x1c0
+Jan 31 11:59:59 x1 kernel: bus_for_each_dev+0x8c/0xe0
+Jan 31 11:59:59 x1 kernel: bus_add_driver+0x142/0x220
+Jan 31 11:59:59 x1 kernel: driver_register+0x72/0xd0
+Jan 31 11:59:59 x1 kernel: __auxiliary_driver_register+0x6e/0xd0
+Jan 31 11:59:59 x1 kernel: ? __pfx_ipu6_psys_aux_driver_init+0x10/0x10 [intel_ipu6_psys]
+Jan 31 11:59:59 x1 kernel: do_one_initcall+0x58/0x310
+Jan 31 11:59:59 x1 kernel: do_init_module+0x90/0x260
+Jan 31 11:59:59 x1 kernel: __do_sys_init_module+0x17a/0x1b0
+Jan 31 11:59:59 x1 kernel: do_syscall_64+0x82/0x160
+Jan 31 11:59:59 x1 kernel: ? exc_page_fault+0x7e/0x180
+Jan 31 11:59:59 x1 kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e
+Jan 31 11:59:59 x1 kernel: RIP: 0033:0x7f8ff1f0228e
+Jan 31 11:59:59 x1 kernel: Code: 48 8b 0d 85 3b 0f 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 52 3b 0f 00 f7 d8 64 89 01 48
+Jan 31 11:59:59 x1 kernel: RSP: 002b:00007ffdfbde11e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
+Jan 31 11:59:59 x1 kernel: RAX: ffffffffffffffda RBX: 000055a0687e9240 RCX: 00007f8ff1f0228e
+Jan 31 11:59:59 x1 kernel: RDX: 000055a05859a715 RSI: 0000000000041a65 RDI: 00007f8ff13a7010
+Jan 31 11:59:59 x1 kernel: RBP: 00007ffdfbde12a0 R08: 000055a0687e8010 R09: 0000000000000007
+Jan 31 11:59:59 x1 kernel: R10: 0000000000000001 R11: 0000000000000246 R12: 000055a05859a715
+Jan 31 11:59:59 x1 kernel: R13: 0000000000040000 R14: 000055a0687e92e0 R15: 0000000000000000
+Jan 31 11:59:59 x1 kernel: </TASK>
+Jan 31 11:59:59 x1 kernel: ---[ end trace 0000000000000000 ]---
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ drivers/media/pci/intel/ipu6/psys/ipu-psys.c | 64 ++++++++++++++++++-
+ drivers/media/pci/intel/ipu6/psys/ipu6-ppg.c | 6 +-
+ drivers/media/pci/intel/ipu6/psys/ipu6-psys.c | 22 +++++--
+ 3 files changed, 85 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/media/pci/intel/ipu6/psys/ipu-psys.c b/drivers/media/pci/intel/ipu6/psys/ipu-psys.c
+index 36f99a3b8..7c512e5ae 100644
+--- a/drivers/media/pci/intel/ipu6/psys/ipu-psys.c
++++ b/drivers/media/pci/intel/ipu6/psys/ipu-psys.c
+@@ -52,6 +52,7 @@
+ #include "ipu-psys.h"
+ #include "ipu6-platform-regs.h"
+ #include "ipu6-fw-com.h"
++#include "ipu6-dma.h"
+ #endif
+
+ static bool async_fw_init;
+@@ -228,9 +229,12 @@ struct ipu_psys_pg *__get_pg_buf(struct ipu_psys *psys, size_t pg_size)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 10, 0)
+ kpg->pg = dma_alloc_attrs(&psys->adev->dev, pg_size,
+ &kpg->pg_dma_addr, GFP_KERNEL, 0);
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ kpg->pg = dma_alloc_attrs(dev, pg_size, &kpg->pg_dma_addr,
+ GFP_KERNEL, 0);
++#else
++ kpg->pg = ipu6_dma_alloc(to_ipu6_bus_device(dev), pg_size,
++ &kpg->pg_dma_addr, GFP_KERNEL, 0);
+ #endif
+ if (!kpg->pg) {
+ kfree(kpg);
+@@ -597,6 +601,7 @@ static void ipu_dma_buf_detach(struct dma_buf *dbuf,
+ attach->priv = NULL;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ static struct sg_table *ipu_dma_buf_map(struct dma_buf_attachment *attach,
+ enum dma_data_direction dir)
+ {
+@@ -658,6 +663,50 @@ static void ipu_dma_buf_unmap(struct dma_buf_attachment *attach,
+ #endif
+ }
+
++#else
++
++static struct sg_table *ipu_dma_buf_map(struct dma_buf_attachment *attach,
++ enum dma_data_direction dir)
++{
++ struct ipu_dma_buf_attach *ipu_attach = attach->priv;
++ struct ipu6_bus_device *adev = to_ipu6_bus_device(attach->dev);
++ struct pci_dev *pdev = adev->isp->pdev;
++ unsigned long attrs;
++ int ret;
++
++ attrs = DMA_ATTR_SKIP_CPU_SYNC;
++ ret = dma_map_sgtable(&pdev->dev, ipu_attach->sgt, dir, attrs);
++ if (ret) {
++ dev_dbg(attach->dev, "buf map failed\n");
++ return ERR_PTR(-EIO);
++ }
++
++ ret = ipu6_dma_map_sgtable(adev, ipu_attach->sgt, dir, attrs);
++ if (ret) {
++ dma_unmap_sgtable(&pdev->dev, ipu_attach->sgt, dir, attrs);
++ return ERR_PTR(-EIO);
++ }
++
++ /*
++ * Initial cache flush to avoid writing dirty pages for buffers which
++ * are later marked as IPU_BUFFER_FLAG_NO_FLUSH.
++ */
++ ipu6_dma_sync_sgtable(adev, ipu_attach->sgt);
++
++ return ipu_attach->sgt;
++}
++
++static void ipu_dma_buf_unmap(struct dma_buf_attachment *attach,
++ struct sg_table *sgt, enum dma_data_direction dir)
++{
++ struct ipu6_bus_device *adev = to_ipu6_bus_device(attach->dev);
++ struct pci_dev *pdev = adev->isp->pdev;
++
++ ipu6_dma_unmap_sgtable(adev, sgt, dir, DMA_ATTR_SKIP_CPU_SYNC);
++ dma_unmap_sgtable(&pdev->dev, sgt, dir, DMA_ATTR_SKIP_CPU_SYNC);
++}
++#endif
++
+ static int ipu_dma_buf_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma)
+ {
+ return -ENOTTY;
+@@ -2371,7 +2420,12 @@ static int ipu6_psys_probe(struct auxiliary_device *auxdev,
+ kpg = kzalloc(sizeof(*kpg), GFP_KERNEL);
+ if (!kpg)
+ goto out_free_pgs;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ kpg->pg = dma_alloc_attrs(dev, IPU_PSYS_PG_MAX_SIZE,
++#else
++ kpg->pg = ipu6_dma_alloc(adev, IPU_PSYS_PG_MAX_SIZE,
++#endif
+ &kpg->pg_dma_addr,
+ GFP_KERNEL, 0);
+ if (!kpg->pg) {
+@@ -2426,7 +2480,11 @@ out_release_fw_com:
+ ipu6_fw_com_release(psys->fwcom, 1);
+ out_free_pgs:
+ list_for_each_entry_safe(kpg, kpg0, &psys->pgs, list) {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ dma_free_attrs(dev, kpg->size, kpg->pg, kpg->pg_dma_addr, 0);
++#else
++ ipu6_dma_free(adev, kpg->size, kpg->pg, kpg->pg_dma_addr, 0);
++#endif
+ kfree(kpg);
+ }
+
+@@ -2484,8 +2542,10 @@ static void ipu6_psys_remove(struct auxiliary_device *auxdev)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 10, 0)
+ dma_free_attrs(&adev->dev, kpg->size, kpg->pg,
+ kpg->pg_dma_addr, 0);
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ dma_free_attrs(dev, kpg->size, kpg->pg, kpg->pg_dma_addr, 0);
++#else
++ ipu6_dma_free(psys->adev, kpg->size, kpg->pg, kpg->pg_dma_addr, 0);
+ #endif
+ kfree(kpg);
+ }
+diff --git a/drivers/media/pci/intel/ipu6/psys/ipu6-ppg.c b/drivers/media/pci/intel/ipu6/psys/ipu6-ppg.c
+index 9038f69cd..5e6fb9a1b 100644
+--- a/drivers/media/pci/intel/ipu6/psys/ipu6-ppg.c
++++ b/drivers/media/pci/intel/ipu6/psys/ipu6-ppg.c
+@@ -8,6 +8,7 @@
+ #include <asm/cacheflush.h>
+
+ #include "ipu6-ppg.h"
++#include "ipu6-dma.h"
+
+ static bool enable_suspend_resume;
+ module_param(enable_suspend_resume, bool, 0664);
+@@ -75,9 +76,12 @@ __get_buf_set(struct ipu_psys_fh *fh, size_t buf_set_size)
+ kbuf_set->kaddr = dma_alloc_attrs(&fh->psys->adev->dev,
+ buf_set_size, &kbuf_set->dma_addr,
+ GFP_KERNEL, 0);
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ kbuf_set->kaddr = dma_alloc_attrs(dev, buf_set_size,
+ &kbuf_set->dma_addr, GFP_KERNEL, 0);
++#else
++ kbuf_set->kaddr = ipu6_dma_alloc(to_ipu6_bus_device(dev), buf_set_size,
++ &kbuf_set->dma_addr, GFP_KERNEL, 0);
+ #endif
+ if (!kbuf_set->kaddr) {
+ kfree(kbuf_set);
+diff --git a/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c b/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c
+index 0c3a5ca62..58662ea16 100644
+--- a/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c
++++ b/drivers/media/pci/intel/ipu6/psys/ipu6-psys.c
+@@ -30,6 +30,7 @@
+ #include "ipu6-ppg.h"
+ #include "ipu6-platform-regs.h"
+ #include "ipu6-platform-buttress-regs.h"
++#include "ipu6-dma.h"
+ #endif
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 0)
+@@ -450,10 +451,12 @@ static struct ipu_psys_kcmd *ipu_psys_copy_cmd(struct ipu_psys_command *cmd,
+ kcmd->kbufs[i]->sgt->sgl,
+ kcmd->kbufs[i]->sgt->orig_nents,
+ DMA_BIDIRECTIONAL);
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ dma_sync_sg_for_device(dev, kcmd->kbufs[i]->sgt->sgl,
+ kcmd->kbufs[i]->sgt->orig_nents,
+ DMA_BIDIRECTIONAL);
++#else
++ ipu6_dma_sync_sgtable(psys->adev, kcmd->kbufs[i]->sgt);
+ #endif
+ }
+
+@@ -1102,11 +1105,16 @@ int ipu_psys_fh_init(struct ipu_psys_fh *fh)
+ &kbuf_set->dma_addr,
+ GFP_KERNEL,
+ 0);
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ kbuf_set->kaddr = dma_alloc_attrs(dev,
+ IPU_PSYS_BUF_SET_MAX_SIZE,
+ &kbuf_set->dma_addr,
+ GFP_KERNEL, 0);
++#else
++ kbuf_set->kaddr = ipu6_dma_alloc(to_ipu6_bus_device(dev),
++ IPU_PSYS_BUF_SET_MAX_SIZE,
++ &kbuf_set->dma_addr,
++ GFP_KERNEL, 0);
+ #endif
+ if (!kbuf_set->kaddr) {
+ kfree(kbuf_set);
+@@ -1124,8 +1132,11 @@ out_free_buf_sets:
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 10, 0)
+ dma_free_attrs(&psys->adev->dev,
+ kbuf_set->size, kbuf_set->kaddr,
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ dma_free_attrs(dev, kbuf_set->size, kbuf_set->kaddr,
++#else
++ ipu6_dma_free(to_ipu6_bus_device(dev),
++ kbuf_set->size, kbuf_set->kaddr,
+ #endif
+ kbuf_set->dma_addr, 0);
+ list_del(&kbuf_set->list);
+@@ -1229,8 +1240,11 @@ int ipu_psys_fh_deinit(struct ipu_psys_fh *fh)
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 10, 0)
+ dma_free_attrs(&psys->adev->dev,
+ kbuf_set->size, kbuf_set->kaddr,
+-#else
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)
+ dma_free_attrs(dev, kbuf_set->size, kbuf_set->kaddr,
++#else
++ ipu6_dma_free(to_ipu6_bus_device(dev),
++ kbuf_set->size, kbuf_set->kaddr,
+ #endif
+ kbuf_set->dma_addr, 0);
+ list_del(&kbuf_set->list);
+--
+2.48.1
+
diff --git a/0009-Add-ipu6-dma.h-to-0001-v6.10-IPU6-headers-used-by-PS.patch b/0009-Add-ipu6-dma.h-to-0001-v6.10-IPU6-headers-used-by-PS.patch
new file mode 100644
index 0000000..63b626a
--- /dev/null
+++ b/0009-Add-ipu6-dma.h-to-0001-v6.10-IPU6-headers-used-by-PS.patch
@@ -0,0 +1,84 @@
+From 47a2e1cf89b789bbc10d3cb3b26b357404633114 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Sat, 1 Feb 2025 08:19:22 +0100
+Subject: [PATCH 9/9] Add ipu6-dma.h to
+ 0001-v6.10-IPU6-headers-used-by-PSYS.patch
+
+Add ipu6-dma.h to 0001-v6.10-IPU6-headers-used-by-PSYS.patch,
+this is necessary for the DMA code adjustments in the psys code
+which were done for the ipu6-bus DMA changes in kernels >= 6.12.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ ...0001-v6.10-IPU6-headers-used-by-PSYS.patch | 55 +++++++++++++++++++
+ 1 file changed, 55 insertions(+)
+
+diff --git a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
+index 6a465a924..b8eeaae66 100644
+--- a/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
++++ b/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
+@@ -1195,6 +1195,61 @@ index 000000000..92e3c3414
+ + int pkg_dir_idx, void __iomem *base, u64 *pkg_dir,
+ + dma_addr_t pkg_dir_dma_addr);
+ +#endif /* IPU6_H */
++diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h
++new file mode 100644
++index 000000000..b51244add
++--- /dev/null
+++++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h
++@@ -0,0 +1,49 @@
+++/* SPDX-License-Identifier: GPL-2.0-only */
+++/* Copyright (C) 2013--2024 Intel Corporation */
+++
+++#ifndef IPU6_DMA_H
+++#define IPU6_DMA_H
+++
+++#include <linux/dma-map-ops.h>
+++#include <linux/dma-mapping.h>
+++#include <linux/iova.h>
+++#include <linux/iova.h>
+++#include <linux/scatterlist.h>
+++#include <linux/types.h>
+++
+++#include "ipu6-bus.h"
+++
+++struct ipu6_mmu_info;
+++
+++struct ipu6_dma_mapping {
+++ struct ipu6_mmu_info *mmu_info;
+++ struct iova_domain iovad;
+++};
+++
+++void ipu6_dma_sync_single(struct ipu6_bus_device *sys, dma_addr_t dma_handle,
+++ size_t size);
+++void ipu6_dma_sync_sg(struct ipu6_bus_device *sys, struct scatterlist *sglist,
+++ int nents);
+++void ipu6_dma_sync_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt);
+++void *ipu6_dma_alloc(struct ipu6_bus_device *sys, size_t size,
+++ dma_addr_t *dma_handle, gfp_t gfp,
+++ unsigned long attrs);
+++void ipu6_dma_free(struct ipu6_bus_device *sys, size_t size, void *vaddr,
+++ dma_addr_t dma_handle, unsigned long attrs);
+++int ipu6_dma_mmap(struct ipu6_bus_device *sys, struct vm_area_struct *vma,
+++ void *addr, dma_addr_t iova, size_t size,
+++ unsigned long attrs);
+++int ipu6_dma_map_sg(struct ipu6_bus_device *sys, struct scatterlist *sglist,
+++ int nents, enum dma_data_direction dir,
+++ unsigned long attrs);
+++void ipu6_dma_unmap_sg(struct ipu6_bus_device *sys, struct scatterlist *sglist,
+++ int nents, enum dma_data_direction dir,
+++ unsigned long attrs);
+++int ipu6_dma_map_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt,
+++ enum dma_data_direction dir, unsigned long attrs);
+++void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt,
+++ enum dma_data_direction dir, unsigned long attrs);
+++int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt,
+++ void *cpu_addr, dma_addr_t handle, size_t size,
+++ unsigned long attrs);
+++#endif /* IPU6_DMA_H */
+ --
+ 2.43.0
+
+--
+2.48.1
+
diff --git a/0010-usbio-Fix-GPIO-and-I2C-driver-modaliases.patch b/0010-usbio-Fix-GPIO-and-I2C-driver-modaliases.patch
new file mode 100644
index 0000000..f4b784f
--- /dev/null
+++ b/0010-usbio-Fix-GPIO-and-I2C-driver-modaliases.patch
@@ -0,0 +1,38 @@
+From d5f08986936a7fda0cce543c73fb8d9bab76eae2 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Wed, 15 Jan 2025 11:28:54 +0100
+Subject: [PATCH 10/12] usbio: Fix GPIO and I2C driver modaliases
+
+The created GPIO and I2C devices have modaliases of
+"platform:usbio-gpio" and "platform:usbio-i2c" note "usbio" not "usb"
+fix the aliases of the drivers so that these will properly auto load.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ drivers/gpio/gpio-usbio.c | 2 +-
+ drivers/i2c/busses/i2c-usbio.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpio/gpio-usbio.c b/drivers/gpio/gpio-usbio.c
+index 625558b..de9d5cb 100644
+--- a/drivers/gpio/gpio-usbio.c
++++ b/drivers/gpio/gpio-usbio.c
+@@ -499,4 +499,4 @@ MODULE_AUTHOR("Israel Cepeda <israel.a.cepeda.lopez(a)intel.com>");
+ MODULE_AUTHOR("Lifu Wang <lifu.wang(a)intel.com>");
+ MODULE_DESCRIPTION("Intel USBIO-GPIO driver");
+ MODULE_LICENSE("GPL v2");
+-MODULE_ALIAS("platform:usb-gpio");
++MODULE_ALIAS("platform:usbio-gpio");
+diff --git a/drivers/i2c/busses/i2c-usbio.c b/drivers/i2c/busses/i2c-usbio.c
+index ef1f380..3b2c856 100644
+--- a/drivers/i2c/busses/i2c-usbio.c
++++ b/drivers/i2c/busses/i2c-usbio.c
+@@ -437,4 +437,4 @@ MODULE_AUTHOR("Israel Cepeda <israel.a.cepeda.lopez(a)intel.com>");
+ MODULE_AUTHOR("Lifu Wang <lifu.wang(a)intel.com>");
+ MODULE_DESCRIPTION("Intel USBIO-I2C driver");
+ MODULE_LICENSE("GPL v2");
+-MODULE_ALIAS("platform:usb-i2c");
++MODULE_ALIAS("platform:usbio-i2c");
+--
+2.47.1
+
diff --git a/0011-usbio-Fix-I2C-max-transfer-size.patch b/0011-usbio-Fix-I2C-max-transfer-size.patch
new file mode 100644
index 0000000..c922df2
--- /dev/null
+++ b/0011-usbio-Fix-I2C-max-transfer-size.patch
@@ -0,0 +1,115 @@
+From 47b34a6f467eebb4e9fc59f5e25618fe760fbf33 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Wed, 29 Jan 2025 19:13:29 +0100
+Subject: [PATCH 11/12] usbio: Fix I2C max transfer size
+
+There are 2 issues with the I2C max transfer size in the i2c-usbio module:
+
+1. The code defines a usbio_i2c_quirks struct but does not set
+i2c_adapter.quirks. This causes ov08x40_burst_fill_regs() to not split
+i2c-transfers larger then USBIO_I2C_MAX_XFER_SIZE which causes them
+to be rejected with -EINVAL. Fix this by setting i2c_adapter.quirks.
+
+2. Once 1. is fixed the following error messages show up in dmesg:
+
+Jan 28 18:31:04 x1 kernel: usbio-bridge 3-9:1.0: data not correct header->len:5 payload_len:3
+Jan 28 18:31:04 x1 kernel: usbio-bridge 3-9:1.0: data not correct header->len:5 payload_len:3
+...
+
+Every time ov08x40_burst_fill_regs() gets called. This is caused by
+the usbio_transfer_internal() splitting-up the i2c-transfer into
+multiple USB bulk packets to honor MAX_PACKET_SIZE.
+
+This splitting up seems to not work and the USBIO expander responds with
+a 3 byte answer with flags set 0x0e which includes ERR_FLAG, it seems that
+when ERR_FLAG is set only a 3 byte header is returned (no length field).
+
+Modify USBIO_I2C_MAX_XFER_SIZE to avoid the splitting of the i2c-transfer
+over multiple USB bulk packets, since the USBIO chip seems to not like
+the splitting.
+
+After this change to USBIO_I2C_MAX_XFER_SIZE the code to split transfers
+in usbio_transfer_internal() is no longer necessary, remove it.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ drivers/i2c/busses/i2c-usbio.c | 11 ++++++++++-
+ drivers/mfd/usbio.c | 33 ++-------------------------------
+ 2 files changed, 12 insertions(+), 32 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-usbio.c b/drivers/i2c/busses/i2c-usbio.c
+index 3b2c856..a6c5edc 100644
+--- a/drivers/i2c/busses/i2c-usbio.c
++++ b/drivers/i2c/busses/i2c-usbio.c
+@@ -65,7 +65,15 @@ struct i2c_xfer {
+ u8 data[];
+ } __packed;
+
+-#define USBIO_I2C_MAX_XFER_SIZE 256
++//[WA]: Max USB packet size needs to be 63
++//in order for fw download to work
++#define USBIO_MAX_PACKET_SIZE 63
++#define USBIO_BULK_MSG_HDR_SIZE 5
++
++#define USBIO_I2C_MAX_XFER_SIZE \
++ (USBIO_MAX_PACKET_SIZE - USBIO_BULK_MSG_HDR_SIZE - \
++ sizeof(struct i2c_rw_packet))
++
+ #define USBIO_I2C_BUF_SIZE \
+ (USBIO_I2C_MAX_XFER_SIZE + sizeof(struct i2c_rw_packet))
+
+@@ -384,6 +392,7 @@ static int usbio_i2c_probe(struct platform_device *pdev)
+ usbio_i2c->adap.owner = THIS_MODULE;
+ usbio_i2c->adap.class = I2C_CLASS_HWMON;
+ usbio_i2c->adap.algo = &usbio_i2c_algo;
++ usbio_i2c->adap.quirks = &usbio_i2c_quirks;
+ usbio_i2c->adap.dev.parent = &pdev->dev;
+
+ try_bind_acpi(pdev, usbio_i2c);
+diff --git a/drivers/mfd/usbio.c b/drivers/mfd/usbio.c
+index 8bc7600..51757df 100644
+--- a/drivers/mfd/usbio.c
++++ b/drivers/mfd/usbio.c
+@@ -390,37 +390,8 @@ static int usbio_transfer_internal(struct platform_device *pdev, u8 cmd,
+ ret = usbio_control_xfer(stub, cmd, obuf, obuf_len,
+ ibuf, ibuf_len, wait_ack, USB_WRITE_ACK_TIMEOUT);
+ else if (stub->type == I2C_STUB) {
+- if (cmd == I2C_WRITE) {
+- u8 *i2cpkt = obuf;
+- int wsize = 0;
+- bool done = false;
+- while (wsize < obuf_len) {
+- int chunk;
+-
+- if ((obuf_len - wsize) <= MAX_PAYLOAD_BSIZE) {
+- chunk = obuf_len - wsize;
+- done = true;
+- } else
+- chunk = MAX_PAYLOAD_BSIZE;
+-
+- //[WA]: The I2C header in each chunk has to be updated
+- //to the payload bytes being sent in that chunk for fw
+- //download to work.
+- struct i2c_rw_packet *i2cpkt_hdr = (struct i2c_rw_packet *)i2cpkt;
+- i2cpkt_hdr->len = chunk - sizeof(struct i2c_rw_packet);
+-
+- ret = usbio_bulk_write(stub, cmd, i2cpkt, chunk, ibuf, ibuf_len,
+- done, done? wait_ack : false, USB_WRITE_ACK_TIMEOUT);
+- if (ret || done)
+- break;
+-
+- wsize += chunk - sizeof(struct i2c_rw_packet);
+- i2cpkt += chunk - sizeof(struct i2c_rw_packet);
+- memcpy(i2cpkt, obuf, sizeof(struct i2c_rw_packet));
+- }
+- } else
+- ret = usbio_bulk_write(stub, cmd, obuf, obuf_len,
+- ibuf, ibuf_len, true, wait_ack, USB_WRITE_ACK_TIMEOUT);
++ ret = usbio_bulk_write(stub, cmd, obuf, obuf_len,
++ ibuf, ibuf_len, true, wait_ack, USB_WRITE_ACK_TIMEOUT);
+ }
+
+ return ret;
+--
+2.47.1
+
diff --git a/0012-usbio-Use-MAX_PAYLOAD_BSIZE-in-usbio_bulk_write.patch b/0012-usbio-Use-MAX_PAYLOAD_BSIZE-in-usbio_bulk_write.patch
new file mode 100644
index 0000000..07b8329
--- /dev/null
+++ b/0012-usbio-Use-MAX_PAYLOAD_BSIZE-in-usbio_bulk_write.patch
@@ -0,0 +1,30 @@
+From 0eae85556558b410635ad03ed5eccb9648e11fce Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Wed, 29 Jan 2025 19:26:16 +0100
+Subject: [PATCH 12/12] usbio: Use MAX_PAYLOAD_BSIZE in usbio_bulk_write()
+
+usbio_bulk_write() uses a struct usbio_bmsg header rather than
+a struct usbio_msg header. So its max payload length check must use
+MAX_PAYLOAD_BSIZE instead of MAX_PAYLOAD_SIZE.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ drivers/mfd/usbio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/mfd/usbio.c b/drivers/mfd/usbio.c
+index 51757df..ab5dae9 100644
+--- a/drivers/mfd/usbio.c
++++ b/drivers/mfd/usbio.c
+@@ -303,7 +303,7 @@ static int usbio_bulk_write(struct usbio_stub *stub, u8 cmd, const void *obuf,
+ if (bridge->state == BRIDGE_STOPPED)
+ return -ENODEV;
+
+- if (obuf_len > MAX_PAYLOAD_SIZE)
++ if (obuf_len > MAX_PAYLOAD_BSIZE)
+ return -EINVAL;
+
+ if (last_pkt)
+--
+2.47.1
+
diff --git a/0101-Fedora-local-mod-integrate-usbio-drivers-within-ipu6.patch b/0101-Fedora-local-mod-integrate-usbio-drivers-within-ipu6.patch
new file mode 100644
index 0000000..4b0cb49
--- /dev/null
+++ b/0101-Fedora-local-mod-integrate-usbio-drivers-within-ipu6.patch
@@ -0,0 +1,38 @@
+From a6c5a0c329fd1582fc94b51ba9c6f1c21abc0084 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede(a)redhat.com>
+Date: Thu, 30 Jan 2025 22:04:41 +0100
+Subject: [PATCH 8/8] Fedora local mod: integrate usbio-drivers within
+ ipu6-drivers Makefile
+
+Integrate usbio-drivers within ipu6-drivers Makefile.
+
+Signed-off-by: Hans de Goede <hdegoede(a)redhat.com>
+---
+ Makefile | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index 7ae3be835..637382d6d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -114,6 +114,17 @@ ifeq ($(call version_lt,$(KERNEL_VERSION),$(KV_IVSC)),true)
+ ccflags-y += -I$(src)/backport-include/drivers/misc/mei/
+ endif
+
++# begin integrate usbio-drivers within ipu6-drivers Makefile
++obj-m += usbio.o
++usbio-y := drivers/mfd/usbio.o
++
++obj-m += gpio-usbio.o
++gpio-usbio-y := drivers/gpio/gpio-usbio.o
++
++obj-m += i2c-usbio.o
++i2c-usbio-y := drivers/i2c/busses/i2c-usbio.o
++# end integrate usbio-drivers within ipu6-drivers Makefile
++
+ subdir-ccflags-y += -I$(src)/include/ \
+ -DCONFIG_VIDEO_V4L2_SUBDEV_API
+
+--
+2.47.1
+
diff --git a/intel-ipu6-kmod.spec b/intel-ipu6-kmod.spec
index d500a08..048cf90 100644
--- a/intel-ipu6-kmod.spec
+++ b/intel-ipu6-kmod.spec
@@ -3,41 +3,48 @@
%global debug_package %{nil}
%endif
-%global ipu6_commit aecec2aaef069fea56aa921cf5d7e449bb7a0b82
-%global ipu6_commitdate 20240624
+%global ipu6_commit 13c466ebdaaa0578e82bf3039b63eb0b3f472b72
+%global ipu6_commitdate 20250115
%global ipu6_shortcommit %(c=%{ipu6_commit}; echo ${c:0:7})
-%global ivsc_commit a6dccbbf5a955489d20d996234b6ebb481183ed7
-%global ivsc_commitdate 20240416
-%global ivsc_shortcommit %(c=%{ivsc_commit}; echo ${c:0:7})
+%global usbio_commit 450939ff5f8af733bc89c564603222a4d420acf3
+%global usbio_commitdate 20241210
+%global usbio_shortcommit %(c=%{usbio_commit}; echo ${c:0:7})
%global prjname intel-ipu6
Name: %{prjname}-kmod
Summary: Kernel module (kmod) for %{prjname}
Version: 0.0
-Release: 18.%{ipu6_commitdate}git%{ipu6_shortcommit}%{?dist}
-License: GPLv2+
+Release: 19.%{ipu6_commitdate}git%{ipu6_shortcommit}%{?dist}
+License: GPL-2.0-or-later
URL: https://github.com/intel/ipu6-drivers
-Source0: %{url}/ivsc-driver/archive/%{ivsc_commit}/ivsc-driver-%{ivsc_shortcommit}.tar.gz
-Source1: %{url}/ipu6-drivers/archive/%{ipu6_commit}/ipu6-drivers-%{ipu6_shortcommit}.tar.gz
+Source0: https://github.com/intel/ipu6-drivers/archive/%{ipu6_commit}/ipu6-drivers...
+Source1: https://github.com/intel/usbio-drivers/archive/%{usbio_commit}/usbio-driv...
# Patches
-# https://github.com/intel/ipu6-drivers/pull/239
-Patch1: 0001-gc5035-Fix-compilation-with-kernels-6.8.patch
-# https://github.com/intel/ipu6-drivers/pull/242
-Patch2: 0002-media-ipu6-Fix-compilation-with-kernels-6.10.patch
-# https://github.com/intel/ipu6-drivers/pull/243
-Patch3: 0003-Makefile-prefix-ipu6-modules-with-icamera-instead-of.patch
-# https://github.com/intel/ipu6-drivers/pull/261
-Patch4: 0004-media-ipu6-Fix-compilation-with-kernels-6.11.patch
-# https://github.com/intel/ipu6-drivers/pull/283
-Patch5: 0005-media-ipu6-Fix-compilation-with-kernels-6.12-move-as.patch
-Patch6: 0006-media-ipu6-Fix-compilation-with-kernels-6.12-Finally.patch
+# https://github.com/intel/ipu6-drivers/pull/322
+Patch1: 0001-Makefile-Switch-sensor-driver-symbols-from-CONFIG_VI.patch
+Patch2: 0002-Makefile-Re-enable-gc5035-compilation-with-kernels-6.patch
+Patch3: 0003-Makefile-Do-not-build-hi556-driver-with-kernels-6.10.patch
+Patch4: 0004-Makefile-Do-not-build-ov01a10-driver-with-kernels-6..patch
+# https://github.com/intel/ipu6-drivers/pull/321
+Patch5: 0005-media-ipu6-Fix-out-of-tree-builds.patch
+Patch6: 0006-media-ipu6-Fix-building-with-kernel-6.13.patch
+Patch7: 0007-Modify-0001-v6.10-IPU6-headers-used-by-PSYS.patch-fo.patch
+# https://github.com/intel/ipu6-drivers/pull/324
+Patch8: 0008-ipu6-psys-Adjust-DMA-code-for-ipu6-bus-DMA-changes-i.patch
+Patch9: 0009-Add-ipu6-dma.h-to-0001-v6.10-IPU6-headers-used-by-PS.patch
+
+# https://github.com/intel/usbio-drivers/pull/33
+Patch10: 0010-usbio-Fix-GPIO-and-I2C-driver-modaliases.patch
+# https://github.com/intel/usbio-drivers/pull/34
+Patch11: 0011-usbio-Fix-I2C-max-transfer-size.patch
+Patch12: 0012-usbio-Use-MAX_PAYLOAD_BSIZE-in-usbio_bulk_write.patch
# Downstream / Fedora specific patches
-Patch101: 0101-Makefile-Adjust-which-modules-to-build-for-which-ker.patch
+Patch101: 0101-Fedora-local-mod-integrate-usbio-drivers-within-ipu6.patch
BuildRequires: gcc
BuildRequires: elfutils-libelf-devel
@@ -67,13 +74,20 @@ kmodtool --target %{_target_cpu} --repo rpmfusion --kmodname %{prjname} %{?buil
%patch 4 -p1
%patch 5 -p1
%patch 6 -p1
+%patch 7 -p1
+%patch 8 -p1
+%patch 9 -p1
%patch 101 -p1
+patch -p1 < patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch
+)
+(cd usbio-drivers-%{usbio_commit}
+%patch 10 -p1
+%patch 11 -p1
+%patch 12 -p1
)
-
-cp -Rp ivsc-driver-%{ivsc_commit}/backport-include ipu6-drivers-%{ipu6_commit}/
-cp -Rp ivsc-driver-%{ivsc_commit}/drivers ipu6-drivers-%{ipu6_commit}/
-cp -Rp ivsc-driver-%{ivsc_commit}/include ipu6-drivers-%{ipu6_commit}/
+cp -Rp usbio-drivers-%{usbio_commit}/drivers ipu6-drivers-%{ipu6_commit}/
+cp -Rp usbio-drivers-%{usbio_commit}/include ipu6-drivers-%{ipu6_commit}/
for kernel_version in %{?kernel_versions} ; do
cp -a ipu6-drivers-%{ipu6_commit}/ _kmod_build_${kernel_version%%___*}
@@ -88,17 +102,22 @@ done
%install
for kernel_version in %{?kernel_versions}; do
mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/drivers/media/i2c/
- mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/drivers/media/pci/intel/ipu6/
+ mkdir -p %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/drivers/media/pci/intel/ipu6/psys/
install -m 755 _kmod_build_${kernel_version%%___*}/drivers/media/i2c/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/drivers/media/i2c/
- install -m 755 _kmod_build_${kernel_version%%___*}/drivers/media/pci/intel/ipu6/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/drivers/media/pci/intel/ipu6/
- if [ -f _kmod_build_${kernel_version%%___*}/intel_vsc.ko* ]; then
- install -m 755 _kmod_build_${kernel_version%%___*}/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}
- fi
+ install -m 755 _kmod_build_${kernel_version%%___*}/drivers/media/pci/intel/ipu6/psys/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}/drivers/media/pci/intel/ipu6/psys/
+ install -m 755 _kmod_build_${kernel_version%%___*}/*.ko %{buildroot}%{kmodinstdir_prefix}/${kernel_version%%___*}/%{kmodinstdir_postfix}
done
%{?akmod_install}
%changelog
+* Thu Jan 30 2025 Hans de Goede <hdegoede(a)redhat.com> - 0.0-19.20250115git13c466e
+- Update to latest upstream
+- Drop iVSC drivers, these are part of the mainline kernel now
+- Integrate USBIO drivers for IO chip used on Meteor Lake models
+- Now only builds psys and always uses isys from mainline
+- Fix building against 6.13 kernels
+
* Wed Jan 29 2025 RPM Fusion Release Engineering <sergiomb(a)rpmfusion.org> - 0.0-18.20240624gitaecec2a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
diff --git a/sources b/sources
index 82186ae..43aa3cc 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (ipu6-drivers-aecec2a.tar.gz) = dca9049029cc36583e7cea8bb1f91e51f6487cc63494e4e36961f1a08d0f4ef60c1938452efa17a4d9d1ec0523e76e148b1b5b37e9d0d56da24d3272eb07d09a
-SHA512 (ivsc-driver-a6dccbb.tar.gz) = 10e0c4c24d9f7e3ffb99aa36808663fec3b6a020b22c1625da2548c5939ee0ae532a0f7e48ed5701b67233bb430e0dce65ea64870b253d83ba586ff427d35551
+SHA512 (ipu6-drivers-13c466e.tar.gz) = f85b3d10bbae40a756a82b0867fae312cf1ceb0d720822ef595c5ea756b383a01991609c08306b3ebffc7d7d20812de5570267f7bb915fab682db8fcf8b09d93
+SHA512 (usbio-drivers-450939f.tar.gz) = 8dfb3b0c940c652727bfbd65424b0caf6c29e912eb5f2fccb2f6eb64fedb6ad977167cc46f15c449981f1ca2c2ccf23e3bbbd9f0bb8ab7385eaf5a184c31a7c5
1 month
[ldoce5viewer] unresolved deps python3-qt5-webkit
by Leigh Scott
commit 8cb2263d24dda47a3dfaa451d06eb4048f6ef16c
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Sat Feb 1 01:39:35 2025 +0000
unresolved deps python3-qt5-webkit
.gitignore | 2 -
dead.package | 1 +
...ewer-0001-Adopt-to-new-inkscape-arguments.patch | 22 -
...e5viewer-Fix-for-new-inkscape-and-python3.patch | 86 -
...oce5viewer-not-starting-after-sip-upgrade.patch | 23 -
ldoce5viewer-port-to-qt5.patch | 528 ----
ldoce5viewer-remove-autogenerated-file.patch | 2560 --------------------
ldoce5viewer.spec | 237 --
py312_fix.patch | 85 -
sources | 1 -
10 files changed, 1 insertion(+), 3544 deletions(-)
---
diff --git a/dead.package b/dead.package
new file mode 100644
index 0000000..68ac209
--- /dev/null
+++ b/dead.package
@@ -0,0 +1 @@
+unresolved deps python3-qt5-webkit
1 month
[xmms2-freeworld] Update to 0.9.4
by Leigh Scott
commit e2bb6d8557a079b9d4ff25a92082cd51df2d2b7e
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Sat Feb 1 01:33:23 2025 +0000
Update to 0.9.4
.gitignore | 1 +
sources | 2 +-
xmms2-freeworld.spec | 7 +++++--
3 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index f888d0f..7157d38 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
xmms2-0.8DrO_o.tar.bz2
/xmms2-0.9.3.tar.xz
+/xmms2-0.9.4.tar.xz
diff --git a/sources b/sources
index 57c3fed..a6b9e97 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (xmms2-0.9.3.tar.xz) = 03f2f6b66a35a8e80fdba3afb2a550c19ce2b7b6d53c63c7a735eb787f79b27a325b0715a31544e87c86e386f54a5a9a89aa3a9e81ae5ed29e362bd7b5bfa1ad
+SHA512 (xmms2-0.9.4.tar.xz) = 71075d41a49983624b87d5c80b0d58283fe53146ecad9b8d37d96545881bfec4e6de30eb1463fad37a8f8a3f3ebb58c12e10eecd998d9aaff7f3c1bdaef83bc9
diff --git a/xmms2-freeworld.spec b/xmms2-freeworld.spec
index 8d015bf..c63cc1f 100644
--- a/xmms2-freeworld.spec
+++ b/xmms2-freeworld.spec
@@ -1,7 +1,7 @@
Name: xmms2-freeworld
Summary: Plugins for XMMS2 that cannot be included in Fedora
-Version: 0.9.3
-Release: 5%{?dist}
+Version: 0.9.4
+Release: 1%{?dist}
License: LGPL-2.1-or-later AND GPL-2.0-or-later AND BSD-3-Clause
URL: http://wiki.xmms2.xmms.se/
# Fedora's xmms2 has to use a sanitized tarball, we don't.
@@ -111,6 +111,9 @@ chmod +x %{buildroot}%{_libdir}/xmms2/*
%{_libdir}/xmms2/libxmms_mp4.so
%changelog
+* Sat Feb 01 2025 Leigh Scott <leigh123linux(a)gmail.com> - 0.9.4-1
+- Update to 0.9.4
+
* Wed Jan 29 2025 RPM Fusion Release Engineering <sergiomb(a)rpmfusion.org> - 0.9.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
1 month