Forráskód Böngészése

ipq806x: use nvmem for wifi mac

Userspace handling is deprecated.

Signed-off-by: Rosen Penev <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/16229
Signed-off-by: Hauke Mehrtens <[email protected]>
Rosen Penev 1 éve
szülő
commit
148f82ad45

+ 0 - 10
target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata

@@ -43,11 +43,6 @@ case "$FIRMWARE" 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
@@ -78,11 +73,6 @@ case "$FIRMWARE" in
 	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

+ 3 - 3
target/linux/ipq806x/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac

@@ -12,14 +12,14 @@ PHYNBR=${DEVPATH##*/phy}
 board=$(board_name)
 
 case "$board" in
-	ubnt,unifi-ac-hd)
-		macaddr_add $(mtd_get_mac_binary EEPROM 0x6) $(($PHYNBR + 1)) > /sys${DEVPATH}/macaddress
-		;;
 	extreme,ap3935)
 		echo "##### PHYNBR=$PHYNBR DEVPATH=$DEVPATH"
 		[ "$PHYNBR" = "0" ] && echo $(mtd_get_mac_ascii CFG1 RADIOADDR0) > /sys${DEVPATH}/macaddress
 		[ "$PHYNBR" = "1" ] && echo $(mtd_get_mac_ascii CFG1 RADIOADDR1) > /sys${DEVPATH}/macaddress
 		;;
+	linksys,ea7500-v1 |\
+	linksys,ea8500)
+		macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) $(($PHYNBR + 1)) > /sys${DEVPATH}/macaddress
 esac
 
 OPATH=${DEVPATH##/devices/platform/}

+ 28 - 0
target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-eax500.dtsi

@@ -52,10 +52,24 @@
 	status = "okay";
 
 	max-link-speed = <1>;
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_1000>;
+		nvmem-cell-names = "pre-calibration";
+	};
 };
 
 &pcie1 {
 	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&precal_art_5000>;
+		nvmem-cell-names = "pre-calibration";
+	};
 };
 
 &nand {
@@ -129,6 +143,20 @@
 				label = "art";
 				reg = <0x0c80000 0x0140000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					precal_art_1000: pre-calibration@1000 {
+						reg = <0x1000 0x2f20>;
+					};
+
+					precal_art_5000: pre-calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
 			};
 
 			partition@dc0000 {

+ 17 - 1
target/linux/ipq806x/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq8064-unifi-ac-hd.dts

@@ -190,7 +190,9 @@
 						};
 
 						macaddr_eeprom_6: macaddr@6 {
+							compatible = "mac-base";
 							reg = <0x6 0x6>;
+							#nvmem-cell-cells = <1>;
 						};
 					};
 				};
@@ -262,7 +264,7 @@
 	phy-mode = "sgmii";
 	qcom,id = <1>;
 
-	nvmem-cells = <&macaddr_eeprom_6>;
+	nvmem-cells = <&macaddr_eeprom_6 0>;
 	nvmem-cell-names = "mac-address";
 };
 
@@ -280,10 +282,24 @@
 
 &pcie0 {
 	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&macaddr_eeprom_6 1>;
+		nvmem-cell-names = "mac-address";
+	};
 };
 
 &pcie1 {
 	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+		nvmem-cells = <&macaddr_eeprom_6 2>;
+		nvmem-cell-names = "mac-address";
+	};
 };
 
 &tcsr {