42 lines
1.2 KiB
Text
42 lines
1.2 KiB
Text
|
#!/bin/sh
|
||
|
|
||
|
# The pcie-controller device was renamed to pcie in Linux kernel 4.14
|
||
|
# commit 28fbb9c539e2 ("ARM: dts: marvell: fix PCI bus dtc warnings").
|
||
|
# This script migrates the path in the UCI configuration from the old
|
||
|
# name to the new name and also back, when am upgrade or downgrade is
|
||
|
# done. It checks if the name exists before changing the configuration.
|
||
|
# This has to be done before the 10-wifi-detect script from mac80211 is
|
||
|
# executed because this would add the devices again under the new path
|
||
|
# name.
|
||
|
|
||
|
. /lib/functions.sh
|
||
|
|
||
|
PATH_CHANGED=0
|
||
|
|
||
|
rename_wifi_path() {
|
||
|
local path_old=$(uci get wireless.${1}.path)
|
||
|
local path_new=$(echo ${path_old} | sed "${2}")
|
||
|
|
||
|
if [ -e "/sys/devices/platform/${path_new}" ] && [ ${path_old} != ${path_new} ]
|
||
|
then
|
||
|
uci set wireless.${1}.path=${path_new}
|
||
|
PATH_CHANGED=1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
rename_wifi_path_list() {
|
||
|
# migration from kernel 4.9 to 4.14
|
||
|
rename_wifi_path $1 "s/soc:pcie-controller/soc:pcie/"
|
||
|
# migration from kernel 4.14 to 4.9
|
||
|
rename_wifi_path $1 "s/soc:pcie/soc:pcie-controller/"
|
||
|
}
|
||
|
|
||
|
[ "${ACTION}" = "add" ] && {
|
||
|
[ ! -e /etc/config/wireless ] && return
|
||
|
|
||
|
config_load wireless
|
||
|
config_foreach rename_wifi_path_list wifi-device
|
||
|
|
||
|
[ "$PATH_CHANGED" = "1" ] && uci commit wireless
|
||
|
}
|