aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ipa
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2021-07-27 14:46:28 -0500
committerDavid S. Miller <davem@davemloft.net>2021-07-27 21:02:06 +0100
commitfe6a32797971db3d5770a5ddcd0cec15f561e501 (patch)
treed40255ca73951f6e0a0c562578bd7e2630f3bd9b /drivers/net/ipa
parentnet: ipa: clear disabled IPA interrupt conditions (diff)
downloadlinux-dev-fe6a32797971db3d5770a5ddcd0cec15f561e501.tar.xz
linux-dev-fe6a32797971db3d5770a5ddcd0cec15f561e501.zip
net: ipa: get rid of some unneeded IPA interrupt code
The pending IPA interrupts are checked by ipa_isr_thread(), and interrupts are processed only if an enabled interrupt has a condition pending. But ipa_interrupt_process_all() now makes the same check, so the one in ipa_isr_thread() can just be skipped. Also in ipa_isr_thread(), any interrupt conditions pending which are not enabled are cleared. Here too, ipa_interrupt_process_all() now clears such excess interrupt conditions, so ipa_isr_thread() doesn't have to. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ipa')
-rw-r--r--drivers/net/ipa/ipa_interrupt.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c
index c12d0c33557c..d149e496ffa7 100644
--- a/drivers/net/ipa/ipa_interrupt.c
+++ b/drivers/net/ipa/ipa_interrupt.c
@@ -116,26 +116,11 @@ static irqreturn_t ipa_isr_thread(int irq, void *dev_id)
{
struct ipa_interrupt *interrupt = dev_id;
struct ipa *ipa = interrupt->ipa;
- u32 offset;
- u32 mask;
ipa_clock_get(ipa);
- offset = ipa_reg_irq_stts_offset(ipa->version);
- mask = ioread32(ipa->reg_virt + offset);
- if (mask & interrupt->enabled) {
- ipa_interrupt_process_all(interrupt);
- goto out_clock_put;
- }
-
- /* Nothing in the mask was supposed to cause an interrupt */
- offset = ipa_reg_irq_clr_offset(ipa->version);
- iowrite32(mask, ipa->reg_virt + offset);
-
- dev_err(&ipa->pdev->dev, "%s: unexpected interrupt, mask 0x%08x\n",
- __func__, mask);
+ ipa_interrupt_process_all(interrupt);
-out_clock_put:
ipa_clock_put(ipa);
return IRQ_HANDLED;