11-ath10k-caldata 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/sh
  2. ath10kcal_die() {
  3. echo "ath10cal: " "$*"
  4. exit 1
  5. }
  6. ath10kcal_extract() {
  7. local part=$1
  8. local offset=$2
  9. local count=$3
  10. local mtd
  11. mtd=$(find_mtd_chardev $part)
  12. [ -n "$mtd" ] || \
  13. ath10kcal_die "no mtd device found for partition $part"
  14. dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
  15. ath10kcal_die "failed to extract calibration data from $mtd"
  16. }
  17. [ -e /lib/firmware/$FIRMWARE ] && exit 0
  18. . /lib/functions.sh
  19. . /lib/functions/system.sh
  20. board=$(board_name)
  21. case "$FIRMWARE" in
  22. "ath10k/pre-cal-ahb-a000000.wifi.bin")
  23. case "$board" in
  24. avm,fritzbox-4040)
  25. /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
  26. ;;
  27. glinet,gl-b1300 |\
  28. qcom,ap-dk01.1-c1)
  29. ath10kcal_extract "ART" 4096 12064
  30. ;;
  31. openmesh,a42)
  32. ath10kcal_extract "0:ART" 4096 12064
  33. ;;
  34. esac
  35. ;;
  36. "ath10k/pre-cal-ahb-a800000.wifi.bin")
  37. case "$board" in
  38. avm,fritzbox-4040)
  39. /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
  40. ;;
  41. glinet,gl-b1300 |\
  42. qcom,ap-dk01.1-c1)
  43. ath10kcal_extract "ART" 20480 12064
  44. ;;
  45. openmesh,a42)
  46. ath10kcal_extract "0:ART" 20480 12064
  47. ;;
  48. esac
  49. ;;
  50. *)
  51. exit 1
  52. ;;
  53. esac