aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/base-files/etc/hotplug.d
diff options
context:
space:
mode:
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>2019-09-22 11:57:13 +0200
committerDavid Bauer <mail@david-bauer.net>2019-10-13 21:48:58 +0200
commit5b6a80909280cafcb1e28ca120eed6922d68dc5a (patch)
tree5b779cd9deec7067178b20a329d48d663b4a6820 /target/linux/mpc85xx/base-files/etc/hotplug.d
parentc1388a2deb00b65ee4a06c0a1d4c461f2194ef38 (diff)
downloadupstream-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/mpc85xx/base-files/etc/hotplug.d')
-rw-r--r--target/linux/mpc85xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom36
1 files changed, 7 insertions, 29 deletions
diff --git a/target/linux/mpc85xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/mpc85xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index dc66226d7b..bcde02593a 100644
--- a/target/linux/mpc85xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/mpc85xx/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -1,25 +1,8 @@
#!/bin/sh
-FW_FILE="/lib/firmware/$FIRMWARE"
+[ -e /lib/firmware/$FIRMWARE ] && exit 0
-ath9k_eeprom_die() {
- echo "ath9k eeprom: " "$*" >&2
- exit 1
-}
-
-ath9k_eeprom_extract() {
- local part=$1
- local offset=$(($2))
- local count=$(($3))
- local mtd
-
- mtd=$(find_mtd_chardev $part)
- [ -n "$mtd" ] || \
- ath9k_eeprom_die "no mtd device found for partition $part"
-
- dd if=$mtd bs=$offset skip=1 count=1 2>/dev/null | dd of=$FW_FILE bs=$count count=1 2>/dev/null || \
- ath9k_eeprom_die "failed to extract from $mtd"
-}
+. /lib/functions/caldata.sh
tpl_set_wireless_mac()
{
@@ -29,25 +12,20 @@ tpl_set_wireless_mac()
mac=$(mtd_get_mac_binary u-boot 0x4fc00)
mac=$(macaddr_add $mac $offset)
- macaddr_2bin $mac | dd bs=1 count=6 seek=2 conv=notrunc of=$FW_FILE 2>/dev/null
+ macaddr_2bin $mac | dd bs=1 count=6 seek=2 conv=notrunc of=/lib/firmware/$FIRMWARE 2>/dev/null
}
-[ -e $FW_FILE ] && exit 0
-
-. /lib/functions.sh
-. /lib/functions/system.sh
-
board=$(board_name)
case "$FIRMWARE" in
"pci_wmac0.eeprom")
case $board in
tplink,tl-wdr4900-v1)
- ath9k_eeprom_extract "caldata" 0x1000 0x800
+ caldata_extract "caldata" 0x1000 0x800
tpl_set_wireless_mac 0
;;
*)
- ath9k_eeprom_die "board $board is not supported yet"
+ caldata_die "board $board is not supported yet"
;;
esac
;;
@@ -55,11 +33,11 @@ case "$FIRMWARE" in
"pci_wmac1.eeprom")
case $board in
tplink,tl-wdr4900-v1)
- ath9k_eeprom_extract "caldata" 0x5000 0x800
+ caldata_extract "caldata" 0x5000 0x800
tpl_set_wireless_mac -1
;;
*)
- ath9k_eeprom_die "board $board is not supported yet"
+ caldata_die "board $board is not supported yet"
;;
esac
;;