On Thursday 26 July 2007 22:13:54 Larry Finger wrote: > Michael, > > When I try the -mb tree on my old i386 notebook, I get an "irq 11: nobody cared" > message and interrupts for the bcm43xx-mac80211 device are not initialized. The > code in Linville's tree works. The only difference that seems to be important > is the code returned when a shared interrupt not intended for us is received. > By making the changes shown below, both trees now work. > > I recall you having a discussion with someone over some aspect of shared IRQ's, > but I don't remember the details and I'm too busy (lazy) to go back and look. > > Thanks, > > Larry > ---- > > Index: wireless-mb/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c > =================================================================== > --- wireless-mb.orig/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c > +++ wireless-mb/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c > @@ -1503,7 +1503,7 @@ static void bcm43xx_interrupt_ack(struct > /* Interrupt handler top-half */ > static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id) > { > - irqreturn_t ret = IRQ_NONE; > + irqreturn_t ret = IRQ_HANDLED; > struct bcm43xx_wldev *dev = dev_id; > u32 reason; > > @@ -1517,7 +1517,6 @@ static irqreturn_t bcm43xx_interrupt_han > reason = bcm43xx_read32(dev, BCM43xx_MMIO_GEN_IRQ_REASON); > if (reason == 0xffffffff) /* shared IRQ */ > goto out; > - ret = IRQ_HANDLED; > reason &= bcm43xx_read32(dev, BCM43xx_MMIO_GEN_IRQ_MASK); > if (!reason) > goto out; > > I neither think this is the correct solution, nor do I think that this is the way bcm43xx-softmac does it. This would always return HANDLED, right? regardless if the IRQ was for bcm43xx or not. I _do_ think that the bug is in the driver sharing the IRQ with bcm43xx. -- Greetings Michael. - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html