From 4d4462cc2ace4b044e99e9b22a24cb4d89c7db95 Mon Sep 17 00:00:00 2001
From: Robert Marko <robimarko@gmail.com>
Date: Tue, 30 Nov 2021 10:27:50 +0100
Subject: [PATCH] ipq40xx: mikrotik: provide BDF-s on demand

Since we now can pass the API 1 BDF-s aka board.bin to the ath10k
driver per radio lets use that to provide the BDF-s for MikroTik devices.

This also resolves the performance issues that happen as MikroTik changes
the boards and ships them under the same revision but they actually ship
with and require a different BDF.

Signed-off-by: Robert Marko <robimarko@gmail.com>
---
 .../etc/hotplug.d/firmware/11-ath10k-caldata  | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index c02b12dceb..e0b4eed6f2 100644
--- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -215,6 +215,29 @@ case "$FIRMWARE" in
 		;;
 	esac
 	;;
+"ath10k/QCA4019/hw1.0/board-ahb-a000000.wifi.bin")
+	case "$board" in
+	mikrotik,cap-ac |\
+	mikrotik,hap-ac2 |\
+	mikrotik,hap-ac3)
+		wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
+		( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x2f20 0x2f20 ) || \
+		( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x2f20 0x2f20 )
+		;;
+	esac
+	;;
+"ath10k/QCA4019/hw1.0/board-ahb-a800000.wifi.bin")
+	case "$board" in
+	mikrotik,cap-ac |\
+	mikrotik,hap-ac2 |\
+	mikrotik,hap-ac3 |\
+	mikrotik,sxtsq-5-ac)
+		wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
+		( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0xaf20 0x2f20 ) || \
+		( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_2" 0x2f20 0x2f20 )
+		;;
+	esac
+	;;
 *)
 	exit 1
 	;;
-- 
2.30.2