summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi
diff options
context:
space:
mode:
authorJ. Ali Harlow <ali@avrc.city.ac.uk>2011-05-18 19:18:56 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2011-05-18 14:32:07 -0700
commit8ba69ce4b3567de881514c61ea8b04b14d8e68ae (patch)
tree93cf57660204894d5c936dff08dcfca0cda90e7d /drivers/staging/comedi
parentc647ed568af52cc75ece267ff02937d9263d1d27 (diff)
comedi vmk80xx: support comedi auto-configuration
Add support for automatically associating a vmk8055 device with a comedi device (previously the user had to use comedi_num_legacy_minors to reserve device slots and then associate them with vmk8055 devices using comedi_config). Tested on multiple K8055s, but not on K8061s. Signed-off-by: J. Ali Harlow <ali@avrc.city.ac.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r--drivers/staging/comedi/drivers/vmk80xx.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c
index 04c085fd790d..3d13ca6e1670 100644
--- a/drivers/staging/comedi/drivers/vmk80xx.c
+++ b/drivers/staging/comedi/drivers/vmk80xx.c
@@ -64,6 +64,8 @@ Changelog:
#include "../comedidev.h"
+#define BOARDNAME "vmk80xx"
+
MODULE_AUTHOR("Manuel Gebele <forensixs@gmx.de>");
MODULE_DESCRIPTION("Velleman USB Board Low-Level Driver");
MODULE_SUPPORTED_DEVICE("K8055/K8061 aka VM110/VM140");
@@ -1480,6 +1482,8 @@ static int vmk80xx_probe(struct usb_interface *intf,
mutex_unlock(&glb_mutex);
+ comedi_usb_auto_config(dev->udev, BOARDNAME);
+
return 0;
error:
mutex_unlock(&glb_mutex);
@@ -1496,6 +1500,8 @@ static void vmk80xx_disconnect(struct usb_interface *intf)
if (!dev)
return;
+ comedi_usb_auto_unconfig(dev->udev);
+
mutex_lock(&glb_mutex);
down(&dev->limit_sem);
@@ -1533,10 +1539,16 @@ static struct comedi_driver driver_vmk80xx = {
static int __init vmk80xx_init(void)
{
+ int retval;
+
printk(KERN_INFO "vmk80xx: version 0.8.01 "
"Manuel Gebele <forensixs@gmx.de>\n");
- usb_register(&vmk80xx_driver);
- return comedi_driver_register(&driver_vmk80xx);
+
+ retval = comedi_driver_register(&driver_vmk80xx);
+ if (retval < 0)
+ return retval;
+
+ return usb_register(&vmk80xx_driver);
}
static void __exit vmk80xx_exit(void)