[parisc-linux] EISA support

Matthew Wilcox willy@debian.org
Thu, 11 Oct 2001 21:22:52 +0100


On Thu, Oct 11, 2001 at 12:23:51PM +0100, Richard Hirst wrote:
> asp_find_irq() wants changing:
> 
> -               case 0x76:      irq = 21; break; /* Centronics */
> +               case 0x76:      irq = 17; break; /* EISA BA */

Umm.  According to the Coral/Cobra (720/730/750) ERS I have here, irq 17
on Asp is error.  The Hardball ERS claims the same for the Cutoff ASIC
(someone's written in pencil `Asp 2' by it).  The comment is bogus;
I'll fix that.

> and needs a default case to avoid returning random irq values.

Yep, fixed in my tree.

> and you probably want something like this in eisa_probe():
> 
>         eisa_dev.region->action = kmalloc(sizeof(struct irqaction) * 32, GFP_ATOMIC);
>         memset(eisa_dev.region->action, 0, sizeof(struct irqaction) * 32);
> 
> I'm sure '32' is wrong, but at least you need some range checking on
> irq in eisa_irq() before using it to index in to the action array.

Probably something along those lines.  Apparently I should mask the byte
returned as well, but the docs say to see the Intel 82357 ISP data sheet
for details.  Grumble.

> I don't get any further eisa_irq() calls once my scsi card gerneates an
> interrupt, but for all I know I may have to poke some registers in the
> card before it allows interrupts out.

Looks like we're getting one error, and not resetting the bus.  Wonder why
we're getting an error...

-- 
Revolutions do not require corporate support.