Some more details on parport autoprobing bug

Bernhard Rosenkraenzer (bero@redhat.de)
Mon, 20 Dec 1999 17:13:14 +0100 (CET)


The printer seems to have a problem switching to IEEE1284_DEVICEID mode
shortly after initialization.

It happens in userspace, too, if the program accessing /dev/parport0 has
to autoload the module.

In userspace, my workaround (ugly, but works) is replacing
mode = IEEE1284_MODE_NIBBLE | IEEE1284_DEVICEID;
ioctl(fd, PPNEGOT, &mode);
with
result = 1;
mode = IEEE1284_MODE_NIBBLE | IEEE1284_DEVICEID;
for(i=0; i<15 && result!=0; i++)
result=ioctl(fd, PPNEGOT, &mode);

I guess the kernel autoprobing fails because of the exact same thing.
errno = 5 for the first couple of ioctl()s.

LLaP
bero

-- 
Nobody will ever need more than 640 kB RAM.
		-- Bill Gates, 1983
Windows 98 requires 16 MB RAM.
		-- Bill Gates, 1999
Nobody will ever need Windows 98.
		-- logical conclusion

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/