Synchronize the ath11k backports with the current ath-next tree. This backports several memory leak issues, PCI IRQ fixup, peer add locking fix as well as IPQ5018 support, though IPQ5018 support is unused for now. This allows to easily backport further fixes as cherry picking them has started requiring manual conflict resolution. Signed-off-by: Robert Marko <robimarko@gmail.com>
51 lines
2.0 KiB
Diff
51 lines
2.0 KiB
Diff
From f117276638b7600b981b3fe28550823cfbe1ef23 Mon Sep 17 00:00:00 2001
|
|
From: Douglas Anderson <dianders@chromium.org>
|
|
Date: Wed, 1 Feb 2023 08:54:42 -0800
|
|
Subject: [PATCH] wifi: ath11k: Use platform_get_irq() to get the interrupt
|
|
|
|
As of commit a1a2b7125e10 ("of/platform: Drop static setup of IRQ
|
|
resource from DT core"), we need to use platform_get_irq() instead of
|
|
platform_get_resource() to get our IRQs because
|
|
platform_get_resource() simply won't get them anymore.
|
|
|
|
This was already fixed in several other Atheros WiFi drivers,
|
|
apparently in response to Zeal Robot reports. An example of another
|
|
fix is commit 9503a1fc123d ("ath9k: Use platform_get_irq() to get the
|
|
interrupt"). ath11k seems to have been missed in this effort, though.
|
|
|
|
Without this change, WiFi wasn't coming up on my Qualcomm sc7280-based
|
|
hardware. Specifically, "platform_get_resource(pdev, IORESOURCE_IRQ,
|
|
i)" was failing even for i=0.
|
|
|
|
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
|
|
|
|
Fixes: a1a2b7125e10 ("of/platform: Drop static setup of IRQ resource from DT core")
|
|
Fixes: 00402f49d26f ("ath11k: Add support for WCN6750 device")
|
|
Signed-off-by: Douglas Anderson <dianders@chromium.org>
|
|
Tested-by: Jun Yu <junyuu@chromium.org>
|
|
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/20230201084131.v2.1.I69cf3d56c97098287fe3a70084ee515098390b70@changeid
|
|
---
|
|
drivers/net/wireless/ath/ath11k/ahb.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/ahb.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
|
|
@@ -874,11 +874,11 @@ static int ath11k_ahb_setup_msi_resource
|
|
ab->pci.msi.ep_base_data = int_prop + 32;
|
|
|
|
for (i = 0; i < ab->pci.msi.config->total_vectors; i++) {
|
|
- res = platform_get_resource(pdev, IORESOURCE_IRQ, i);
|
|
- if (!res)
|
|
- return -ENODEV;
|
|
+ ret = platform_get_irq(pdev, i);
|
|
+ if (ret < 0)
|
|
+ return ret;
|
|
|
|
- ab->pci.msi.irqs[i] = res->start;
|
|
+ ab->pci.msi.irqs[i] = ret;
|
|
}
|
|
|
|
set_bit(ATH11K_FLAG_MULTI_MSI_VECTORS, &ab->dev_flags);
|