aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorShiji Yang <yangshiji66@qq.com>2022-03-15 00:16:15 +0800
committerChristian Lamparter <chunkeey@gmail.com>2022-03-26 02:02:44 +0100
commit2e6d19ee32399e37c7545aefc57d41541a406d55 (patch)
tree4c1db4f7f6e2dd0f2bcce741d92abdbff8a1b070 /target/linux
parent638771509383cf36617c49b9cc1e0c4a9aedaa0d (diff)
downloadupstream-2e6d19ee32399e37c7545aefc57d41541a406d55.tar.gz
upstream-2e6d19ee32399e37c7545aefc57d41541a406d55.tar.bz2
upstream-2e6d19ee32399e37c7545aefc57d41541a406d55.zip
ramips: fix wifi mac address of HiWiFi series devices
For HiWiFi series devices, label_mac can be read from bdinfo partition, and lan_mac, wlan2g_mac are same as the label_mac. Converting label_mac to wlan5g_mac only needs to unset 6th bit. (It seems that all HiWiFi's label_mac start with D4:EE) For example: label D4:EE:07:32:84:88 lan D4:EE:07:32:84:88 wan D4:EE:07:32:84:89 wlan2g D4:EE:07:32:84:88 wlan5g D0:EE:07:32:84:88 Tested on HiWiFi HC5661. Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ramips/mt7620/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac26
-rw-r--r--target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac7
-rw-r--r--target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac22
3 files changed, 55 insertions, 0 deletions
diff --git a/target/linux/ramips/mt7620/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7620/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
new file mode 100644
index 0000000000..aa0ad99158
--- /dev/null
+++ b/target/linux/ramips/mt7620/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -0,0 +1,26 @@
+[ "$ACTION" == "add" ] || exit 0
+
+PHYNBR=${DEVPATH##*/phy}
+
+[ -n $PHYNBR ] || exit 0
+
+. /lib/functions.sh
+. /lib/functions/system.sh
+
+board=$(board_name)
+
+case "$board" in
+ hiwifi,hc5661)
+ label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
+ [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
+ echo -n "$label_mac" > /sys${DEVPATH}/macaddress
+ ;;
+ hiwifi,hc5761|\
+ hiwifi,hc5861)
+ label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
+ [ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
+ echo -n "$label_mac" > /sys${DEVPATH}/macaddress
+ [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
+ macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
+ ;;
+esac
diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
index d018c1de1b..2a47f926be 100644
--- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
+++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -32,6 +32,13 @@ case "$board" in
[ "$PHYNBR" = "1" ] && \
macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1 > /sys${DEVPATH}/macaddress
;;
+ hiwifi,hc5962)
+ label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
+ [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
+ echo -n "$label_mac" > /sys${DEVPATH}/macaddress
+ [ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
+ macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
+ ;;
iptime,a3002mesh|\
iptime,a3004t)
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
diff --git a/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
new file mode 100644
index 0000000000..b8f8faee9c
--- /dev/null
+++ b/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
@@ -0,0 +1,22 @@
+[ "$ACTION" == "add" ] || exit 0
+
+PHYNBR=${DEVPATH##*/phy}
+
+[ -n $PHYNBR ] || exit 0
+
+. /lib/functions.sh
+. /lib/functions/system.sh
+
+board=$(board_name)
+
+case "$board" in
+ hiwifi,hc5661a|\
+ hiwifi,hc5761a|\
+ hiwifi,hc5861b)
+ label_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
+ [ "$PHYNBR" = "0" ] && [ -n "$label_mac" ] && \
+ echo -n "$label_mac" > /sys${DEVPATH}/macaddress
+ [ "$PHYNBR" = "1" ] && [ -n "$label_mac" ] && \
+ macaddr_unsetbit "$label_mac" 6 > /sys${DEVPATH}/macaddress
+ ;;
+esac