diff options
author | Adrian Schmutzler <freifunk@adrianschmutzler.de> | 2019-09-22 11:57:13 +0200 |
---|---|---|
committer | David Bauer <mail@david-bauer.net> | 2019-10-13 21:48:58 +0200 |
commit | 5b6a80909280cafcb1e28ca120eed6922d68dc5a (patch) | |
tree | 5b779cd9deec7067178b20a329d48d663b4a6820 /target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom | |
parent | c1388a2deb00b65ee4a06c0a1d4c461f2194ef38 (diff) | |
download | upstream-5b6a80909280cafcb1e28ca120eed6922d68dc5a.tar.gz upstream-5b6a80909280cafcb1e28ca120eed6922d68dc5a.tar.bz2 upstream-5b6a80909280cafcb1e28ca120eed6922d68dc5a.zip |
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 <freifunk@adrianschmutzler.de>
[rebase on latest master; add mpc85xx]
Signed-off-by: David Bauer <mail@david-bauer.net>
Diffstat (limited to 'target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom')
-rw-r--r-- | target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom | 36 |
1 files changed, 6 insertions, 30 deletions
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 ;; |