net: brcmfmac: Replace in_interrupt()
brcmf_sdio_isr() is using in_interrupt() to distinguish if it is called from a interrupt service routine or from a worker thread. Passing such information from the calling context is preferred and requested by Linus, so add an argument `in_isr' to brcmf_sdio_isr() and let the callers pass the information about the calling context. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com> Acked-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c2f8c90079
commit
d067c0fa29
@ -74,7 +74,7 @@ static irqreturn_t brcmf_sdiod_oob_irqhandler(int irq, void *dev_id)
|
||||
sdiodev->irq_en = false;
|
||||
}
|
||||
|
||||
brcmf_sdio_isr(sdiodev->bus);
|
||||
brcmf_sdio_isr(sdiodev->bus, true);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@ -86,7 +86,7 @@ static void brcmf_sdiod_ib_irqhandler(struct sdio_func *func)
|
||||
|
||||
brcmf_dbg(INTR, "IB intr triggered\n");
|
||||
|
||||
brcmf_sdio_isr(sdiodev->bus);
|
||||
brcmf_sdio_isr(sdiodev->bus, false);
|
||||
}
|
||||
|
||||
/* dummy handler for SDIO function 2 interrupt */
|
||||
|
@ -3625,7 +3625,7 @@ void brcmf_sdio_trigger_dpc(struct brcmf_sdio *bus)
|
||||
}
|
||||
}
|
||||
|
||||
void brcmf_sdio_isr(struct brcmf_sdio *bus)
|
||||
void brcmf_sdio_isr(struct brcmf_sdio *bus, bool in_isr)
|
||||
{
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
|
||||
@ -3636,7 +3636,7 @@ void brcmf_sdio_isr(struct brcmf_sdio *bus)
|
||||
|
||||
/* Count the interrupt call */
|
||||
bus->sdcnt.intrcount++;
|
||||
if (in_interrupt())
|
||||
if (in_isr)
|
||||
atomic_set(&bus->ipend, 1);
|
||||
else
|
||||
if (brcmf_sdio_intr_rstatus(bus)) {
|
||||
|
@ -372,7 +372,7 @@ int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev);
|
||||
|
||||
struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev);
|
||||
void brcmf_sdio_remove(struct brcmf_sdio *bus);
|
||||
void brcmf_sdio_isr(struct brcmf_sdio *bus);
|
||||
void brcmf_sdio_isr(struct brcmf_sdio *bus, bool in_isr);
|
||||
|
||||
void brcmf_sdio_wd_timer(struct brcmf_sdio *bus, bool active);
|
||||
void brcmf_sdio_wowl_config(struct device *dev, bool enabled);
|
||||
|
Loading…
Reference in New Issue
Block a user