Re: [PATCH] add PCI ROMs to sysfs

From: Vojtech Pavlik
Date: Sat Jul 31 2004 - 05:03:03 EST


On Fri, Jul 30, 2004 at 02:53:25PM -0700, Jon Smirl wrote:
> Here's another grungy thing I needed to do to PCI. Multi-headed video
> cards don't really implement independent PCI devices even though they
> look like independent devices. I've heard that this behavior is needed
> for MS Windows compatibility.
>
> I'm missing a PCI call to claim ownership for the secondary device
> without also causing a second instance of my driver to be loaded.
> Here's the code I'm using, what's the right way to do this?
>
> struct pci_dev *secondary;
> /* check the next function on the same card */
> secondary = pci_find_slot(dev->pdev->bus->number, dev->pdev->devfn +
> 1);
> if (secondary) {
> /* check if class is secondary video */
> if (secondary->class == 0x038000) {
> DRM_DEBUG("registering secondary video head\n");
> /* This code is need to bind the driver to the secondary device */
> /* There is no direct pci call to do this, there should be one */
> secondary->dev.driver = dev->pdev->dev.driver;
> device_bind_driver(&secondary->dev);
> /* dev->pdev->driver is not filled until after probe completes */
> secondary->driver = to_pci_driver(dev->pdev->dev.driver);
> pci_dev_get(secondary);
> }
> }

You can do that, but where is the problem with your probe function being
called twice - once for each of the devices? You should be able to sort
out which one is which rather easily.

--
Vojtech Pavlik
SuSE Labs, SuSE CR
-
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/