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
Bu işleme şunda yer alıyor:
Jia Ding
2020-08-28 20:54:13 +08:00
işlemeyi yapan: Gerrit - the friendly Code Review server
ebeveyn fa89410007
işleme e26d537266
2 değiştirilmiş dosya ile 14 ekleme ve 0 silme

Dosyayı Görüntüle

@@ -184,6 +184,14 @@ 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)
@@ -194,6 +202,10 @@ 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

Dosyayı Görüntüle

@@ -2090,6 +2090,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);