aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/base-files/etc/hotplug.d/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/lantiq/base-files/etc/hotplug.d/firmware')
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata36
-rw-r--r--target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom3
2 files changed, 20 insertions, 19 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 dc95da78a5..2511ed6014 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"
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
index 8185bf1949..2776275ea2 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom
@@ -115,7 +115,8 @@ case "$FIRMWARE" in
ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_ascii uboot-env ethaddr) +2) 268 1 258
;;
BTHOMEHUBV5A)
- ath9k_eeprom_extract "caldata" 4096
+ ath9k_ubi_eeprom_extract "caldata" 4096
+ ath9k_patch_firmware_mac $(macaddr_add $(mtd_get_mac_binary_ubi caldata 4364) +2) 268 0 258
;;
DGN3500*)
ath9k_eeprom_extract "calibration" 61440