[Linux-parport] Kernel & libieee1284 report BIOS ECP mode as EPP
vdb128 at picaros.org
vdb128 at picaros.org
Fri Oct 1 07:46:32 EDT 2004
> Winbond Super-IO detection, now testing ports 3F0,370,250,4E,2E ...
> Winbond chip at EFER=0x2e key=0x87 devid=82 devrev=83 oldid=ff
> type=unknown
> W83627THF > 326G7C23165600UA
You might try to add devid:devrev=82:83 to the list.
--- linux-2.4.23/drivers/parport/parport_pc.c~ Mon Mar 1 00:46:52 2004
+++ linux-2.4.23/drivers/parport/parport_pc.c Fri Oct 1 13:05:01 2004
@@ -1520,6 +1527,7 @@ static void __devinit decode_winbond(int
else if ((id & ~0x0f) == 0x5270) type="83977CTF / SMSC 97w36x";
else if ((id & ~0x0f) == 0x52f0) type="83977EF / SMSC 97w35x";
else if ((id & ~0x0f) == 0x5210) type="83627";
+ else if ((id & ~0x0f) == 0x8280) type="83627THF";
else if ((id & ~0x0f) == 0x6010) type="83697HF";
else if ((oldid &0x0f ) == 0x0a) { type="83877F"; progif=1;}
else if ((oldid &0x0f ) == 0x0b) { type="83877AF"; progif=1;}
> The chipset appears to be recognized. Would it be hard to add this
> extension?
If the above works, then a possible solution is to extend the
static struct superio_struct { /* For Super-IO chips autodetection */
int io;
int irq;
int dma;
} superios[NR_SUPERIOS] __devinitdata = { {0,},};
with a member 'int noepp;' which is set to 1 if EPP is not found in
static void __devinit show_parconfig_winbond(int io, int key) .
Then copy the procedure
get_superio_irq (struct parport *p)
rename it to 'get_superio_noepp()' and let it return 'superios[i].noepp'
or zero on failure. Finally, in
static int __devinit parport_EPP_supported(struct parport *pb)
prepend
if(get_superio_noepp(pb)) {
result=-25;
goto end;
}
just before EPP is enabled by the line
pb->modes |= PARPORT_MODE_EPP;
If all works, then you should take the long road of trying to get the
diff -bpu accepted by the parport_pc maintainers. Another route would
be to disable EPP use (perhaps a module option noepp=1) in the scanner
driver.
Just my thought,
Servaas
More information about the Linux-parport
mailing list