ipq806x: migrate wifi configuration device paths for 6.12 kernel

The device tree PCIe host node names have 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/18989
(cherry picked from commit ae70dbc267)

Backport the migration script that can also work backward, migrating
from 6.12 to 6.6. Like going from main/master to stable 24.10.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/20739
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Shiji Yang 2025-11-11 23:03:43 +02:00 committed by Christian Marangi
parent 42ca1612a2
commit b01c68ddbd
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7

View File

@ -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