Re: Intel ICH - sound/pci/intel8x0.c

From: Jon Smirl
Date: Sun Sep 05 2004 - 23:08:27 EST


> On Sun, 05 Sep 2004 21:49:50 +0100 Alan Cox wrote:
> | On Sul, 2004-09-05 at 22:24, Jon Smirl wrote:
> | > I'd don't know enough about the LPC bridge chip to know what the
> | > correct answer is for this. Right now I tend to think that the PCI
> | > driver should own the bridge chip. If not the PCI driver then there
> | > should be an explicit bridge driver. I don' think it is correct that a
> | > joystick driver is attaching to a bridge chip given the simple fact
> |
> | Nobody else currently needs to attach to it so why make life needlessly
> | complicated.

I just spent a while looking at the code. The joystick driver doesn't
need to exist. Instead the snd_intel8x0_probe() routine could have a
loop that does pci_get_subsys() over the ID's in
snd_intel8x0_joystick_ids[]. When it finds one, use the config space
to enable the joystick/midiports. You can locate the ports since
pci_get_subsys() returns the pci_dev* for the bridge device. Save the
pci_dev* and set the ports back in snd_intel8x0_remove(). Don't forget
to pci_put() the bridge device.

This isn't a device driver for the bridge, we just want to locate it
and flip some bits. Later on if a driver for the bridge get written it
should support an API for setting these bits and the search loop can
be removed.

All of these devices are listed as Intel LPC bridges:
2410, 2420, 2440, 244c, 2450, 2480, 2484, 24c0, 24cc, 24d0, 24dc,
25a1, 2640, 2641, 2642
I have a 24D0 which isn't in the driver list, this is probably why
MIDI doesn't work on my system.

--
Jon Smirl
jonsmirl@xxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/