X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fwigyori.git;a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Fbase-files%2Fetc%2Fhotplug.d%2Ffirmware%2F11-ath10k-caldata;h=5d01701aa89a9e0fb387d10c9c6e72e8be0f1129;hp=d96f40d708fd8d27ec3c864c5eb1b7e451df870e;hb=c0742307a18178ee7d2cee1fc6b0e199ccb1e1fa;hpb=34958c826915cf864833ed8ba6e5b49d44c6cb41 diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index d96f40d708..5d01701aa8 100644 --- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -18,12 +18,18 @@ ath10kcal_extract() { local part=$1 local offset=$2 local count=$3 - local mtd + local mtd cal_size mtd=$(find_mtd_chardev $part) [ -n "$mtd" ] || \ ath10kcal_die "no mtd device found for partition $part" + # Check that the calibration data size in header equals the desired size + cal_size=$(dd if=$mtd bs=2 count=1 skip=$(( $offset / 2 )) conv=swab 2>/dev/null | hexdump -ve '1/2 "%d"') + + [ "$count" = "$cal_size" ] || \ + ath10kcal_die "no calibration data found in $part" + dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \ ath10kcal_die "failed to extract calibration data from $mtd" } @@ -54,16 +60,23 @@ case "$FIRMWARE" in ath10kcal_extract "ART" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16) ;; - archer-c7-v4|\ archer-c25-v1|\ tl-wdr6500-v2) ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -2) ;; - cf-e355ac|\ + archer-c7-v4) + ath10kcal_extract "art" 20480 2116 + ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1) + ;; + cf-e355ac-v1|\ cf-e380ac-v1|\ cf-e380ac-v2|\ dlan-pro-1200-ac|\ + e1700ac-v2|\ + e600gac-v2|\ + oolite-v5.2|\ + oolite-v5.2-dev|\ sr3200|\ xd3200) ath10kcal_extract "art" 20480 2116 @@ -86,6 +99,11 @@ case "$FIRMWARE" in ath10kcal_extract "caldata" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1) ;; + gl-ar750|\ + tl-wpa8630) + ath10kcal_extract "art" 20480 2116 + ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1) + ;; mc-mac1200r) ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) -1) @@ -94,18 +112,16 @@ case "$FIRMWARE" in ath10kcal_extract "caldata" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth1/address) +2) ;; - rb-952ui-5ac2nd) + rb-952ui-5ac2nd|\ + rb-wapg-5hact2hnd) ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116 ;; + re355|\ re450|\ tl-wr902ac-v1) ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2) ;; - tl-wpa8630) - ath10kcal_extract "art" 20480 2116 - ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1) - ;; unifiac-lite|\ unifiac-pro) ath10kcal_extract "EEPROM" 20480 2116 @@ -132,16 +148,29 @@ case "$FIRMWARE" in ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16) ;; rb-911g-5hpacd|\ + rb-921gs-5hpacd-r2|\ rb-962uigs-5hact2hnt) ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116 ;; + wlr8100) + ath10kcal_extract "art" 20480 2116 + ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1) + ;; esac ;; "ath10k/pre-cal-pci-0000:00:00.0.bin") case $board in archer-c58-v1|\ archer-c59-v1|\ - archer-c60-v1) + archer-c60-v1|\ + archer-c60-v2|\ + cf-e355ac-v2|\ + cf-e375ac) + ath10kcal_extract "art" 20480 12064 + ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \ + /lib/firmware/ath10k/QCA9888/hw2.0/board.bin + ;; + cf-e385ac) ath10kcal_extract "art" 20480 12064 ;; esac