From 5b6a80909280cafcb1e28ca120eed6922d68dc5a Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Sun, 22 Sep 2019 11:57:13 +0200 Subject: treewide: move calibration data extraction function to library This moves the almost identical calibration data extraction functions present multiple times in several targets to a single library file /lib/functions/caldata.sh. Functions are renamed with more generic names to merge different variants that only differ in their names. Most of the targets used find_mtd_chardev, while some used find_mtd_part inside the extraction code. To merge them, the more abundant version with find_mtd_chardev is used in the common code. Signed-off-by: Adrian Schmutzler [rebase on latest master; add mpc85xx] Signed-off-by: David Bauer --- .../etc/hotplug.d/firmware/11-ath10k-caldata | 28 ++--------------- .../etc/hotplug.d/firmware/12-ath9k-eeprom | 36 ++++------------------ 2 files changed, 9 insertions(+), 55 deletions(-) (limited to 'target/linux/lantiq/base-files/etc') 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 6d7682a7f3..5b03fb0e01 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 @@ -3,29 +3,7 @@ [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions.sh -. /lib/functions/system.sh -. /lib/upgrade/nand.sh - -ath10k_caldata_die() { - echo "ath10k caldata: " "$*" - exit 1 -} - -ath10k_caldata_extract_ubi() { - local part=$1 - local offset=$2 - local count=$3 - local ubidev=$(nand_find_ubi $CI_UBIPART) - local ubi - - ubi=$(nand_find_volume $ubidev $part) - [ -n "$ubi" ] || \ - ath10k_caldata_die "no UBI volume found for $part" - - 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" -} +. /lib/functions/caldata.sh ath10k_caldata_set_macaddr() { local macaddr=$1 @@ -39,11 +17,11 @@ case "$FIRMWARE" in board=$(board_name) case $board in bt,homehub-v5a) - ath10k_caldata_extract_ubi "caldata" 20480 2116 + caldata_extract_ubi "caldata" 0x5000 0x844 ath10k_caldata_set_macaddr $(macaddr_add $(mtd_get_mac_binary_ubi caldata 0x110c) +3) ;; *) - ath10k_caldata_die "board $board is not supported yet" + caldata_die "board $board is not supported yet" ;; esac ;; 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 2c4a5a1799..20160cb32b 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 @@ -3,15 +3,9 @@ [ -e /lib/firmware/$FIRMWARE ] && exit 0 -. /lib/functions.sh -. /lib/functions/system.sh +. /lib/functions/caldata.sh . /lib/upgrade/nand.sh -ath9k_eeprom_die() { - echo "ath9k eeprom: $*" - exit 1 -} - ath9k_eeprom_extract_raw() { local source=$1 local offset=$(($2)) @@ -28,25 +22,7 @@ ath9k_eeprom_extract_raw() { fi dd if=$source of=/lib/firmware/$FIRMWARE bs=$bs skip=$offset count=$size $conv 2>/dev/null || \ - ath9k_eeprom_die "failed to extract from $mtd" -} - -ath9k_eeprom_extract_reverse() { - local part=$1 - local offset=$2 - local count=$(($3)) - local mtd - local reversed - local caldata - - mtd=$(find_mtd_chardev "$part") - reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd) - - for byte in $reversed; do - caldata="\x${byte}${caldata}" - done - - printf "%b" "$caldata" > /lib/firmware/$FIRMWARE + caldata_die "failed to extract from $mtd" } ath9k_eeprom_extract() { @@ -57,7 +33,7 @@ ath9k_eeprom_extract() { mtd=$(find_mtd_chardev $part) [ -n "$mtd" ] || \ - ath9k_eeprom_die "no mtd device found for partition $part" + caldata_die "no mtd device found for partition $part" ath9k_eeprom_extract_raw $mtd $offset $swap } @@ -71,7 +47,7 @@ ath9k_ubi_eeprom_extract() { ubi=$(nand_find_volume $ubidev $part) [ -n "$ubi" ] || \ - ath9k_eeprom_die "no UBI volume found for $part" + caldata_die "no UBI volume found for $part" ath9k_eeprom_extract_raw /dev/$ubi $offset $swap } @@ -143,7 +119,7 @@ case "$FIRMWARE" in avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ avm,fritz7362sl) - ath9k_eeprom_extract_reverse "urlader" 0x1541 0x440 + caldata_extract_reverse "urlader" 0x1541 0x440 ;; avm,fritz7312|avm,fritz7320|avm,fritz7360sl) ath9k_eeprom_extract "urlader" 0x985 0 @@ -155,7 +131,7 @@ case "$FIRMWARE" in ath9k_eeprom_extract "boardconfig" 0x21000 0 ;; *) - ath9k_eeprom_die "board $board is not supported yet" + caldata_die "board $board is not supported yet" ;; esac ;; -- cgit v1.2.3