wlan-ap-Telecominfraproject/feeds/wifi-ax/mac80211/patches/pending/220-napi_threaded.patch
Felix Fietkau c8dde50eba ath11k: enable threaded napi support
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2022-05-17 07:45:32 +02:00

85 lines
2.7 KiB
Diff

--- a/drivers/net/wireless/ath/ath11k/ahb.c
+++ b/drivers/net/wireless/ath/ath11k/ahb.c
@@ -530,6 +530,7 @@ static int ath11k_ahb_ext_irq_config(str
int irq;
int ret;
bool nss_offload;
+ static int devidx = 0;
/* TCL Completion, REO Dest, ERR, Exception and h2rxdma rings are offloaded
* to nss when its enabled, hence don't enable these interrupts
@@ -543,6 +544,9 @@ static int ath11k_ahb_ext_irq_config(str
irq_grp->ab = ab;
irq_grp->grp_id = i;
init_dummy_netdev(&irq_grp->napi_ndev);
+ snprintf(irq_grp->napi_ndev.name, sizeof(irq_grp->napi_ndev.name), "%s%d:%d",
+ "ath11k_ahb", devidx, i);
+ irq_grp->napi_ndev.threaded = 1;
netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi,
ath11k_ahb_ext_grp_napi_poll, NAPI_POLL_WEIGHT);
@@ -608,6 +612,8 @@ static int ath11k_ahb_ext_irq_config(str
}
}
+ devidx++;
+
return 0;
}
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -754,6 +754,7 @@ static int ath11k_pci_ext_irq_config(str
u32 user_base_data = 0, base_vector = 0, base_idx;
struct ath11k_pci *ab_pci = ath11k_pci_priv(ab);
u8 domain_id;
+ static int devidx = 0;
domain_id = ath11k_pci_get_domain_id(ab);
base_idx = ATH11K_PCI_IRQ_CE0_OFFSET + CE_COUNT_MAX;
@@ -770,6 +771,9 @@ static int ath11k_pci_ext_irq_config(str
irq_grp->ab = ab;
irq_grp->grp_id = i;
init_dummy_netdev(&irq_grp->napi_ndev);
+ snprintf(irq_grp->napi_ndev.name, sizeof(irq_grp->napi_ndev.name), "%s%d:%d",
+ "ath11k_pci", devidx, i);
+ irq_grp->napi_ndev.threaded = 1;
netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi,
ath11k_pci_ext_grp_napi_poll, NAPI_POLL_WEIGHT);
@@ -815,6 +819,7 @@ static int ath11k_pci_ext_irq_config(str
disable_irq_nosync(ab->irq_num[irq_idx]);
}
}
+ devidx++;
return 0;
}
@@ -880,6 +885,7 @@ int ath11k_pci_ext_config_gic_msi_irq(st
int j, ret = 0, num_vectors = 0;
u8 domain_id;
u32 num_irq = 0;
+ static int devidx = 0;
domain_id = ath11k_pci_get_domain_id(ab);
base_idx = ATH11K_PCI_IRQ_CE0_OFFSET + CE_COUNT_MAX;
@@ -893,6 +899,9 @@ int ath11k_pci_ext_config_gic_msi_irq(st
irq_grp->ab = ab;
irq_grp->grp_id = i;
init_dummy_netdev(&irq_grp->napi_ndev);
+ snprintf(irq_grp->napi_ndev.name, sizeof(irq_grp->napi_ndev.name), "%s%d",
+ "ath11k_pci_msi", devidx);
+ irq_grp->napi_ndev.threaded = 1;
netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi,
ath11k_pci_ext_grp_napi_poll, NAPI_POLL_WEIGHT);
@@ -930,6 +939,8 @@ int ath11k_pci_ext_config_gic_msi_irq(st
ab->ipci.dp_msi_data[i] = msi_desc->msg.data;
disable_irq_nosync(ab->irq_num[irq_idx]);
}
+ devidx++;
+
return ret;
}
EXPORT_SYMBOL(ath11k_pci_ext_config_gic_msi_irq);