staging: comedi: 8255_pci: fix possible NULL deref during detach
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / line6 / control.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 LINE6_CONTROL_H
13 #define LINE6_CONTROL_H
14
15 /**
16 List of PODxt Pro controls.
17 See Appendix C of the "PODxt (Pro) Pilot's Handbook" by Line6.
18 Comments after the number refer to the PODxt Pro firmware version required
19 for this feature.
20
21 Please *don't* reformat this file since "control.c" is created automatically
22 from "control.h", and this process depends on the exact formatting of the
23 code and the comments below!
24 */
25
26 /* *INDENT-OFF* */
27
28 enum {
29 POD_tweak = 1,
30 POD_wah_position = 4,
31 POD_compression_gain = 5, /* device: LINE6_BITS_PODXTALL */
32 POD_vol_pedal_position = 7,
33 POD_compression_threshold = 9,
34 POD_pan = 10,
35 POD_amp_model_setup = 11,
36 POD_amp_model = 12, /* firmware: 2.0 */
37 POD_drive = 13,
38 POD_bass = 14,
39 POD_mid = 15, /* device: LINE6_BITS_PODXTALL */
40 POD_lowmid = 15, /* device: LINE6_BITS_BASSPODXTALL */
41 POD_treble = 16, /* device: LINE6_BITS_PODXTALL */
42 POD_highmid = 16, /* device: LINE6_BITS_BASSPODXTALL */
43 POD_chan_vol = 17,
44 POD_reverb_mix = 18, /* device: LINE6_BITS_PODXTALL */
45 POD_effect_setup = 19,
46 POD_band_1_frequency = 20, /* firmware: 2.0 */
47 POD_presence = 21, /* device: LINE6_BITS_PODXTALL */
48 POD_treble__bass = 21, /* device: LINE6_BITS_BASSPODXTALL */
49 POD_noise_gate_enable = 22,
50 POD_gate_threshold = 23,
51 POD_gate_decay_time = 24,
52 POD_stomp_enable = 25,
53 POD_comp_enable = 26,
54 POD_stomp_time = 27,
55 POD_delay_enable = 28,
56 POD_mod_param_1 = 29,
57 POD_delay_param_1 = 30,
58 POD_delay_param_1_note_value = 31,
59 POD_band_2_frequency__bass = 32, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
60 POD_delay_param_2 = 33,
61 POD_delay_volume_mix = 34,
62 POD_delay_param_3 = 35,
63 POD_reverb_enable = 36, /* device: LINE6_BITS_PODXTALL */
64 POD_reverb_type = 37, /* device: LINE6_BITS_PODXTALL */
65 POD_reverb_decay = 38, /* device: LINE6_BITS_PODXTALL */
66 POD_reverb_tone = 39, /* device: LINE6_BITS_PODXTALL */
67 POD_reverb_pre_delay = 40, /* device: LINE6_BITS_PODXTALL */
68 POD_reverb_pre_post = 41, /* device: LINE6_BITS_PODXTALL */
69 POD_band_2_frequency = 42, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
70 POD_band_3_frequency__bass = 42, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
71 POD_wah_enable = 43,
72 POD_modulation_lo_cut = 44, /* device: LINE6_BITS_BASSPODXTALL */
73 POD_delay_reverb_lo_cut = 45, /* device: LINE6_BITS_BASSPODXTALL */
74 POD_volume_pedal_minimum = 46, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
75 POD_eq_pre_post = 46, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
76 POD_volume_pre_post = 47,
77 POD_di_model = 48, /* device: LINE6_BITS_BASSPODXTALL */
78 POD_di_delay = 49, /* device: LINE6_BITS_BASSPODXTALL */
79 POD_mod_enable = 50,
80 POD_mod_param_1_note_value = 51,
81 POD_mod_param_2 = 52,
82 POD_mod_param_3 = 53,
83 POD_mod_param_4 = 54,
84 POD_mod_param_5 = 55, /* device: LINE6_BITS_BASSPODXTALL */
85 POD_mod_volume_mix = 56,
86 POD_mod_pre_post = 57,
87 POD_modulation_model = 58,
88 POD_band_3_frequency = 60, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
89 POD_band_4_frequency__bass = 60, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
90 POD_mod_param_1_double_precision = 61,
91 POD_delay_param_1_double_precision = 62,
92 POD_eq_enable = 63, /* firmware: 2.0 */
93 POD_tap = 64,
94 POD_volume_tweak_pedal_assign = 65,
95 POD_band_5_frequency = 68, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
96 POD_tuner = 69,
97 POD_mic_selection = 70,
98 POD_cabinet_model = 71,
99 POD_stomp_model = 75,
100 POD_roomlevel = 76,
101 POD_band_4_frequency = 77, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
102 POD_band_6_frequency = 77, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
103 POD_stomp_param_1_note_value = 78,
104 POD_stomp_param_2 = 79,
105 POD_stomp_param_3 = 80,
106 POD_stomp_param_4 = 81,
107 POD_stomp_param_5 = 82,
108 POD_stomp_param_6 = 83,
109 POD_amp_switch_select = 84, /* device: LINE6_BITS_LIVE */
110 POD_delay_param_4 = 85,
111 POD_delay_param_5 = 86,
112 POD_delay_pre_post = 87,
113 POD_delay_model = 88, /* device: LINE6_BITS_PODXTALL */
114 POD_delay_verb_model = 88, /* device: LINE6_BITS_BASSPODXTALL */
115 POD_tempo_msb = 89,
116 POD_tempo_lsb = 90,
117 POD_wah_model = 91, /* firmware: 3.0 */
118 POD_bypass_volume = 105, /* firmware: 2.14 */
119 POD_fx_loop_on_off = 107, /* device: LINE6_BITS_PRO */
120 POD_tweak_param_select = 108,
121 POD_amp1_engage = 111,
122 POD_band_1_gain = 114, /* firmware: 2.0 */
123 POD_band_2_gain__bass = 115, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
124 POD_band_2_gain = 116, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
125 POD_band_3_gain__bass = 116, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
126 POD_band_3_gain = 117, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
127 POD_band_4_gain__bass = 117, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
128 POD_band_5_gain__bass = 118, /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
129 POD_band_4_gain = 119, /* device: LINE6_BITS_PODXTALL */ /* firmware: 2.0 */
130 POD_band_6_gain__bass = 119 /* device: LINE6_BITS_BASSPODXTALL */ /* firmware: 2.0 */
131 };
132
133 /**
134 List of Variax workbench controls (dump).
135 */
136 enum {
137 VARIAX_body = 3,
138 VARIAX_pickup1_enable = 4, /* 0: enabled, 1: disabled */
139 VARIAX_pickup1_type = 8,
140 VARIAX_pickup1_position = 9, /* type: 24 bit float */
141 VARIAX_pickup1_angle = 12, /* type: 24 bit float */
142 VARIAX_pickup1_level = 15, /* type: 24 bit float */
143 VARIAX_pickup2_enable = 18, /* 0: enabled, 1: disabled */
144 VARIAX_pickup2_type = 22,
145 VARIAX_pickup2_position = 23, /* type: 24 bit float */
146 VARIAX_pickup2_angle = 26, /* type: 24 bit float */
147 VARIAX_pickup2_level = 29, /* type: 24 bit float */
148 VARIAX_pickup_phase = 32, /* 0: in phase, 1: out of phase */
149 VARIAX_capacitance = 33, /* type: 24 bit float */
150 VARIAX_tone_resistance = 36, /* type: 24 bit float */
151 VARIAX_volume_resistance = 39, /* type: 24 bit float */
152 VARIAX_taper = 42, /* 0: Linear, 1: Audio */
153 VARIAX_tone_dump = 43, /* type: 24 bit float */
154 VARIAX_save_tone = 46,
155 VARIAX_volume_dump = 47, /* type: 24 bit float */
156 VARIAX_tuning_enable = 50,
157 VARIAX_tuning6 = 51,
158 VARIAX_tuning5 = 52,
159 VARIAX_tuning4 = 53,
160 VARIAX_tuning3 = 54,
161 VARIAX_tuning2 = 55,
162 VARIAX_tuning1 = 56,
163 VARIAX_detune6 = 57, /* type: 24 bit float */
164 VARIAX_detune5 = 60, /* type: 24 bit float */
165 VARIAX_detune4 = 63, /* type: 24 bit float */
166 VARIAX_detune3 = 66, /* type: 24 bit float */
167 VARIAX_detune2 = 69, /* type: 24 bit float */
168 VARIAX_detune1 = 72, /* type: 24 bit float */
169 VARIAX_mix6 = 75, /* type: 24 bit float */
170 VARIAX_mix5 = 78, /* type: 24 bit float */
171 VARIAX_mix4 = 81, /* type: 24 bit float */
172 VARIAX_mix3 = 84, /* type: 24 bit float */
173 VARIAX_mix2 = 87, /* type: 24 bit float */
174 VARIAX_mix1 = 90, /* type: 24 bit float */
175 VARIAX_pickup_wiring = 96 /* 0: parallel, 1: series */
176 };
177
178 /**
179 List of Variax workbench controls (MIDI).
180 */
181 enum {
182 VARIAXMIDI_volume = 7,
183 VARIAXMIDI_tone = 79,
184 };
185
186 /* *INDENT-ON* */
187
188 extern int line6_pod_create_files(int firmware, int type, struct device *dev);
189 extern void line6_pod_remove_files(int firmware, int type, struct device *dev);
190 extern int line6_variax_create_files(int firmware, int type,
191 struct device *dev);
192 extern void line6_variax_remove_files(int firmware, int type,
193 struct device *dev);
194
195 #endif