Re: Patch to add support for SGI's IOC4 chipset

From: Jeremy Higdon
Date: Wed Oct 22 2003 - 23:36:43 EST


On Wed, Oct 22, 2003 at 08:31:02PM +0200, Bartlomiej Zolnierkiewicz wrote:
>
> I think there is another bug:
>
> ...
> hwif->hw.ack_intr = &sgiioc4_checkirq; /* MultiFunction Chip */
> ...
>
> sgiioc4_clearirq() should be used instead of sgiioc4_checkirq() here,
> because otherwise IRQ won't be cleared.
>
> In order to do this you must modify sgiioc4_clearirq() slightly,
> just change "return intr_reg;" to "return intr_reg & 0x03;".
>
> If you wonder why, please look at ide_ack_intr() use in ide-io.c:ide_intr().

Thanks. I've taken a look at it and have become puzzled.

It looks as though ide_ack_intr normally just "returns" 1 and has no
other effect. But then I see some ide drivers that also have an ack_intr
routine. On some (most?) architechtures, it would appear that the ack_intr
routine is not used, since the ide_ack_intr macro will not call it.

In gayle_ack_intr_a4000(), it looks as though all it does is read a
register and return something. Is that register read supposed to clear
interrupt as a side effect.

So maybe an explicit clear is not needed on most implementations?

jeremy
-
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/