static void variax_startup3(struct usb_line6_variax *variax) { CHECK_STARTUP_PROGRESS(variax->startup_progress, VARIAX_STARTUP_WAIT); /* delay startup procedure: */ line6_start_timer(&variax->startup_timer2, VARIAX_STARTUP_DELAY3, variax_startup4, (unsigned long)variax); }
static void variax_startup1(struct usb_line6_variax *variax) { CHECK_STARTUP_PROGRESS(variax->startup_progress, VARIAX_STARTUP_INIT); line6_start_timer(&variax->startup_timer1, VARIAX_STARTUP_DELAY1, variax_startup2, (unsigned long)variax); }
static void variax_startup4(unsigned long data) { struct usb_line6_variax *variax = (struct usb_line6_variax *)data; CHECK_STARTUP_PROGRESS(variax->startup_progress, VARIAX_STARTUP_ACTIVATE); /* activate device: */ variax_activate_async(variax, 1); line6_start_timer(&variax->startup_timer2, VARIAX_STARTUP_DELAY4, variax_startup5, (unsigned long)variax); }
static void variax_startup2(unsigned long data) { struct usb_line6_variax *variax = (struct usb_line6_variax *)data; struct usb_line6 *line6 = &variax->line6; /* schedule another startup procedure until startup is complete: */ if (variax->startup_progress >= VARIAX_STARTUP_LAST) return; variax->startup_progress = VARIAX_STARTUP_VERSIONREQ; line6_start_timer(&variax->startup_timer1, VARIAX_STARTUP_DELAY1, variax_startup2, (unsigned long)variax); /* request firmware version: */ line6_version_request_async(line6); }
static void variax_startup2(unsigned long data) { struct usb_line6_variax *variax = (struct usb_line6_variax *)data; struct usb_line6 *line6 = &variax->line6; if (variax->startup_progress >= VARIAX_STARTUP_LAST) return; variax->startup_progress = VARIAX_STARTUP_VERSIONREQ; line6_start_timer(&variax->startup_timer1, VARIAX_STARTUP_DELAY1, variax_startup2, (unsigned long)variax); line6_version_request_async(line6); }