Thanks for your hints.
I have the start of a solution for my device, but I am trying to make it
generic. I have found out where my machine was freezing. It was in the
parport_pc.c get_fifo_residue function. I don't understand why the outb is
there. From data sheets I have read, when in read mode (bit 5 is 1 in ECP
control register (offset 0x002)) writing to this register has no effect and
the data written is ignored.
for (residue = priv->fifo_depth; ; residue--) {
if (inb (ECONTROL (p)) & 0x2)
/* Full up. */
break;
outb (0, FIFO (p)); // what the heck is this doing?
}
I am guessing this was to fill the fifo and break when it became full, but I
don't think that works.
I might not be able to work on this for a week or so, but I will see what I
can get done today.
Derek
-- Derek Bouius | American Biometric Company | Tel:(613)736-5100x281 dbouius@abio.com | 3429 Hawthorne Rd,Ottawa,ON | Fax:(613)736-1742-- 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 2b29 : Thu May 18 2000 - 09:29:13 EDT