Messages in this thread | | | Date | Tue, 14 Sep 2010 16:14:33 +0100 | From | Alan Cox <> | Subject | Re: parport_pc: irq= parameter with limited usefulness, kernel hang on PPC/OldWorldMac |
| |
> *) Under at least 2.6.31 and up, the kernel assigns IRQ 25 to the card. > Under 2.6.28 and below, the card > was run in polling mode (i.e. irq was -1, not 25). > > *) Furthermore, the above report suggests that the system wants to > handle an edge-triggered IRQ, though > according to /proc/interrupts, IRQ 25 is level-triggered.
The parport_pc code just asks for the IRQ so any level/edge mismatch would appear to be coming from the firmware or architecture code. The older kernel didn't know to use the IRQ on PCI devices which stopped some things working and hurt performance. That would also have masked the bug you see - so the report makes total sense.
> should, according to the documentation and the parport_pc.c source do > that. For reasons beyond me, the kernel module wants > to be smarter than I and *still* enables the IRQ. I'm pretty sure that
The options only apply to legacy ports - it has always been that way. It's not clear how you would specify which port to affect otherwise.
> *) parport_pc should take irq=none seriously and should not silently > override it,
parport_pc could do with a way to specify whether to use the IRQ or DMA on PCI ports but really this shouldn't be needed if the rest of the kernel logic is right.
> *) parport_pc should at least not crash the system completely in case > the IRQ is enabled. > > The latter *might* be an issue with the G3 powermac hardware, which is > of course weird and has a couple of hardware
The latter looks like a bug in the PPC side support, perhaps misreporting an IRQ, or mislabelling it in some way. I think the first step is to find a PPC hacker who can figure out why the apparently sane IRQ request from the parport layer is exploding.
Even if there is some technical reason the IRQ can't be used then the arch code shouldn't be reporting an IRQ for it, and the parport_pc could ought to just work.
Adding Ben to the Cc: so we it can get hunted down.
Alan
| |