Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

H Hartley Sweeten and committed by
Greg Kroah-Hartman
55ab4f64 29d6dd33

+10 -7
+4 -2
drivers/staging/comedi/comedi_usb.c
··· 38 38 * comedi_usb_auto_config() - Configure/probe a comedi USB driver. 39 39 * @intf: usb_interface struct 40 40 * @driver: comedi_driver struct 41 + * @context: driver specific data, passed to comedi_auto_config() 41 42 * 42 43 * Typically called from the usb_driver (*probe) function. 43 44 */ 44 45 int comedi_usb_auto_config(struct usb_interface *intf, 45 - struct comedi_driver *driver) 46 + struct comedi_driver *driver, 47 + unsigned long context) 46 48 { 47 - return comedi_auto_config(&intf->dev, driver, 0); 49 + return comedi_auto_config(&intf->dev, driver, context); 48 50 } 49 51 EXPORT_SYMBOL_GPL(comedi_usb_auto_config); 50 52
+2 -1
drivers/staging/comedi/comedidev.h
··· 476 476 477 477 struct usb_interface *comedi_to_usb_interface(struct comedi_device *); 478 478 479 - int comedi_usb_auto_config(struct usb_interface *, struct comedi_driver *); 479 + int comedi_usb_auto_config(struct usb_interface *, struct comedi_driver *, 480 + unsigned long context); 480 481 void comedi_usb_auto_unconfig(struct usb_interface *); 481 482 482 483 int comedi_usb_driver_register(struct comedi_driver *, struct usb_driver *);
+1 -1
drivers/staging/comedi/drivers/usbdux.c
··· 2388 2388 "Could not upload firmware (err=%d)\n", ret); 2389 2389 goto out; 2390 2390 } 2391 - comedi_usb_auto_config(uinterf, &usbdux_driver); 2391 + comedi_usb_auto_config(uinterf, &usbdux_driver, 0); 2392 2392 out: 2393 2393 release_firmware(fw); 2394 2394 }
+1 -1
drivers/staging/comedi/drivers/usbduxfast.c
··· 1490 1490 goto out; 1491 1491 } 1492 1492 1493 - comedi_usb_auto_config(uinterf, &usbduxfast_driver); 1493 + comedi_usb_auto_config(uinterf, &usbduxfast_driver, 0); 1494 1494 out: 1495 1495 release_firmware(fw); 1496 1496 }
+1 -1
drivers/staging/comedi/drivers/usbduxsigma.c
··· 2374 2374 "Could not upload firmware (err=%d)\n", ret); 2375 2375 goto out; 2376 2376 } 2377 - comedi_usb_auto_config(uinterf, &usbduxsigma_driver); 2377 + comedi_usb_auto_config(uinterf, &usbduxsigma_driver, 0); 2378 2378 out: 2379 2379 release_firmware(fw); 2380 2380 }
+1 -1
drivers/staging/comedi/drivers/vmk80xx.c
··· 1401 1401 1402 1402 mutex_unlock(&glb_mutex); 1403 1403 1404 - comedi_usb_auto_config(intf, &vmk80xx_driver); 1404 + comedi_usb_auto_config(intf, &vmk80xx_driver, id->driver_info); 1405 1405 1406 1406 return 0; 1407 1407