mvebu: Add basic support for WRT1900AC (v1) and Turris Omnia (pre 2019)
[librecmc/librecmc.git] / target / linux / mvebu / base-files / etc / hotplug.d / ieee80211 / 00-wifi-config-migrate
1 #!/bin/sh
2
3 # The pcie-controller device was renamed to pcie in Linux kernel 4.14
4 # commit 28fbb9c539e2 ("ARM: dts: marvell: fix PCI bus dtc warnings").
5 # This script migrates the path in the UCI configuration from the old
6 # name to the new name and also back, when am upgrade or downgrade is
7 # done. It checks if the name exists before changing the configuration.
8 # This has to be done before the 10-wifi-detect script from mac80211 is
9 # executed because this would add the devices again under the new path
10 # name.
11
12 . /lib/functions.sh
13
14 PATH_CHANGED=0
15
16 rename_wifi_path() {
17         local path_old=$(uci get wireless.${1}.path)
18         local path_new=$(echo ${path_old} | sed "${2}")
19
20         if [ -e "/sys/devices/platform/${path_new}" ] && [ ${path_old} != ${path_new} ]
21         then 
22                 uci set wireless.${1}.path=${path_new}
23                 PATH_CHANGED=1
24         fi
25 }
26
27 rename_wifi_path_list() {
28         # migration from kernel 4.9 to 4.14
29         rename_wifi_path $1 "s/soc:pcie-controller/soc:pcie/"
30         # migration from kernel 4.14 to 4.9
31         rename_wifi_path $1 "s/soc:pcie/soc:pcie-controller/"
32 }
33
34 [ "${ACTION}" = "add" ] && {
35         [ ! -e /etc/config/wireless ] && return
36
37         config_load wireless
38         config_foreach rename_wifi_path_list wifi-device
39
40         [ "$PATH_CHANGED" = "1" ] && uci commit wireless
41 }