[PARPORT] Re: problems with parallel port IRQ detection

NIIBE Yutaka (gniibe@mri.co.jp)
Tue, 10 Feb 1998 13:25:25 +0900


mlord@pobox.com writes:
> Philip Blundell wrote:
> >
> > It isn't possible to autoprobe for the irq on spp ports. You must specify it
> > explicitly.
> Really?! Why can they not be probed using the kernel probe utilities?
> Too many soundcard conflicts?

For SPP port, it isn't possible to autporobe IRQ with kernel probe

The utility works as (sited from interrupt.h):
 1. clear and/or mask the device's internal interrupt.
 2. sti();
 3. irqs = probe_irq_on(); // "take over" all unassigned idle IRQs
 4. enable the device and cause it to trigger an interrupt.
 5. wait for the device to interrupt, using non-intrusive polling or a delay.
 6. irq = probe_irq_off(irqs); // get IRQ number, 0=none, negative=multiple
 7. service the device to clear its pending interrupt.
 8. loop again if paranoia is required.

For SPP port, step 4 (causing it to trigger an interrupt) is
impossible. It can't be done with the port itself. It requires the
signal change of -ACK line. It's output of printer.

If printer could have some command to cause -ACK line change, it would
be possible to probe IRQ...

With "optimized" implementation of Parallel Port, setting IRQ_ENABLE
on and off triggers an interrupt. That's the reason why I can
autoprobe IRQ on my old notbook PC with PLIP in Linux 2.0.x.


NIIBE Yutaka

-- To unsubscribe, send mail to: linux-parport-request@torque.net -- -- with the single word "unsubscribe" in the body of the message. --

This archive was generated by hypermail 2.0b3 on Wed 30 Dec 1998 - 10:17:27 EST