From 8327d7ec9231e8484dca764dc25034772dba121a Mon Sep 17 00:00:00 2001 From: Karthik Kantamneni Date: Mon, 28 Jun 2021 15:42:46 +0530 Subject: [PATCH] qcacmn: Remove affinity hint for CE irqs in QCA6750 target CE irqs affinity is set to gold cores, but affinity hint is not removed while freeing irqs. So remove CE irq affinity before freeing them. Change-Id: If3822422f823cb3caa6e291387a2beadc62049b7 CRs-Fixed: 2975529 --- hif/src/hif_exec.h | 6 +++--- hif/src/ipcie/if_ipci.c | 2 ++ hif/src/pcie/if_pci.c | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hif/src/hif_exec.h b/hif/src/hif_exec.h index 530477d8842a..c7002067bb36 100644 --- a/hif/src/hif_exec.h +++ b/hif/src/hif_exec.h @@ -186,10 +186,10 @@ void hif_pci_ce_irq_set_affinity_hint( struct hif_softc *scn); /** - * hif_pci_ce_irq_remove_affinity_hint() - remove affinity for the irq + * hif_ce_irq_remove_affinity_hint() - remove affinity for the irq * @irq: irq number to remove affinity from */ -static inline void hif_pci_ce_irq_remove_affinity_hint(int irq) +static inline void hif_ce_irq_remove_affinity_hint(int irq) { hif_irq_affinity_remove(irq); } @@ -204,7 +204,7 @@ static inline void hif_pci_ce_irq_set_affinity_hint( { } -static inline void hif_pci_ce_irq_remove_affinity_hint(int irq) +static inline void hif_ce_irq_remove_affinity_hint(int irq) { } #endif /* ifdef HIF_CPU_PERF_AFFINE_MASK */ diff --git a/hif/src/ipcie/if_ipci.c b/hif/src/ipcie/if_ipci.c index a0e0d2f1ae81..c924813af29f 100644 --- a/hif/src/ipcie/if_ipci.c +++ b/hif/src/ipcie/if_ipci.c @@ -210,6 +210,8 @@ static int hif_ce_srng_msi_free_irq(struct hif_softc *scn) msi_data = (ce_id % msi_data_count) + msi_irq_start; irq = pld_get_msi_irq(scn->qdf_dev->dev, msi_data); + hif_ce_irq_remove_affinity_hint(irq); + hif_debug("%s: (ce_id %d, msi_data %d, irq %d)", __func__, ce_id, msi_data, irq); diff --git a/hif/src/pcie/if_pci.c b/hif/src/pcie/if_pci.c index 763691a0504f..4ad1e7ad3777 100644 --- a/hif/src/pcie/if_pci.c +++ b/hif/src/pcie/if_pci.c @@ -2065,7 +2065,7 @@ static int hif_ce_srng_msi_free_irq(struct hif_softc *scn) msi_data = (ce_id % msi_data_count) + msi_irq_start; irq = pld_get_msi_irq(scn->qdf_dev->dev, msi_data); - hif_pci_ce_irq_remove_affinity_hint(irq); + hif_ce_irq_remove_affinity_hint(irq); hif_debug("%s: (ce_id %d, msi_data %d, irq %d)", __func__, ce_id, msi_data, irq);