[parisc-linux-cvs] Cujo support & Serial cleanups

Matthew Wilcox willy@debian.org
Thu, 30 Aug 2001 01:26:41 +0100


On Wed, Aug 29, 2001 at 08:59:42PM +0100, Richard Hirst wrote:
> On Tue, Aug 28, 2001 at 02:35:40PM +0100, Matthew Wilcox wrote:
> > Maybe.  Or maybe it broke it and nobody noticed yet.  Could someone who
> > had this problem previously let us know if it's affecting them now?
> 
> I can confirm that with a cvs kernel (2.4.9-pa10) that the serial ports
> on my B180 are indeed reversed, so it looks like those table entries
> need restoring.

I can confirm that's true on this C360 too (it's in a C200 case;
that confused me :-)  But adding the additional matches won't help;
the parisc_device changes broke this strategy (see footnote).  Some
ideas for fixing:

1. We could add a kludge-driver before the real driver that recognises
these devices.  This approximates the previous behaviour most closely.

2. We could scan the device list in the reverse order.  I don't really
like this option.  We'd have to disable the additional buswalks that
some machines do below dino as well since the C360 has a Cujo with an
unattached serial port.  That's planned anyway.

3. Once we have the iotree, we could pick them up in tree order, since
Lasi comes before Dino in tree order.

4. We could hack the table of parisc_devices that we got from PDC to
put the Dino serial port in order (ie under Dino instead of at the
head of the list).

Other suggestions welcomed.

It worked before the parisc_device patch because we registered an array
of drivers, then it was:

	for_each_driver {
		for_each_device {
			compare_spec(device, driver)
		}
	}

And now it's:

	for_each_device {
		match_device(driver, device)
	}
where match_device does:
	for_each_id {
		...
	}

So the loops got switched around and the previous technique doesn't work
any more.

-- 
Revolutions do not require corporate support.