2023-12-14 05:33:02

by Karthikeyan Periyasamy

[permalink] [raw]
Subject: [PATCH] Revert "wifi: ath12k: use ATH12K_PCI_IRQ_DP_OFFSET for DP IRQ"

This reverts commit 1f1f7d548a00ebe50808cb1f580df9693e194a7c. The commit
caused bootup failure on QCN9274 hw2.0 platform. Incorrect hardcode DP
irq offset overwrite the CE irq, which caused the driver to miss the
mandatory bootup message from the firmware through the CE interrupt. This
occurs because the CE count differs between platforms. The revert has no
impact since the original change was based on an incorrect assumption.

Log:

ath12k_pci 0000:06:00.0: fw_version 0x1011001d fw_build_timestamp 2022-12-02 01:16 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
ath12k_pci 0000:06:00.0: failed to receive control response completion, polling..
ath12k_pci 0000:06:00.0: Service connect timeout
ath12k_pci 0000:06:00.0: failed to connect to HTT: -110
ath12k_pci 0000:06:00.0: failed to start core: -110

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4

Signed-off-by: Karthikeyan Periyasamy <[email protected]>
---
drivers/net/wireless/ath/ath12k/pci.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath12k/pci.c b/drivers/net/wireless/ath/ath12k/pci.c
index b11563754d16..f0d2e2d8719c 100644
--- a/drivers/net/wireless/ath/ath12k/pci.c
+++ b/drivers/net/wireless/ath/ath12k/pci.c
@@ -17,8 +17,7 @@
#define ATH12K_PCI_BAR_NUM 0
#define ATH12K_PCI_DMA_MASK 32

-#define ATH12K_PCI_IRQ_CE0_OFFSET 3
-#define ATH12K_PCI_IRQ_DP_OFFSET 14
+#define ATH12K_PCI_IRQ_CE0_OFFSET 3

#define WINDOW_ENABLE_BIT 0x40000000
#define WINDOW_REG_ADDRESS 0x310c
@@ -559,8 +558,9 @@ static int ath12k_pci_ext_irq_config(struct ath12k_base *ab)
{
struct ath12k_pci *ab_pci = ath12k_pci_priv(ab);
int i, j, ret, num_vectors = 0;
- u32 user_base_data = 0, base_vector = 0;
+ u32 user_base_data = 0, base_vector = 0, base_idx;

+ base_idx = ATH12K_PCI_IRQ_CE0_OFFSET + CE_COUNT_MAX;
ret = ath12k_pci_get_user_msi_assignment(ab, "DP",
&num_vectors,
&user_base_data,
@@ -589,7 +589,7 @@ static int ath12k_pci_ext_irq_config(struct ath12k_base *ab)
}

irq_grp->num_irq = num_irq;
- irq_grp->irqs[0] = ATH12K_PCI_IRQ_DP_OFFSET + i;
+ irq_grp->irqs[0] = base_idx + i;

for (j = 0; j < irq_grp->num_irq; j++) {
int irq_idx = irq_grp->irqs[j];

base-commit: d1579581279132cab0d58e90ac2e3d5284d4cf26
--
2.34.1



2023-12-14 15:21:30

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH] Revert "wifi: ath12k: use ATH12K_PCI_IRQ_DP_OFFSET for DP IRQ"

On 12/13/2023 9:32 PM, Karthikeyan Periyasamy wrote:
> This reverts commit 1f1f7d548a00ebe50808cb1f580df9693e194a7c. The commit
> caused bootup failure on QCN9274 hw2.0 platform. Incorrect hardcode DP
> irq offset overwrite the CE irq, which caused the driver to miss the
> mandatory bootup message from the firmware through the CE interrupt. This
> occurs because the CE count differs between platforms. The revert has no
> impact since the original change was based on an incorrect assumption.
>
> Log:
>
> ath12k_pci 0000:06:00.0: fw_version 0x1011001d fw_build_timestamp 2022-12-02 01:16 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> ath12k_pci 0000:06:00.0: failed to receive control response completion, polling..
> ath12k_pci 0000:06:00.0: Service connect timeout
> ath12k_pci 0000:06:00.0: failed to connect to HTT: -110
> ath12k_pci 0000:06:00.0: failed to start core: -110
>
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
>
> Signed-off-by: Karthikeyan Periyasamy <[email protected]>
Acked-by: Jeff Johnson <[email protected]>


2023-12-15 15:58:13

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] Revert "wifi: ath12k: use ATH12K_PCI_IRQ_DP_OFFSET for DP IRQ"

Karthikeyan Periyasamy <[email protected]> wrote:

> This reverts commit 1f1f7d548a00ebe50808cb1f580df9693e194a7c. The commit
> caused bootup failure on QCN9274 hw2.0 platform. Incorrect hardcode DP
> irq offset overwrite the CE irq, which caused the driver to miss the
> mandatory bootup message from the firmware through the CE interrupt. This
> occurs because the CE count differs between platforms. The revert has no
> impact since the original change was based on an incorrect assumption.
>
> Log:
>
> ath12k_pci 0000:06:00.0: fw_version 0x1011001d fw_build_timestamp 2022-12-02 01:16 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> ath12k_pci 0000:06:00.0: failed to receive control response completion, polling..
> ath12k_pci 0000:06:00.0: Service connect timeout
> ath12k_pci 0000:06:00.0: failed to connect to HTT: -110
> ath12k_pci 0000:06:00.0: failed to start core: -110
>
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
>
> Signed-off-by: Karthikeyan Periyasamy <[email protected]>
> Acked-by: Jeff Johnson <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>

Patch applied to ath-next branch of ath.git, thanks.

e75fda64f0fe Revert "wifi: ath12k: use ATH12K_PCI_IRQ_DP_OFFSET for DP IRQ"

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches