ath79/mikrotik: add function for loading ath9k caldata
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 12 Aug 2020 12:40:00 +0000 (14:40 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Thu, 13 Aug 2020 10:47:45 +0000 (12:47 +0200)
The commands to read ath9k caldata on mikrotik subtarget are
mostly repetitive, so let's put them into a function to make
writing and reading them easier.

This function will only be required when patching the MAC address.
For cases where it is put correctly into the calibration data by
the vendor, caldata_sysfsload_from_file can be used directly as
done for ath10k at the moment.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom

index 30a7759ef2481c3a36af23bcdd95ea80ad5879fc..f2cb1f774fe5f742fb82aa4612bd721dde238ab4 100644 (file)
@@ -4,6 +4,17 @@
 
 . /lib/functions/caldata.sh
 
+caldata_mikrotik_ath9k() {
+       local offset=$(($1))
+       local count=$(($2))
+       local macaddr=$3
+
+       caldata_from_file $wlan_data $offset $count /tmp/$FIRMWARE
+       ath9k_patch_mac "$macaddr" /tmp/$FIRMWARE
+       caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 $count
+       rm -f /tmp/$FIRMWARE
+}
+
 wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
 mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
 
@@ -14,16 +25,10 @@ case "$FIRMWARE" in
        case $board in
        mikrotik,routerboard-lhg-2nd|\
        mikrotik,routerboard-sxt-5nd-r2)
-               caldata_from_file $wlan_data 0x1000 0x440 /tmp/$FIRMWARE
-               ath9k_patch_mac $(macaddr_add "$mac_base" +1) /tmp/$FIRMWARE
-               caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 0x440
-               rm -f /tmp/$FIRMWARE
+               caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +1)
                ;;
        mikrotik,routerboard-wap-g-5hact2hnd)
-               caldata_from_file $wlan_data 0x1000 0x440 /tmp/$FIRMWARE
-               ath9k_patch_mac $(macaddr_add "$mac_base" +2) /tmp/$FIRMWARE
-               caldata_sysfsload_from_file /tmp/$FIRMWARE 0x0 0x440
-               rm -f /tmp/$FIRMWARE
+               caldata_mikrotik_ath9k 0x1000 0x440 $(macaddr_add "$mac_base" +2)
                ;;
        *)
                caldata_die "board $board is not supported yet"