linux-0.99.10 detects non-existing lp1 & lp2

linux-0.99.10 detects non-existing lp1 & lp2

Post by Andreas Wackni » Thu, 01 Jul 1993 21:45:14



Hi again!

I have just another problem with the current linux version (0.99pl10):
During the boot process I get the following messages:
        lp_init: lp0 exists (0), using polling driver
        lp_init: lp1 exists (254), using polling driver
        lp_init: lp2 exists (254), using polling driver

But the machine has just one printer port configured as lp0 (irq 7, 0x3bc).
As I have a lot of trouble with this machine (it's a nfs and print server
for a small network and it hangs very often since the last update to pl10 &
net-2),
I am not sure whether there is a possible irq problem or not.
So, how can I tell the kernel that there is just lp0 in my machine?

Any hints are welcome.

Cheers
        Andreas

--
Andreas Wacknitz

 
 
 

linux-0.99.10 detects non-existing lp1 & lp2

Post by Nigel Gamb » Sun, 04 Jul 1993 03:29:09



Quote:>During the boot process I get the following messages:
>    lp_init: lp0 exists (0), using polling driver
>    lp_init: lp1 exists (254), using polling driver
>    lp_init: lp2 exists (254), using polling driver

I don't know why you should have started noticing this only in 0.99pl10,
or why nobody else seems to have noticed it, because the code the the lp
driver to detect the parallel ports hasn't changed in a long time.

However, it does look like a bug in the driver to me.  This patch
may fix it, but I haven't tested it at all yet.  If you are able
to rebuild your kernel with this patch, please let me know if it
does indeed solve your problem.

*** lp.c.ORIG   Fri Jul  2 14:14:39 1993
--- lp.c        Fri Jul  2 14:16:13 1993
***************
*** 439,445 ****
                for (testvalue = 0 ; testvalue < LP_DELAY ; testvalue++)
                        ;
                testvalue = inb_p(LP_B(offset));
!               if (testvalue != 255) {
                        LP_F(offset) |= LP_EXIST;
                        lp_reset(offset);
                        printk("lp_init: lp%d exists (%d), ", offset, testvalue);
--- 439,445 ----
                for (testvalue = 0 ; testvalue < LP_DELAY ; testvalue++)
                        ;
                testvalue = inb_p(LP_B(offset));
!               if (testvalue == LP_DUMMY) {
                        LP_F(offset) |= LP_EXIST;
                        lp_reset(offset);
                        printk("lp_init: lp%d exists (%d), ", offset, testvalue);

Cheers,
Nigel.
--

Boca Raton, FL, USA.                            uunet!gamble!nigel