static void line6_cleanup_pcm(struct snd_pcm *pcm) { struct snd_line6_pcm *line6pcm = snd_pcm_chip(pcm); cleanup_urbs(&line6pcm->out); cleanup_urbs(&line6pcm->in); kfree(line6pcm); }
static void line6_cleanup_pcm(struct snd_pcm *pcm) { struct snd_line6_pcm *line6pcm = snd_pcm_chip(pcm); cleanup_urbs(&line6pcm->out, line6pcm->line6->iso_buffers); cleanup_urbs(&line6pcm->in, line6pcm->line6->iso_buffers); kfree(line6pcm); }
/* Cleanup the PCM device. */ static void line6_cleanup_pcm(struct snd_pcm *pcm) { int i; struct snd_line6_pcm *line6pcm = snd_pcm_chip(pcm); #ifdef CONFIG_LINE6_USB_IMPULSE_RESPONSE device_remove_file(line6pcm->line6->ifcdev, &dev_attr_impulse_volume); device_remove_file(line6pcm->line6->ifcdev, &dev_attr_impulse_period); #endif for (i = LINE6_ISO_BUFFERS; i--;) { if (line6pcm->urb_audio_out[i]) { usb_kill_urb(line6pcm->urb_audio_out[i]); usb_free_urb(line6pcm->urb_audio_out[i]); } if (line6pcm->urb_audio_in[i]) { usb_kill_urb(line6pcm->urb_audio_in[i]); usb_free_urb(line6pcm->urb_audio_in[i]); } } }