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

Commit 4c093a6d authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman
Browse files

staging: comedi: pass 'struct comedi_driver *' to comedi_..._auto_config



The comedi_pci_auto_config() and comedi_usb_auto_config() functions
currently take a board name parameter which is actually a driver name
parameter.  Replace it with a pointer to the struct comedi_driver.  This
will allow comedi_pci_auto_config() and comedi_usb_auto_config() to call
bus-type-specific auto-configuration hooks in the struct comedi_driver
if they exist (they don't yet).  The idea is that these
bus-type-specific auto-configuration hooks won't have to search the bus
for the device being auto-configured like 'attach()' hook has to.

Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2e3c024d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -456,10 +456,12 @@ static inline void *comedi_aux_data(int options[], int n)
int comedi_alloc_subdevice_minor(struct comedi_device *dev,
				 struct comedi_subdevice *s);
void comedi_free_subdevice_minor(struct comedi_subdevice *s);
int comedi_pci_auto_config(struct pci_dev *pcidev, const char *board_name);
int comedi_pci_auto_config(struct pci_dev *pcidev,
			   struct comedi_driver *driver);
void comedi_pci_auto_unconfig(struct pci_dev *pcidev);
struct usb_device;		/* forward declaration */
int comedi_usb_auto_config(struct usb_device *usbdev, const char *board_name);
int comedi_usb_auto_config(struct usb_device *usbdev,
			   struct comedi_driver *driver);
void comedi_usb_auto_unconfig(struct usb_device *usbdev);

#ifdef CONFIG_COMEDI_PCI_DRIVERS
+5 −4
Original line number Diff line number Diff line
@@ -874,7 +874,7 @@ static void comedi_auto_unconfig(struct device *hardware_device)
	kfree(minor);
}

int comedi_pci_auto_config(struct pci_dev *pcidev, const char *board_name)
int comedi_pci_auto_config(struct pci_dev *pcidev, struct comedi_driver *driver)
{
	int options[2];

@@ -883,7 +883,7 @@ int comedi_pci_auto_config(struct pci_dev *pcidev, const char *board_name)
	/*  pci slot */
	options[1] = PCI_SLOT(pcidev->devfn);

	return comedi_auto_config(&pcidev->dev, board_name,
	return comedi_auto_config(&pcidev->dev, driver->driver_name,
				  options, ARRAY_SIZE(options));
}
EXPORT_SYMBOL_GPL(comedi_pci_auto_config);
@@ -894,10 +894,11 @@ void comedi_pci_auto_unconfig(struct pci_dev *pcidev)
}
EXPORT_SYMBOL_GPL(comedi_pci_auto_unconfig);

int comedi_usb_auto_config(struct usb_device *usbdev, const char *board_name)
int comedi_usb_auto_config(struct usb_device *usbdev,
			   struct comedi_driver *driver)
{
	BUG_ON(usbdev == NULL);
	return comedi_auto_config(&usbdev->dev, board_name, NULL, 0);
	return comedi_auto_config(&usbdev->dev, driver->driver_name, NULL, 0);
}
EXPORT_SYMBOL_GPL(comedi_usb_auto_config);

+1 −1
Original line number Diff line number Diff line
@@ -2543,7 +2543,7 @@ static struct comedi_driver driver_addi = {
static int __devinit driver_addi_pci_probe(struct pci_dev *dev,
					   const struct pci_device_id *ent)
{
	return comedi_pci_auto_config(dev, driver_addi.driver_name);
	return comedi_pci_auto_config(dev, &driver_addi);
}

static void __devexit driver_addi_pci_remove(struct pci_dev *dev)
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ static struct comedi_driver driver_pci6208 = {
static int __devinit driver_pci6208_pci_probe(struct pci_dev *dev,
					      const struct pci_device_id *ent)
{
	return comedi_pci_auto_config(dev, driver_pci6208.driver_name);
	return comedi_pci_auto_config(dev, &driver_pci6208);
}

static void __devexit driver_pci6208_pci_remove(struct pci_dev *dev)
+1 −1
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ static int __devinit driver_adl_pci7230_pci_probe(struct pci_dev *dev,
						  const struct pci_device_id
						  *ent)
{
	return comedi_pci_auto_config(dev, driver_adl_pci7230.driver_name);
	return comedi_pci_auto_config(dev, &driver_adl_pci7230);
}

static void __devexit driver_adl_pci7230_pci_remove(struct pci_dev *dev)
Loading