1 Mar 2004 01:35
[patch] PCI IRQ lockup solved
<vdb128 <at> picaros.org>
2004-03-01 00:35:33 GMT
2004-03-01 00:35:33 GMT
Dear parport maintainers,
This patch solves PCI lockups if the IRQ is in use by another driver.
Note that the parport_EPP_sup test must disable IRQs. Otherwise the
already installed handler is called at initialization ... for ever
... until reboot.
It also allows for PCI interrupt use, specify irq=auto, detects a level
coupled INTX# and disables interrupts if necessary.
Below are the debug messages of two systems, both with a motherboard IO
controller and a PCI card. Differences are accounted for in the interrupt
handler via the our integer:
our & 1 : we are the only interrupt source
our & 2 : awaiting int and DSR nINT active -> signal good chipset
our & 4 : awaiting int and not a good chipset -> take it (... false_alarm)
our & 8 : nINT still active after reset, ints were disabled
our &0x10 : ECP ecr int expected and found, unassert PCI INTX#, as in line
with ECP register specifications.
Also, the patch below allows to initialize selected PCI devices by specifying
their bus/slot/function address, via 'io=-1 io_hi=0x<bus><slot><function>'.
Furthermore, the EPP Intel test is skipped except for a base address of
0x378, 0x278 or 0x3bc. This seems reasonable since most (all ?) onboard
chipsets are only configurable at those addresses, and since Intel has not
manufacturerd any stand-alone PCI controller AFAIK.
(Continue reading)
RSS Feed