From: Jouko P. <py...@jy...> - 2000-06-16 10:06:03
|
> And at least in this case, I guess everyone likes to have a booting kernel in > the first place, even if it may have its quirks. These worked for me... --- amiints.c.orig Thu Jun 15 21:19:07 2000 +++ amiints.c Thu Jun 15 21:37:56 2000 @@ -255,9 +255,10 @@ return; } - if (irq >= IRQ_AMIGA_AUTO) + if (irq >= IRQ_AMIGA_AUTO) { sys_free_irq(irq - IRQ_AMIGA_AUTO, dev_id); - + return; + } if (irq >= IRQ_AMIGA_CIAA) { cia_free_irq(irq, dev_id); return; @@ -295,8 +296,9 @@ return; } - if (--ami_ablecount[irq]) - return; + ami_ablecount[irq]--; + if (ami_ablecount[irq]<0) ami_ablecount[irq]=0; + else if (ami_ablecount[irq]) return; /* No action for auto-vector interrupts */ if (irq >= IRQ_AMIGA_AUTO){ @@ -463,7 +465,7 @@ and executes them in a loop. Having ami_badint at the end of the chain is a bad idea. */ void (*amiga_default_handler[SYS_IRQS])(int, void *, struct pt_regs *) = { - NULL, ami_int1, NULL, NULL /* FB expects to replace ami_int3*/, + NULL, ami_int1, NULL, ami_int3, ami_int4, ami_int5, NULL, ami_int7 }; #else --- amifb.c.orig Thu Jun 15 21:36:34 2000 +++ amifb.c Thu Jun 15 21:36:57 2000 @@ -1811,6 +1811,7 @@ */ ami_init_copper(); + free_irq(IRQ_AMIGA_AUTO_3,NULL); #if 1 if (request_irq(IRQ_AMIGA_AUTO_3, amifb_interrupt, 0, |