mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-13 21:18:01 +07:00
staging: comedi: comedi_usb: allow comedi usb drivers to pass a 'context'
Allow the comedi usb drivers to pass a 'context' from their (*probe) functions to the comedi core's comedi_usb_auto_config(). This 'context' is then passed to comedi_auto_config() and then to the comedi_driver's (*auto_attach). Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
29d6dd3310
commit
55ab4f641a
@ -38,13 +38,15 @@ EXPORT_SYMBOL_GPL(comedi_to_usb_interface);
|
|||||||
* comedi_usb_auto_config() - Configure/probe a comedi USB driver.
|
* comedi_usb_auto_config() - Configure/probe a comedi USB driver.
|
||||||
* @intf: usb_interface struct
|
* @intf: usb_interface struct
|
||||||
* @driver: comedi_driver struct
|
* @driver: comedi_driver struct
|
||||||
|
* @context: driver specific data, passed to comedi_auto_config()
|
||||||
*
|
*
|
||||||
* Typically called from the usb_driver (*probe) function.
|
* Typically called from the usb_driver (*probe) function.
|
||||||
*/
|
*/
|
||||||
int comedi_usb_auto_config(struct usb_interface *intf,
|
int comedi_usb_auto_config(struct usb_interface *intf,
|
||||||
struct comedi_driver *driver)
|
struct comedi_driver *driver,
|
||||||
|
unsigned long context)
|
||||||
{
|
{
|
||||||
return comedi_auto_config(&intf->dev, driver, 0);
|
return comedi_auto_config(&intf->dev, driver, context);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(comedi_usb_auto_config);
|
EXPORT_SYMBOL_GPL(comedi_usb_auto_config);
|
||||||
|
|
||||||
|
@ -476,7 +476,8 @@ struct usb_interface;
|
|||||||
|
|
||||||
struct usb_interface *comedi_to_usb_interface(struct comedi_device *);
|
struct usb_interface *comedi_to_usb_interface(struct comedi_device *);
|
||||||
|
|
||||||
int comedi_usb_auto_config(struct usb_interface *, struct comedi_driver *);
|
int comedi_usb_auto_config(struct usb_interface *, struct comedi_driver *,
|
||||||
|
unsigned long context);
|
||||||
void comedi_usb_auto_unconfig(struct usb_interface *);
|
void comedi_usb_auto_unconfig(struct usb_interface *);
|
||||||
|
|
||||||
int comedi_usb_driver_register(struct comedi_driver *, struct usb_driver *);
|
int comedi_usb_driver_register(struct comedi_driver *, struct usb_driver *);
|
||||||
|
@ -2388,7 +2388,7 @@ static void usbdux_firmware_request_complete_handler(const struct firmware *fw,
|
|||||||
"Could not upload firmware (err=%d)\n", ret);
|
"Could not upload firmware (err=%d)\n", ret);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
comedi_usb_auto_config(uinterf, &usbdux_driver);
|
comedi_usb_auto_config(uinterf, &usbdux_driver, 0);
|
||||||
out:
|
out:
|
||||||
release_firmware(fw);
|
release_firmware(fw);
|
||||||
}
|
}
|
||||||
|
@ -1490,7 +1490,7 @@ static void usbduxfast_firmware_request_complete_handler(const struct firmware
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
comedi_usb_auto_config(uinterf, &usbduxfast_driver);
|
comedi_usb_auto_config(uinterf, &usbduxfast_driver, 0);
|
||||||
out:
|
out:
|
||||||
release_firmware(fw);
|
release_firmware(fw);
|
||||||
}
|
}
|
||||||
|
@ -2374,7 +2374,7 @@ static void usbdux_firmware_request_complete_handler(const struct firmware *fw,
|
|||||||
"Could not upload firmware (err=%d)\n", ret);
|
"Could not upload firmware (err=%d)\n", ret);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
comedi_usb_auto_config(uinterf, &usbduxsigma_driver);
|
comedi_usb_auto_config(uinterf, &usbduxsigma_driver, 0);
|
||||||
out:
|
out:
|
||||||
release_firmware(fw);
|
release_firmware(fw);
|
||||||
}
|
}
|
||||||
|
@ -1401,7 +1401,7 @@ static int vmk80xx_usb_probe(struct usb_interface *intf,
|
|||||||
|
|
||||||
mutex_unlock(&glb_mutex);
|
mutex_unlock(&glb_mutex);
|
||||||
|
|
||||||
comedi_usb_auto_config(intf, &vmk80xx_driver);
|
comedi_usb_auto_config(intf, &vmk80xx_driver, id->driver_info);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user