Commit 9377b923 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: vmk80xx: move usb_driver (*disconnect) code

The usb_driver (*disconnect) in this driver calls the comedi core
comedi_usb_auto_unconfig() which calls the comedi_driver (*detach).

Move the code in the (*disconnect) to the (*detach) to get all the
disconnect/detach in one place.
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 07b502f5
......@@ -1214,12 +1214,26 @@ static void vmk80xx_detach(struct comedi_device *dev)
{
struct vmk80xx_usb *usb = dev->private;
if (usb) {
down(&usb->limit_sem);
dev->private = NULL;
usb->attached = 0;
up(&usb->limit_sem);
}
if (!usb)
return;
mutex_lock(&glb_mutex);
down(&usb->limit_sem);
dev->private = NULL;
usb->attached = 0;
usb->probed = 0;
usb_set_intfdata(usb->intf, NULL);
usb_kill_anchored_urbs(&usb->rx_anchor);
usb_kill_anchored_urbs(&usb->tx_anchor);
kfree(usb->usb_rx_buf);
kfree(usb->usb_tx_buf);
up(&usb->limit_sem);
mutex_unlock(&glb_mutex);
}
static struct comedi_driver vmk80xx_driver = {
......@@ -1382,30 +1396,7 @@ static int vmk80xx_usb_probe(struct usb_interface *intf,
static void vmk80xx_usb_disconnect(struct usb_interface *intf)
{
struct vmk80xx_usb *dev = usb_get_intfdata(intf);
if (!dev)
return;
comedi_usb_auto_unconfig(intf);
mutex_lock(&glb_mutex);
down(&dev->limit_sem);
dev->probed = 0;
usb_set_intfdata(dev->intf, NULL);
usb_kill_anchored_urbs(&dev->rx_anchor);
usb_kill_anchored_urbs(&dev->tx_anchor);
kfree(dev->usb_rx_buf);
kfree(dev->usb_tx_buf);
dev_info(&intf->dev, "board #%d [%s] now detached\n",
dev->count, dev->board.name);
up(&dev->limit_sem);
mutex_unlock(&glb_mutex);
}
static const struct usb_device_id vmk80xx_usb_id_table[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment