canque_free_outslot(obj->qends, m->qedge, m->slot);
m->slot=NULL;
}
-
+
/*FIXME - why there*/
can_msgobj_clear_fl(obj,TX_PENDING);
clear_bit(USBCAN_FREE_TX_URB,&dev->flags);
return;
}
-
+
m = list_first_entry(&dev->tx_idle_list, typeof(*m), list_node);
cmd=canque_test_outslot(obj->qends, &m->qedge, &m->slot);
usb_fill_bulk_urb(u, dev->udev,
usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr),
m->msg, USBCAN_TRANSFER_SIZE, usbcan_tx_callback, m);
-
+
set_bit(USBCAN_MESSAGE_FREE,&m->flags);
set_bit(USBCAN_MESSAGE_TYPE_TX,&m->flags);
list_add_tail(&m->list_node, &dev->tx_idle_list);
}
usb_get_dev(usbdevs->udev);
-
+
/* save our data pointer in this interface device */
usb_set_intfdata(interface, usbdevs);
#endif
struct usbcan_devs *usbdevs = (struct usbcan_devs *)candev->sysdevptr.anydev;
int j;
-
+
if (!usbdevs)
return;
-
+
cleanup_hotplug_dev(usbdevs->candev);
if (usbdevs->devs){
}
unlock_kernel();
-
+
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10))
kref_put(&usbdevs->candev->refcount,release_device);
#else