Hi,
While I go through the ieee1284_ops.c file, I found that the signaling
is not the same as describe in the standard or even the comments.
Like in function:
static inline
int ecp_forward_to_reverse (struct parport *port)
{
int retval;
/* Event 38: Set nAutoFd low */
parport_frob_control (port,
PARPORT_CONTROL_AUTOFD,
PARPORT_CONTROL_AUTOFD);
parport_data_reverse (port);
udelay (5);
/* Event 39: Set nInit low to initiate bus reversal */
parport_frob_control (port,
PARPORT_CONTROL_INIT,
0);
======== Here, nInit is set to high actually.
/* Event 40: PError goes low */
retval = parport_wait_peripheral (port,
PARPORT_STATUS_PAPEROUT, 0);
if (!retval) {
DPRINTK (KERN_DEBUG "%s: ECP direction: reverse\n",
port->name);
port->ieee1284.phase = IEEE1284_PH_REV_IDLE;
}
return retval;
}
=========
So my question will be is my understanding of frob_control() correct?
From what I read from the code, it seems what ever in the mask gets set
to high, and what ever in the value (within the mask) gets low. I am a
little bit confused by the usage of the frob_control functions. If my
understanding is wrong, that the code for event 38 is wrong. :)
I think the software ECP mod need a careful review of all the control
signals. I have the standard on hand so I will do the work if my doubt
is cleared first.
Thanks
Qun Ying
-- 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 : Wed Apr 26 2000 - 04:43:19 EDT