Merge git://git.kvack.org/~bcrl/aio-next
[deliverable/linux.git] / drivers / staging / line6 / variax.h
1 /*
2 * Line6 Linux USB driver - 0.9.1beta
3 *
4 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
5 *
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.
9 *
10 */
11
12 #ifndef VARIAX_H
13 #define VARIAX_H
14
15 #include <linux/spinlock.h>
16 #include <linux/usb.h>
17 #include <linux/wait.h>
18 #include <sound/core.h>
19
20 #include "driver.h"
21
22 #define VARIAX_STARTUP_DELAY1 1000
23 #define VARIAX_STARTUP_DELAY3 100
24 #define VARIAX_STARTUP_DELAY4 100
25
26 /*
27 Stages of Variax startup procedure
28 */
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
37 };
38
39 struct usb_line6_variax {
40 /**
41 Generic Line6 USB data.
42 */
43 struct usb_line6 line6;
44
45 /**
46 Buffer for activation code.
47 */
48 unsigned char *buffer_activate;
49
50 /**
51 Handler for device initializaton.
52 */
53 struct work_struct startup_work;
54
55 /**
56 Timers for device initializaton.
57 */
58 struct timer_list startup_timer1;
59 struct timer_list startup_timer2;
60
61 /**
62 Current progress in startup procedure.
63 */
64 int startup_progress;
65 };
66
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);
71
72 #endif
This page took 0.032371 seconds and 5 git commands to generate.