Re: [PATCH] Fix for spurious interrupts on e100 resume

From: Nathan Bryant
Date: Thu Sep 09 2004 - 18:59:39 EST


Jeremy Fitzhardinge wrote:

static void e100_hw_reset(struct nic *nic)
{
+ /* Mask off our interrupt line - it's unmasked after reset + Do it early to prevent spurious interrupts. */
+ e100_disable_irq(nic);
+
/* Put CU and RU into idle with a selective reset to get
* device off of PCI bus */
writel(selective_reset, &nic->csr->port);
@@ -605,9 +609,6 @@ static void e100_hw_reset(struct nic *ni
writeb(cuc_load_base, &nic->csr->scb.cmd_lo);
mdelay(20);
}
-
- /* Mask off our interrupt line - it's unmasked after reset */
- e100_disable_irq(nic);
}

static int e100_self_test(struct nic *nic)

You sure this is right? The comment seems to imply that writing the reset command to the registers also clears the interrupt mask. So you might need to have the e100_disable_irq() both before and after the reset.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/