diff options
Diffstat (limited to 'drivers/staging/line6/variax.h')
| -rw-r--r-- | drivers/staging/line6/variax.h | 94 |
1 files changed, 29 insertions, 65 deletions
diff --git a/drivers/staging/line6/variax.h b/drivers/staging/line6/variax.h index ee330ba3089..24de79620d8 100644 --- a/drivers/staging/line6/variax.h +++ b/drivers/staging/line6/variax.h @@ -1,7 +1,7 @@ /* - * Line6 Linux USB driver - 0.8.0 + * Line6 Linux USB driver - 0.9.1beta * - * Copyright (C) 2004-2009 Markus Grabner (grabner@icg.tugraz.at) + * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -12,97 +12,61 @@ #ifndef VARIAX_H #define VARIAX_H - -#include "driver.h" - #include <linux/spinlock.h> #include <linux/usb.h> #include <linux/wait.h> - #include <sound/core.h> -#include "dumprequest.h" - - -#define VARIAX_ACTIVATE_DELAY 10 -#define VARIAX_STARTUP_DELAY 3 - - -enum { - VARIAX_DUMP_PASS1 = LINE6_DUMP_CURRENT, - VARIAX_DUMP_PASS2, - VARIAX_DUMP_PASS3 -}; +#include "driver.h" +#define VARIAX_STARTUP_DELAY1 1000 +#define VARIAX_STARTUP_DELAY3 100 +#define VARIAX_STARTUP_DELAY4 100 -/** - Binary Variax model dump +/* + Stages of Variax startup procedure */ -struct variax_model { - /** - Header information (including program name). - */ - unsigned char name[18]; - - /** - Model parameters. - */ - unsigned char control[78 * 2]; +enum { + VARIAX_STARTUP_INIT = 1, + VARIAX_STARTUP_VERSIONREQ, + VARIAX_STARTUP_WAIT, + VARIAX_STARTUP_ACTIVATE, + VARIAX_STARTUP_WORKQUEUE, + VARIAX_STARTUP_SETUP, + VARIAX_STARTUP_LAST = VARIAX_STARTUP_SETUP - 1 }; struct usb_line6_variax { /** - Generic Line6 USB data. + Generic Line6 USB data. */ struct usb_line6 line6; /** - Dump request structure. - Append two extra buffers for 3-pass data query. - */ - struct line6_dump_request dumpreq; struct line6_dump_reqbuf extrabuf[2]; - - /** - Buffer for activation code. + Buffer for activation code. */ unsigned char *buffer_activate; /** - Model number. - */ - int model; - - /** - Current model settings. + Handler for device initializaton. */ - struct variax_model model_data; + struct work_struct startup_work; /** - Name of current model bank. + Timers for device initializaton. */ - unsigned char bank[18]; + struct timer_list startup_timer1; + struct timer_list startup_timer2; /** - Position of volume dial. + Current progress in startup procedure. */ - int volume; - - /** - Position of tone control dial. - */ - int tone; - - /** - Timer for delayed activation request. - */ - struct timer_list activate_timer; + int startup_progress; }; - -extern void variax_disconnect(struct usb_interface *interface); -extern int variax_init(struct usb_interface *interface, - struct usb_line6_variax *variax); -extern void variax_process_message(struct usb_line6_variax *variax); - +extern void line6_variax_disconnect(struct usb_interface *interface); +extern int line6_variax_init(struct usb_interface *interface, + struct usb_line6_variax *variax); +extern void line6_variax_process_message(struct usb_line6_variax *variax); #endif |
