Просмотр исходного кода

ath79: convert ath10k pre-calibration data to NVMEM (ASCII MAC)

This patch converts ath10k pre-calibration data to NVMEM format for
wave 2 devices with mtd ASCII MAC address. The "pre-calibration"
NVMEM cell size is 0x2f20. All unportable MAC address settings have
been moved to '10_fix_wifi_mac' scripts.

Signed-off-by: Shiji Yang <[email protected]>
Shiji Yang 2 лет назад
Родитель
Сommit
7e71eef5ed

+ 12 - 0
target/linux/ath79/dts/qca9561_nec_wf1200cr.dts

@@ -105,6 +105,16 @@
 				label = "art";
 				reg = <0x7f0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					precal_art_5000: pre-calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
 			};
 		};
 	};
@@ -156,6 +166,8 @@
 	wifi@0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_5000>;
+		nvmem-cell-names = "pre-calibration";
 	};
 };
 

+ 12 - 0
target/linux/ath79/dts/qca9563_nec_wg1200cr.dts

@@ -120,6 +120,16 @@
 				label = "art";
 				reg = <0x7f0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					precal_art_5000: pre-calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
 			};
 		};
 	};
@@ -157,6 +167,8 @@
 	wifi@0,0 {
 		compatible = "pci168c,0056";
 		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_5000>;
+		nvmem-cell-names = "pre-calibration";
 	};
 };
 

+ 17 - 0
target/linux/ath79/dts/qca9563_phicomm_k2t.dts

@@ -48,6 +48,13 @@
 
 &pcie {
 	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_5000>;
+		nvmem-cell-names = "pre-calibration";
+	};
 };
 
 &spi {
@@ -91,6 +98,16 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					precal_art_5000: pre-calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
 			};
 		};
 	};

+ 17 - 0
target/linux/ath79/dts/qca9563_tplink_deco-s4-v2.dts

@@ -53,6 +53,13 @@
 
 &pcie {
 	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_5000>;
+		nvmem-cell-names = "pre-calibration";
+	};
 };
 
 &mdio0 {
@@ -106,6 +113,16 @@
 				label = "art";
 				reg = <0x1f0000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					precal_art_5000: pre-calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
 			};
 
 			partition@200000 {

+ 0 - 21
target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata

@@ -3,7 +3,6 @@
 [ -e /lib/firmware/$FIRMWARE ] && exit 0
 
 . /lib/functions/caldata.sh
-. /lib/functions/k2t.sh
 
 board=$(board_name)
 
@@ -182,26 +181,6 @@ case "$FIRMWARE" in
 		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
 		;;
-	nec,wf1200cr|\
-	nec,wg1200cr)
-		caldata_extract "art" 0x5000 0x2f20
-		ath10k_patch_mac $(mtd_get_mac_ascii devdata wlan5mac)
-		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-		;;
-	phicomm,k2t)
-		caldata_extract "art" 0x5000 0x2f20
-		ath10k_patch_mac $(k2t_get_mac "5g_mac")
-		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-		;;
-	tplink,deco-s4-v2)
-		caldata_extract "art" 0x5000 0x2f20
-		base_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
-		ath10k_patch_mac $(macaddr_add $base_mac 2)
-		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
-			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
-		;;
 	esac
 	;;
 *)

+ 13 - 0
target/linux/ath79/generic/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac

@@ -59,13 +59,26 @@ case "$board" in
 		[ "$PHYNBR" -eq 1 ] && \
 			macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1 > /sys${DEVPATH}/macaddress
 		;;
+	nec,wf1200cr|\
+	nec,wg1200cr)
+		[ "$PHYNBR" -eq 0 ] && \
+			mtd_get_mac_ascii devdata wlan5mac > /sys${DEVPATH}/macaddress
+		;;
 	phicomm,k2t)
+		[ "$PHYNBR" -eq 0 ] && \
+			k2t_get_mac "5g_mac" > /sys${DEVPATH}/macaddress
 		# The K2T factory firmware does use LAN mac address as the 2.4G wifi mac address
 		[ "$PHYNBR" -eq 1 ] && \
 			k2t_get_mac "lan_mac" > /sys${DEVPATH}/macaddress
 		;;
 	siemens,ws-ap3610)
 		mtd_get_mac_ascii cfg1 RADIOADDR${PHYNBR} > /sys${DEVPATH}/macaddress
+		;;
+	tplink,deco-s4-v2)
+		base_mac=$(mtd_get_mac_encrypted_deco $(find_mtd_part config))
+		[ "$PHYNBR" -eq 0 ] && \
+			macaddr_add $base_mac 2 > /sys${DEVPATH}/macaddress
+
 		;;
 	trendnet,tew-823dru)
 		# set the 2.4G interface mac address to LAN MAC