Re: 2.6.18 m68k mac

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Thu, 1 Feb 2007, I wrote:

Anyway, you can see now why I had to eliminate nubus_active (as well as 
looping over the slot lines until none were asserted) -- If we drop an 
interrupt by masking it with nubus_active, we don't get another CA1 
transition when we re-enable it, and the nubus stays wedged.

These two fixes seem to be sufficient to fix IDE -- you don't really 
need to give up disabling IRQs by making them outputs. But you have to 
ask, what was nubus_active needed for in the first place?

The only answer I could think of is that some cards in some machines 
can't be disabled by making the IRQ line an output.  That is, the 
asserted /IRQ still reads low because the slot pulls it low despite the 
VIA pulling it high. (The VIA datasheet warns against this possibility, 
whereby the output register reads differently than whatever was written 
to it when the outputs are loaded up).

If this is true, I figured, then nubus_active and this method of 
disabling slot IRQs are both beyond redemption.

I just tested my Mac II and this certainly seems to be the case. The 
network card gives lots of NETDEV WATCHDOG TX timeouts and barely works 
when I remove nubus_active (see the irq_plan_d patch). Which brought to 
mind what Brad told me 18 months ago about how macs with genuine VIAs 
behave differently than those with emulated VIAs.

That was my motive for irq_plan_c, which just disables CA1 instead of 
disabling individual slots... but is of course, subject to stray 
interrupt problems.

This approach works on all the macs I've tested. The only issue was the 
LCIII raising a nubus IRQ (DP8390) at the wrong moment. But when I think 
about it, this can only be because the early setup code is not working 
right on RBV (RBV and probably the others that have slot enable flags)... 

It would be nice if Penguin could disable DP8390 chips as well.

[snip]

 
I haven't yet tested NuBus video cards with my patches, but I did 
anticipate problems.

Well, I have now. The TFB card in the Mac II posed no problem. I also 
checked the source code for Penguin and it deliberately disables the 
interrupts from video cards.

But I'm wondering if there is a better solution. We could unmask CA1 (by 
installing the handler) only after all (supported) nubus cards have 
their drivers loaded -- but before the kernel needs to use them. I've no 
idea how to accomplish that order of operations. Can the device model 
help??

This may not end up being necessary, since most unexpected IRQs can 
probably be solved by other means.

-f
-
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux