>===== Original Message From Tim Waugh <email@example.com> =====
>On Sun, Sep 23, 2001 at 11:31:51PM -0400, Dmitri Katchalov wrote:
>> I'm writing a usermode driver for my Brother MFC 4600 printer/scanner/fax..
>> The driver periodically polls the device for incoming data packets
>> by switching to IEEE reverse byte mode, reading the data (if any) from
>> the port and then switching back to compat mode.
>> It works OK as long as the computer is idle. As soon as I put any kind of
>> load on a CPU (even running ps on another console)
>> ioctl (parport,PPNEGOT,&IEEE_MODE_BYTE) starts failing with
>> "input/output error".
>> I'm running 2.4.7 kernel on P120 Toshiba laptop.
>> Parport driver correctly auto-detects TRISTATE, ECP, DMA and IRQ settings
>> and otherwise appears to be configured and functioning properly.
>> Any ideas?
>I _guess_ that there is a schedule() in a timing-critical piece of
>code. Is there anything in the output of 'dmesg' to suggest where
>exactly the I/O error is originating, i.e. which event number?
No, nothing at all in dmesg except "registered / unregistered pardevice".
Yes, there is a schedule_timeout() in parport_wait_peripheral()
But never mind. This only happens in a tight loop. A retry after
a small delay resolved the issue.
I attribute this to a general weirdness of the device I'm dealing
with. As I mentioned in my other post it probably uses a pre-IEEE
so-called "Boise" version of the specs.
-- To unsubscribe, send mail to: firstname.lastname@example.org --
-- with the single word "unsubscribe" in the body of the message. --
This archive was generated by hypermail 2b29 : Thu Oct 11 2001 - 10:41:29 EDT