diff options
Diffstat (limited to 'target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata')
-rw-r--r-- | target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index dc95da7..2511ed6 100644 --- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -1,24 +1,31 @@ #!/bin/sh # Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom +[ -e /lib/firmware/$FIRMWARE ] && exit 0 + +. /lib/functions.sh +. /lib/functions/system.sh +. /lib/functions/lantiq.sh +. /lib/upgrade/nand.sh + ath10k_caldata_die() { echo "ath10k caldata: " "$*" exit 1 } -ath10k_caldata_extract() { +ath10k_caldata_extract_ubi() { local part=$1 local offset=$2 - local mtd + local count=$3 + local ubidev=$(nand_find_ubi $CI_UBIPART) + local ubi - . /lib/functions.sh + ubi=$(nand_find_volume $ubidev $part) + [ -n "$ubi" ] || \ + ath10k_caldata_die "no UBI volume found for $part" - 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" + dd if=/dev/$ubi of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \ + ath10k_caldata_die "failed to extract from $ubi" } ath10k_caldata_set_macaddr() { @@ -28,20 +35,13 @@ ath10k_caldata_set_macaddr() { 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_extract_ubi "caldata" 20480 2116 + ath10k_caldata_set_macaddr $(macaddr_add $(mtd_get_mac_binary_ubi caldata 4364) +3) ;; *) ath10k_caldata_die "board $board is not supported yet" |