mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
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);
|