Merge branch 'for-3.11' of git://linux-nfs.org/~bfields/linux
[linux-2.6.git] / drivers / staging / line6 / variax.h
blob24de79620d8963ddbe313ba60927a0ea5e0af530
1 /*
2 * Line6 Linux USB driver - 0.9.1beta
4 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation, version 2.
12 #ifndef VARIAX_H
13 #define VARIAX_H
15 #include <linux/spinlock.h>
16 #include <linux/usb.h>
17 #include <linux/wait.h>
18 #include <sound/core.h>
20 #include "driver.h"
22 #define VARIAX_STARTUP_DELAY1 1000
23 #define VARIAX_STARTUP_DELAY3 100
24 #define VARIAX_STARTUP_DELAY4 100
27 Stages of Variax startup procedure
29 enum {
30 VARIAX_STARTUP_INIT = 1,
31 VARIAX_STARTUP_VERSIONREQ,
32 VARIAX_STARTUP_WAIT,
33 VARIAX_STARTUP_ACTIVATE,
34 VARIAX_STARTUP_WORKQUEUE,
35 VARIAX_STARTUP_SETUP,
36 VARIAX_STARTUP_LAST = VARIAX_STARTUP_SETUP - 1
39 struct usb_line6_variax {
40 /**
41 Generic Line6 USB data.
43 struct usb_line6 line6;
45 /**
46 Buffer for activation code.
48 unsigned char *buffer_activate;
50 /**
51 Handler for device initializaton.
53 struct work_struct startup_work;
55 /**
56 Timers for device initializaton.
58 struct timer_list startup_timer1;
59 struct timer_list startup_timer2;
61 /**
62 Current progress in startup procedure.
64 int startup_progress;
67 extern void line6_variax_disconnect(struct usb_interface *interface);
68 extern int line6_variax_init(struct usb_interface *interface,
69 struct usb_line6_variax *variax);
70 extern void line6_variax_process_message(struct usb_line6_variax *variax);
72 #endif