On Sat, 13 Jan 2007, Finn Thain wrote:
> On Fri, 12 Jan 2007, Michael Schmitz wrote: > > > > And it would appear that IDE used to be polled from the VIA1 IRQ > > > handler (I guess the F108 chip is another of Apple's mysteries...) > > > > I think we found out the interrupt source for IDE? That polling would > > then be leftover crud and should be killed. > > Yeah, the polling code is #if 0. Which is fine by me. > > I'm guessing that possibly the interrupt is not being ack'd correctly > (perhaps the act of testing it clears it)... or maybe slot F doesn't get > latched like the others (perhaps because it is effectively cascaded 3 > deep). I need to do more experimentation. I've finally fixed it! (I started on these irq patches in 2005...) There's nothing wrong with the IDE driver. But nubus is another story altogether... basically, the fix is, 1. Don't exit the nubus interrupt handler until there's no irq flagged. 2. On VIA2-based macs, don't attempt to disable nubus slots by making the IRQ lines outputs and then driving them high (!) 3. Since there's no slot irq mask on these macs, don't attempt to disable nubus slots individually -- just mask the VIA2 CA1 interrupt. That way no nubus interrupts go missing. 4. When using the A/UX irq scheme, install sonic irq handlers on BOTH slot 9 and auto vector 3 -- otherwise, the 1-in-100000 slot 9 interrupt kills us. Here's the diff's (comments welcome): http://www.telegraphics.com.au/~fthain/patches/quilt/irq-prep http://www.telegraphics.com.au/~fthain/patches/quilt/irq-plan-c http://www.telegraphics.com.au/~fthain/patches/quilt/macsonic-via-alt-mapping This also fixes the same bug on my Q650 -- onboard sonic (with A/UX irq scheme) and a nubus card as well (ethernet NIC instead of IDE) :-) -f - To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
