/* Toneport destructor. */ static void toneport_destruct(struct usb_interface *interface) { struct usb_line6_toneport *toneport = usb_get_intfdata(interface); if (toneport == NULL) return; line6_cleanup_audio(&toneport->line6); }
/* Variax destructor. */ static void variax_destruct(struct usb_interface *interface) { struct usb_line6_variax *variax = usb_get_intfdata(interface); if (variax == NULL) return; line6_cleanup_audio(&variax->line6); del_timer(&variax->startup_timer1); del_timer(&variax->startup_timer2); cancel_work_sync(&variax->startup_work); /* free dump request data: */ line6_dumpreq_destructbuf(&variax->dumpreq, 2); line6_dumpreq_destructbuf(&variax->dumpreq, 1); line6_dumpreq_destruct(&variax->dumpreq); kfree(variax->buffer_activate); }
/* Variax destructor. */ static void variax_destruct(struct usb_interface *interface) { struct usb_line6_variax *variax = usb_get_intfdata(interface); struct usb_line6 *line6; if (variax == NULL) return; line6 = &variax->line6; if (line6 == NULL) return; line6_cleanup_audio(line6); /* free dump request data: */ line6_dumpreq_destructbuf(&variax->dumpreq, 2); line6_dumpreq_destructbuf(&variax->dumpreq, 1); line6_dumpreq_destruct(&variax->dumpreq); kfree(variax->buffer_activate); del_timer_sync(&variax->activate_timer); }