Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 541bbd3a authored by Jia Ding's avatar Jia Ding Committed by snandini
Browse files

qcacmn: Properly remove affinity hint for CE irqs

IRQ affinity for CE IRQs has been set to gold cores.
But affinity hint is not removed when freeing CE irqs.

Therefore remove affinity hint for CE irqs before freeing
them.

Change-Id: I7385a90955bc7e357badcd784e40d89022542d1a
CRs-Fixed: 2765373
parent 1f052c99
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -186,6 +186,15 @@ void hif_pci_irq_set_affinity_hint(
 */
void hif_pci_ce_irq_set_affinity_hint(
	struct hif_softc *scn);

/**
 * hif_pci_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)
{
	hif_irq_affinity_remove(irq);
}
#else
static inline void hif_pci_irq_set_affinity_hint(
	struct hif_exec_context *hif_ext_group)
@@ -195,6 +204,9 @@ static inline void hif_pci_ce_irq_set_affinity_hint(
	struct hif_softc *scn)
{
}
static inline void hif_pci_ce_irq_remove_affinity_hint(int irq)
{
}
#endif /* ifdef HIF_CPU_PERF_AFFINE_MASK */
#endif
+2 −0
Original line number Diff line number Diff line
@@ -2449,6 +2449,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_pci_ce_irq_remove_affinity_hint(irq);

		hif_debug("%s: (ce_id %d, msi_data %d, irq %d)", __func__,
			  ce_id, msi_data, irq);