aboutsummaryrefslogtreecommitdiff
path: root/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
blob: 4c5019cf5bd247d0e9f1f5a546c0e5b02b39e8ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/sh

[ -e /lib/firmware/$FIRMWARE ] && exit 0

. /lib/functions/caldata.sh

board=$(board_name)

dt_base64_extract() {
	local target_dir="/sys$DEVPATH"
	local source="$target_dir/../../of_node/qcom,ath10k-calibration-data-base64"

	[ -e "$source" ] || caldata_die "cannot find base64 calibration data: $source"
	[ -d "$target_dir" ] || \
		caldata_die "no sysfs dir to write: $target"

	echo 1 > "$target_dir/loading"
	base64decode.uc "$source" > "$target_dir/data"
	if [ $? != 0 ]; then
		echo 1 > "$target_dir/loading"
		caldata_die \
			"failed to write calibration data to $target_dir/data"
	else
		echo 0 > "$target_dir/loading"
	fi
}

case "$FIRMWARE" in
"ath10k/cal-pci-0000:01:00.0.bin")
	case "$board" in
	asus,onhub |\
	tplink,onhub)
		dt_base64_extract
		;;
	meraki,mr52)
		CI_UBIPART=art
		caldata_extract_ubi "ART" 0x1000 0x844
		;;
	esac
	;;
"ath10k/pre-cal-pci-0000:01:00.0.bin")
	case $board in
	asrock,g10)
		caldata_extract "0:art" 0x1000 0x2f20
		;;
	linksys,ea7500-v1 |\
	linksys,ea8500)
		caldata_extract "art" 0x1000 0x2f20
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) 1)
		;;
	meraki,mr42)
		CI_UBIPART=art
		caldata_extract_ubi "ART" 0x1000 0x2f20
		;;
	nokia,ac400i)
		caldata_extract "0:art" 0x1000 0x2f20
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:appsblenv ethaddr) +2)
		;;
	zyxel,nbg6817)
		caldata_extract "0:art" 0x1000 0x2f20
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:appsblenv ethaddr) 1)
		;;
	esac
	;;
"ath10k/cal-pci-0001:01:00.0.bin")
	case "$board" in
	asus,onhub |\
	tplink,onhub)
		dt_base64_extract
		;;
	esac
	;;
"ath10k/pre-cal-pci-0001:01:00.0.bin")
	case $board in
	asrock,g10)
		caldata_extract "0:art" 0x5000 0x2f20
		;;
	edgecore,ecw5410)
		caldata_extract "0:art" 0x1000 0x2f20
		;;
	linksys,ea7500-v1 |\
	linksys,ea8500)
		caldata_extract "art" 0x5000 0x2f20
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) 2)
		;;
	meraki,mr42 |\
	meraki,mr52)
		CI_UBIPART=art
		caldata_extract_ubi "ART" 0x5000 0x2f20
		;;
	nokia,ac400i)
		caldata_extract "0:art" 0x5000 0x2f20
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:appsblenv ethaddr) +3)
		;;
	zyxel,nbg6817)
		caldata_extract "0:art" 0x5000 0x2f20
		ath10k_patch_mac $(mtd_get_mac_ascii 0:appsblenv ethaddr)
		;;
	esac
	;;
"ath10k/cal-pci-0002:01:00.0.bin")
	case "$board" in
	asus,onhub |\
	tplink,onhub)
		dt_base64_extract
		;;
	meraki,mr42)
		CI_UBIPART=art
		caldata_extract_ubi "ART" 0x9000 0x844
		;;
	esac
	;;
"ath10k/pre-cal-pci-0002:01:00.0.bin")
	case $board in
	edgecore,ecw5410)
		caldata_extract "0:art" 0x5000 0x2f20
		;;
	meraki,mr52)
		CI_UBIPART=art
		caldata_extract_ubi "ART" 0x9000 0x2f20
		;;
	esac
	;;
*)
	exit 1
	;;
esac