openwrtv3/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
Martin Blumenstingl e9de6e5203 lantiq: do not "local" variables outside of a function
Older busybox versions allowed using the local keyword outside of
functions, whereas 1.25.0 (which was introduced in 06fa1c46fc) do not
allow this anymore (leading to the following error when executing the
script: "file: local: line nn: not in a function").

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-09-24 01:17:17 +02:00

51 lines
1.1 KiB
Bash

#!/bin/sh
# Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom
ath10k_caldata_die() {
echo "ath10k caldata: " "$*"
exit 1
}
ath10k_caldata_extract() {
local part=$1
local offset=$2
local mtd
. /lib/functions.sh
mtd=$(find_mtd_part $part)
[ -n "$mtd" ] || \
ath10k_caldata_die "no mtd device found for partition $part"
dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=2116 || \
ath10k_caldata_die "failed to extract from $mtd"
}
ath10k_caldata_set_macaddr() {
local macaddr=$1
macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \
conv=notrunc bs=1 seek=6 count=6
}
[ -e /lib/firmware/$FIRMWARE ] && exit 0
. /lib/functions.sh
. /lib/functions/system.sh
. /lib/functions/lantiq.sh
case "$FIRMWARE" in
"ath10k/cal-pci-0000:02:00.0.bin")
board=$(lantiq_board_name)
case $board in
BTHOMEHUBV5A)
lan_mac=$(mtd_get_mac_binary caldata 4364)
wifi_mac=$(macaddr_add "$lan_mac" 3)
ath10k_caldata_extract "caldata" 20480
ath10k_caldata_set_macaddr $wifi_mac
;;
*)
ath10k_caldata_die "board $board is not supported yet"
;;
esac
;;
esac