Ejemplo n.º 1
0
static void free_usb_related_resources(struct ua101 *ua,
				       struct usb_interface *interface)
{
	unsigned int i;
	struct usb_interface *intf;

	mutex_lock(&ua->mutex);
	free_stream_urbs(&ua->capture);
	free_stream_urbs(&ua->playback);
	mutex_unlock(&ua->mutex);
	free_stream_buffers(ua, &ua->capture);
	free_stream_buffers(ua, &ua->playback);

	for (i = 0; i < ARRAY_SIZE(ua->intf); ++i) {
		mutex_lock(&ua->mutex);
		intf = ua->intf[i];
		ua->intf[i] = NULL;
		mutex_unlock(&ua->mutex);
		if (intf) {
			usb_set_intfdata(intf, NULL);
			if (intf != interface)
				usb_driver_release_interface(&ua101_driver,
							     intf);
		}
	}
}
Ejemplo n.º 2
0
static void free_usb_related_resources(struct ua101 *ua,
                                       struct usb_interface *interface)
{
    unsigned int i;

    free_stream_urbs(&ua->capture);
    free_stream_urbs(&ua->playback);
    free_stream_buffers(ua, &ua->capture);
    free_stream_buffers(ua, &ua->playback);

    for (i = 0; i < ARRAY_SIZE(ua->intf); ++i)
        if (ua->intf[i]) {
            usb_set_intfdata(ua->intf[i], NULL);
            if (ua->intf[i] != interface)
                usb_driver_release_interface(&ua101_driver,
                                             ua->intf[i]);
        }
}