mac80211: fixes ath10k sdio support

This commit is contained in:
Kyosuke Nekoyashiki 2023-02-23 18:10:31 +09:00 committed by aiamadeus
parent edcc283381
commit 85fc52c36e
3 changed files with 16 additions and 3 deletions

View File

@ -0,0 +1,12 @@
--- a/drivers/net/wireless/ath/ath10k/debug.c
+++ b/drivers/net/wireless/ath/ath10k/debug.c
@@ -1255,6 +1255,9 @@ static int ath10k_debug_cal_data_fetch(struct ath10k *ar)
if (ar->hw_params.cal_data_len == 0)
return -EOPNOTSUPP;
+ if (ar->hif.bus == ATH10K_BUS_SDIO)
+ return -EINVAL;
+
hi_addr = host_interest_item_address(HI_ITEM(hi_board_data));
ret = ath10k_hif_diag_read(ar, hi_addr, &addr, sizeof(addr));

View File

@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -3443,6 +3443,16 @@ int ath10k_core_register(struct ath10k *
@@ -3443,6 +3443,17 @@ int ath10k_core_register(struct ath10k *
queue_work(ar->workqueue, &ar->register_work);
@ -26,7 +26,8 @@ Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
+ * Forcing the work to be done immediately works around this problem
+ * but may also delay the boot when firmware images cannot be found.
+ */
+ flush_workqueue(ar->workqueue);
+ if (ar->hif.bus != ATH10K_BUS_SDIO)
+ flush_workqueue(ar->workqueue);
+
return 0;
}

View File

@ -8,7 +8,7 @@ define Device/ariaboard_photonicat
SOC := rk3568
UBOOT_DEVICE_NAME := photonicat-rk3568
IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r5s | pine64-img | gzip | append-metadata
DEVICE_PACKAGES := ar3k-firmware pcat-manager
DEVICE_PACKAGES := ath10k-firmware-qca9377-sdio kmod-ath10k kmod-ath10k-sdio pcat-manager
endef
TARGET_DEVICES += ariaboard_photonicat