[parisc-linux] ASP Parallel port driver broken on HP9000/730

Richard Hirst rhirst@linuxcare.com
Wed, 14 Feb 2001 16:49:25 +0000


I can reproduce this on a 715/75.  When it crashes I get:

  ASP version 1 at 0xf0800000 found.
  LED (ASP-style) display at f0800020 registered
  Found HIL at 0xf0821000, IRQ 94
  HIL: keyboard found at id 3
  parport_init_chip: initialize bidirectional-mode.
  Dumping Stack from c5ff0000 to c5ff0980:


IAOQ = _gsc_readb + 0x0c
r2 = parport_PS2_supported + 0x64
r26 = 0xf0824800

r26 corresponds to

  Scorpio Sr. Core Centronics (10) at 0xf0824000, versions 0x19, 0x0, 0x74, 0x0, 0x0


>From drivers/parport/parport_gsc.c:

        port = ((unsigned long) d->hpa) + PARPORT_GSC_OFFSET;

        /* 
            some older machines with ASP-chip don't support the enhanced parport modes 
        */
        if (!pdc_add_valid( (void *)(port+4))) {
            /* Initialize bidirectional-mode (0x10) & data-tranfer-mode #1 (0x20) */
            printk("%s: initialize bidirectional-mode.\n", __FUNCTION__);
            parport_writeb ( (0x10 + 0x20), port + 4);
        } else {
            printk("%s: enhanced parport-modes not supported.\n", __FUNCTION__);
        }

So, I guess it shouldn't have tried to initialise bidirectional-mode
on my old 715/75 with ASP.  If I force that 'if' to fail, then on reboot
I get:

  ASP version 1 at 0xf0800000 found.
  LED (ASP-style) display at f0800020 registered
  Found HIL at 0xf0821000, IRQ 94
  HIL: keyboard found at id 3
  parport_init_chip: enhanced parport-modes not supported.
  parport0: PC-style at 0xf0824800, irq 88 [PCSPP]
  Found i82596 at 0xf0826000, IRQ 87

And the machine boots ok.  I added debug just to check, (port+4) is
0xf0824804.  So is pdc_add_valid() broken, or is that not the right
address to be testing?

Oh, and a simple 'ls / > /dev/lp0' worked too.

Richard