Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8f4ac23 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: comedi_pci: change the comedi_pci_auto_config() 'context'



The comedi_pci_auto_config() function is used to allow the PCI driver
(*probe) function to automatically call the comedi driver (*auto_attach).
This allows the comedi driver to be part of the PnP process when the
PCI device is detected.

Currently the comedi_pci_auto_config() always passes a 'context' of '0'
to comedi_auto_config(). This makes the 'context' a bit useless.

Modify comedi_pci_auto_config() to allow the comedi pci drivers to pass
a 'context' from the PCI driver.

Make all the comedi pci drivers pass the pci_device_id 'driver_data' as
the 'context'. Since none of the comedi pci drivers currently set the
'driver_data' the 'context' will still be '0'.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 451fb766
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -72,13 +72,15 @@ EXPORT_SYMBOL_GPL(comedi_pci_disable);
 * comedi_pci_auto_config() - Configure/probe a comedi PCI driver.
 * @pcidev: pci_dev struct
 * @driver: comedi_driver struct
 * @context: driver specific data, passed to comedi_auto_config()
 *
 * Typically called from the pci_driver (*probe) function.
 */
int comedi_pci_auto_config(struct pci_dev *pcidev,
			   struct comedi_driver *driver)
			   struct comedi_driver *driver,
			   unsigned long context)
{
	return comedi_auto_config(&pcidev->dev, driver, 0);
	return comedi_auto_config(&pcidev->dev, driver, context);
}
EXPORT_SYMBOL_GPL(comedi_pci_auto_config);

+2 −1
Original line number Diff line number Diff line
@@ -387,7 +387,8 @@ struct pci_dev *comedi_to_pci_dev(struct comedi_device *);
int comedi_pci_enable(struct pci_dev *, const char *);
void comedi_pci_disable(struct pci_dev *);

int comedi_pci_auto_config(struct pci_dev *, struct comedi_driver *);
int comedi_pci_auto_config(struct pci_dev *, struct comedi_driver *,
			   unsigned long context);
void comedi_pci_auto_unconfig(struct pci_dev *);

int comedi_pci_driver_register(struct comedi_driver *, struct pci_driver *);
+2 −2
Original line number Diff line number Diff line
@@ -311,9 +311,9 @@ static struct comedi_driver pci_8255_driver = {
};

static int pci_8255_pci_probe(struct pci_dev *dev,
					const struct pci_device_id *ent)
			      const struct pci_device_id *id)
{
	return comedi_pci_auto_config(dev, &pci_8255_driver);
	return comedi_pci_auto_config(dev, &pci_8255_driver, id->driver_data);
}

static DEFINE_PCI_DEVICE_TABLE(pci_8255_pci_table) = {
+2 −2
Original line number Diff line number Diff line
@@ -50,9 +50,9 @@ static struct comedi_driver apci035_driver = {
};

static int apci035_pci_probe(struct pci_dev *dev,
				       const struct pci_device_id *ent)
			     const struct pci_device_id *id)
{
	return comedi_pci_auto_config(dev, &apci035_driver);
	return comedi_pci_auto_config(dev, &apci035_driver, id->driver_data);
}

static DEFINE_PCI_DEVICE_TABLE(apci035_pci_table) = {
+2 −2
Original line number Diff line number Diff line
@@ -373,9 +373,9 @@ static struct comedi_driver apci1032_driver = {
};

static int apci1032_pci_probe(struct pci_dev *dev,
					const struct pci_device_id *ent)
			      const struct pci_device_id *id)
{
	return comedi_pci_auto_config(dev, &apci1032_driver);
	return comedi_pci_auto_config(dev, &apci1032_driver, id->driver_data);
}

static DEFINE_PCI_DEVICE_TABLE(apci1032_pci_table) = {
Loading