ipq40xx: migrate wifi configuration device paths for 6.12 kernel

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>
This commit is contained in:
Shiji Yang 2025-06-18 19:50:39 +08:00 committed by Hauke Mehrtens
parent 8d2744dfe5
commit ac69d0510a

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