]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ipq40xx: migrate wifi configuration device paths for 6.12 kernel
authorShiji Yang <yangshiji66@outlook.com>
Wed, 18 Jun 2025 11:50:39 +0000 (19:50 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Sun, 20 Jul 2025 13:33:03 +0000 (15:33 +0200)
The device tree PCIe host node name has been changed in the new
6.12 kernel[1]. Hence we have to update the wifi device path to
make sure it can work properly.

This script is based on:
target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.12.y&id=07299ba2e7d98045e6b522f7c5b97f402b15bc82
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18725
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/ipq40xx/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate [new file with mode: 0644]

diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate b/target/linux/ipq40xx/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate
new file mode 100644 (file)
index 0000000..fdacfa5
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# This must run before 10-wifi-detect
+
+[ "${ACTION}" = "add" ] || return
+
+. /lib/functions.sh
+. /lib/functions/system.sh
+
+do_migrate_radio()
+{
+       local config="$1"
+
+       config_get from "$config" path
+
+       to=${from/pci\//pcie\/}
+
+       # Checks if kernel version is less than 6.12.0, if it is and the path is
+       # using the new format, then path should be migrated to the old format.
+       [ "$(get_linux_version)" -lt "612000" ] && to=${from/pcie\//pci\/}
+
+       [ "$from" = "$to" ] && return
+
+       uci set "wireless.${config}.path=${to}"
+       WIRELESS_CHANGED=true
+
+       logger -t wifi-migrate "Updated path of wireless.${config} from '${from}' to '${to}'"
+}
+
+migrate_radio()
+{
+       config_load wireless
+
+       config_foreach do_migrate_radio wifi-device
+}
+
+WIRELESS_CHANGED=false
+
+case "$(board_name)" in
+*)
+       migrate_radio
+       ;;
+esac
+
+$WIRELESS_CHANGED && uci commit wireless
+
+exit 0