2001-12-14 22:51:10

by Petr Vandrovec

[permalink] [raw]
Subject: ECP Parallel Port

Hi,
one of VMware users just pointed to me that ECP mode is now broken
in kernel. 2.4.10-ac9 reports correctly:

0x378: FIFO is 16 bytes
0x378: writeIntrThreshold is 8
0x378: readIntrThreshold is 8
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: Via 686A parallel port: io=0x378

while 2.4.12-ac1 (and all following up to and including 2.4.17-rc1) say just:

parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
parport_pc: Via 686A parallel port: io=0x378

It looks like a bug to me. Is it known problem, or should I look into
it more deeply?
Thanks,
Petr Vandrovec
[email protected]


2001-12-15 00:25:32

by Tim Waugh

[permalink] [raw]
Subject: Re: ECP Parallel Port

On Fri, Dec 14, 2001 at 11:50:32PM +0100, Petr Vandrovec wrote:

> one of VMware users just pointed to me that ECP mode is now broken
> in kernel. 2.4.10-ac9 reports correctly:

You have run into an unfortunate VMware bug. Arguably it's not really
their fault; they went by existing behaviour rather than documented
behaviour.

Anyhow, the behaviour you are now seeing is the same as the documented
behaviour: ECP mode is only reported _if_ parport will actually use
hardware ECP for ECP transfers. Previously, it would report [ECP]
even if it knew perfectly well that it had no intention of using it.

This was fixed in order to provide ECP support in the printer driver.

> It looks like a bug to me. Is it known problem, or should I look into
> it more deeply?

It's no bug in the kernel, really. It is a known problem though. The
solution is for VMware to do their own port capabilities detection,
since they don't use the kernel for actually using the parallel port
chip (they just use inb/outb). [Incidentally, I've told them this via
their feedback email address, but since I don't own a VMware license I
am apparently not entitled to file a bug against VMware.]

The work around is to do one of the following:

a) Don't upgrade your kernel; only use a kernel that VMware have
verified works with their product;
b) Take appropriate steps to get the kernel to use ECP mode. This
involves: turning on 'EXPERIMENTAL' driver support, turning on 'Use
FIFO/DMA if available', and providing 'irq=auto dma=auto' to the
parport_pc module when you load it. You may of course have to
provide the actual IRQ line number or DMA channel if they can't be
automatically detected.

Be aware that option (b) is the more dangerous: DMA printing has known
problems, and so does PIO printing (but to a lesser extent).

Tim.
*/


Attachments:
(No filename) (1.80 kB)
(No filename) (232.00 B)
Download all attachments