Linux-2.6.12-rc2
[linux-flexiantxendom0-natty.git] / sound / oss / dmasound / tas3001c_tables.c
1 #include "tas_common.h"
2 #include "tas_eq_prefs.h"
3
4 static struct tas_drce_t eqp_0e_2_1_drce = {
5   .enable     = 1,
6   .above      = { .val = 3.0 * (1<<8), .expand = 0 },
7   .below      = { .val = 1.0 * (1<<8), .expand = 0 },
8   .threshold  = -15.33  * (1<<8),
9   .energy     = 2.4     * (1<<12),
10   .attack     = 0.013   * (1<<12),
11   .decay      = 0.212   * (1<<12),
12 };
13
14 static struct tas_biquad_ctrl_t eqp_0e_2_1_biquads[]={
15   { .channel = 0, .filter = 0, .data = { .coeff = { 0x0FCAD3, 0xE06A58, 0x0FCAD3, 0xE06B09, 0x0F9657 } } },
16   { .channel = 0, .filter = 1, .data = { .coeff = { 0x041731, 0x082E63, 0x041731, 0xFD8D08, 0x02CFBD } } },
17   { .channel = 0, .filter = 2, .data = { .coeff = { 0x0FFDC7, 0xE0524C, 0x0FBFAA, 0xE0524C, 0x0FBD72 } } },
18   { .channel = 0, .filter = 3, .data = { .coeff = { 0x0F3D35, 0xE228CA, 0x0EC7B2, 0xE228CA, 0x0E04E8 } } },
19   { .channel = 0, .filter = 4, .data = { .coeff = { 0x0FCEBF, 0xE181C2, 0x0F2656, 0xE181C2, 0x0EF516 } } },
20   { .channel = 0, .filter = 5, .data = { .coeff = { 0x0EC417, 0x073E22, 0x0B0633, 0x073E22, 0x09CA4A } } },
21
22   { .channel = 1, .filter = 0, .data = { .coeff = { 0x0FCAD3, 0xE06A58, 0x0FCAD3, 0xE06B09, 0x0F9657 } } },
23   { .channel = 1, .filter = 1, .data = { .coeff = { 0x041731, 0x082E63, 0x041731, 0xFD8D08, 0x02CFBD } } },
24   { .channel = 1, .filter = 2, .data = { .coeff = { 0x0FFDC7, 0xE0524C, 0x0FBFAA, 0xE0524C, 0x0FBD72 } } },
25   { .channel = 1, .filter = 3, .data = { .coeff = { 0x0F3D35, 0xE228CA, 0x0EC7B2, 0xE228CA, 0x0E04E8 } } },
26   { .channel = 1, .filter = 4, .data = { .coeff = { 0x0FCEBF, 0xE181C2, 0x0F2656, 0xE181C2, 0x0EF516 } } },
27   { .channel = 1, .filter = 5, .data = { .coeff = { 0x0EC417, 0x073E22, 0x0B0633, 0x073E22, 0x09CA4A } } },
28 };
29
30 static struct tas_eq_pref_t eqp_0e_2_1 = {
31   .sample_rate   = 44100,
32   .device_id     = 0x0e,
33   .output_id     = TAS_OUTPUT_EXTERNAL_SPKR,
34   .speaker_id    = 0x01,
35
36   .drce          = &eqp_0e_2_1_drce,
37
38   .filter_count  = 12,
39   .biquads       = eqp_0e_2_1_biquads
40 };
41
42 /* ======================================================================== */
43
44 static struct tas_drce_t eqp_10_1_0_drce={
45   .enable     = 1,
46   .above      = { .val = 3.0 * (1<<8), .expand = 0 },
47   .below      = { .val = 1.0 * (1<<8), .expand = 0 },
48   .threshold  = -12.46  * (1<<8),
49   .energy     = 2.4     * (1<<12),
50   .attack     = 0.013   * (1<<12),
51   .decay      = 0.212   * (1<<12),
52 };
53
54 static struct tas_biquad_ctrl_t eqp_10_1_0_biquads[]={
55   { .channel = 0, .filter = 0, .data = { .coeff = { 0x0F4A12, 0xE16BDA, 0x0F4A12, 0xE173F0, 0x0E9C3A } } },
56   { .channel = 0, .filter = 1, .data = { .coeff = { 0x02DD54, 0x05BAA8, 0x02DD54, 0xF8001D, 0x037532 } } },
57   { .channel = 0, .filter = 2, .data = { .coeff = { 0x0E2FC7, 0xE4D5DC, 0x0D7477, 0xE4D5DC, 0x0BA43F } } },
58   { .channel = 0, .filter = 3, .data = { .coeff = { 0x0E7899, 0xE67CCA, 0x0D0E93, 0xE67CCA, 0x0B872D } } },
59   { .channel = 0, .filter = 4, .data = { .coeff = { 0x100000, 0x000000, 0x000000, 0x000000, 0x000000 } } },
60   { .channel = 0, .filter = 5, .data = { .coeff = { 0x100000, 0x000000, 0x000000, 0x000000, 0x000000 } } },
61
62   { .channel = 1, .filter = 0, .data = { .coeff = { 0x0F4A12, 0xE16BDA, 0x0F4A12, 0xE173F0, 0x0E9C3A } } },
63   { .channel = 1, .filter = 1, .data = { .coeff = { 0x02DD54, 0x05BAA8, 0x02DD54, 0xF8001D, 0x037532 } } },
64   { .channel = 1, .filter = 2, .data = { .coeff = { 0x0E2FC7, 0xE4D5DC, 0x0D7477, 0xE4D5DC, 0x0BA43F } } },
65   { .channel = 1, .filter = 3, .data = { .coeff = { 0x0E7899, 0xE67CCA, 0x0D0E93, 0xE67CCA, 0x0B872D } } },
66   { .channel = 1, .filter = 4, .data = { .coeff = { 0x100000, 0x000000, 0x000000, 0x000000, 0x000000 } } },
67   { .channel = 1, .filter = 5, .data = { .coeff = { 0x100000, 0x000000, 0x000000, 0x000000, 0x000000 } } },
68 };
69
70 static struct tas_eq_pref_t eqp_10_1_0 = {
71   .sample_rate   = 44100,
72   .device_id     = 0x10,
73   .output_id     = TAS_OUTPUT_INTERNAL_SPKR,
74   .speaker_id    = 0x00,
75
76   .drce          = &eqp_10_1_0_drce,
77
78   .filter_count  = 12,
79   .biquads       = eqp_10_1_0_biquads
80 };
81
82 /* ======================================================================== */
83
84 static struct tas_drce_t eqp_15_2_1_drce={
85   .enable     = 1,
86   .above      = { .val = 3.0 * (1<<8), .expand = 0 },
87   .below      = { .val = 1.0 * (1<<8), .expand = 0 },
88   .threshold  = -15.33  * (1<<8),
89   .energy     = 2.4     * (1<<12),
90   .attack     = 0.013   * (1<<12),
91   .decay      = 0.212   * (1<<12),
92 };
93
94 static struct tas_biquad_ctrl_t eqp_15_2_1_biquads[]={
95   { .channel = 0, .filter = 0, .data = { .coeff = { 0x0FE143, 0xE05204, 0x0FCCC5, 0xE05266, 0x0FAE6B } } },
96   { .channel = 0, .filter = 1, .data = { .coeff = { 0x102383, 0xE03A03, 0x0FA325, 0xE03A03, 0x0FC6A8 } } },
97   { .channel = 0, .filter = 2, .data = { .coeff = { 0x0FF2AB, 0xE06285, 0x0FB20A, 0xE06285, 0x0FA4B5 } } },
98   { .channel = 0, .filter = 3, .data = { .coeff = { 0x0F544D, 0xE35971, 0x0D8F3A, 0xE35971, 0x0CE388 } } },
99   { .channel = 0, .filter = 4, .data = { .coeff = { 0x13E1D3, 0xF3ECB5, 0x042227, 0xF3ECB5, 0x0803FA } } },
100   { .channel = 0, .filter = 5, .data = { .coeff = { 0x0AC119, 0x034181, 0x078AB1, 0x034181, 0x024BCA } } },
101
102   { .channel = 1, .filter = 0, .data = { .coeff = { 0x0FE143, 0xE05204, 0x0FCCC5, 0xE05266, 0x0FAE6B } } },
103   { .channel = 1, .filter = 1, .data = { .coeff = { 0x102383, 0xE03A03, 0x0FA325, 0xE03A03, 0x0FC6A8 } } },
104   { .channel = 1, .filter = 2, .data = { .coeff = { 0x0FF2AB, 0xE06285, 0x0FB20A, 0xE06285, 0x0FA4B5 } } },
105   { .channel = 1, .filter = 3, .data = { .coeff = { 0x0F544D, 0xE35971, 0x0D8F3A, 0xE35971, 0x0CE388 } } },
106   { .channel = 1, .filter = 4, .data = { .coeff = { 0x13E1D3, 0xF3ECB5, 0x042227, 0xF3ECB5, 0x0803FA } } },
107   { .channel = 1, .filter = 5, .data = { .coeff = { 0x0AC119, 0x034181, 0x078AB1, 0x034181, 0x024BCA } } },
108 };
109
110 static struct tas_eq_pref_t eqp_15_2_1 = {
111   .sample_rate   = 44100,
112   .device_id     = 0x15,
113   .output_id     = TAS_OUTPUT_EXTERNAL_SPKR,
114   .speaker_id    = 0x01,
115
116   .drce          = &eqp_15_2_1_drce,
117
118   .filter_count  = 12,
119   .biquads       = eqp_15_2_1_biquads
120 };
121
122 /* ======================================================================== */
123
124 static struct tas_drce_t eqp_15_1_0_drce={
125   .enable     = 1,
126   .above      = { .val = 3.0 * (1<<8), .expand = 0 },
127   .below      = { .val = 1.0 * (1<<8), .expand = 0 },
128   .threshold  = 0.0     * (1<<8),
129   .energy     = 2.4     * (1<<12),
130   .attack     = 0.013   * (1<<12),
131   .decay      = 0.212   * (1<<12),
132 };
133
134 static struct tas_biquad_ctrl_t eqp_15_1_0_biquads[]={
135   { .channel = 0, .filter = 0, .data = { .coeff = { 0x0FAD08, 0xE0A5EF, 0x0FAD08, 0xE0A79D, 0x0F5BBE } } },
136   { .channel = 0, .filter = 1, .data = { .coeff = { 0x04B38D, 0x09671B, 0x04B38D, 0x000F71, 0x02BEC5 } } },
137   { .channel = 0, .filter = 2, .data = { .coeff = { 0x0FDD32, 0xE0A56F, 0x0F8A69, 0xE0A56F, 0x0F679C } } },
138   { .channel = 0, .filter = 3, .data = { .coeff = { 0x0FD284, 0xE135FB, 0x0F2161, 0xE135FB, 0x0EF3E5 } } },
139   { .channel = 0, .filter = 4, .data = { .coeff = { 0x0E81B1, 0xE6283F, 0x0CE49D, 0xE6283F, 0x0B664F } } },
140   { .channel = 0, .filter = 5, .data = { .coeff = { 0x0F2D62, 0xE98797, 0x0D1E19, 0xE98797, 0x0C4B7B } } },
141
142   { .channel = 1, .filter = 0, .data = { .coeff = { 0x0FAD08, 0xE0A5EF, 0x0FAD08, 0xE0A79D, 0x0F5BBE } } },
143   { .channel = 1, .filter = 1, .data = { .coeff = { 0x04B38D, 0x09671B, 0x04B38D, 0x000F71, 0x02BEC5 } } },
144   { .channel = 1, .filter = 2, .data = { .coeff = { 0x0FDD32, 0xE0A56F, 0x0F8A69, 0xE0A56F, 0x0F679C } } },
145   { .channel = 1, .filter = 3, .data = { .coeff = { 0x0FD284, 0xE135FB, 0x0F2161, 0xE135FB, 0x0EF3E5 } } },
146   { .channel = 1, .filter = 4, .data = { .coeff = { 0x0E81B1, 0xE6283F, 0x0CE49D, 0xE6283F, 0x0B664F } } },
147   { .channel = 1, .filter = 5, .data = { .coeff = { 0x0F2D62, 0xE98797, 0x0D1E19, 0xE98797, 0x0C4B7B } } },
148 };
149
150 static struct tas_eq_pref_t eqp_15_1_0 = {
151   .sample_rate   = 44100,
152   .device_id     = 0x15,
153   .output_id     = TAS_OUTPUT_INTERNAL_SPKR,
154   .speaker_id    = 0x00,
155
156   .drce          = &eqp_15_1_0_drce,
157
158   .filter_count  = 12,
159   .biquads       = eqp_15_1_0_biquads
160 };
161
162 /* ======================================================================== */
163
164 static struct tas_drce_t eqp_0f_2_1_drce={
165   .enable     = 1,
166   .above      = { .val = 3.0 * (1<<8), .expand = 0 },
167   .below      = { .val = 1.0 * (1<<8), .expand = 0 },
168   .threshold  = -15.33  * (1<<8),
169   .energy     = 2.4     * (1<<12),
170   .attack     = 0.013   * (1<<12),
171   .decay      = 0.212   * (1<<12),
172 };
173
174 static struct tas_biquad_ctrl_t eqp_0f_2_1_biquads[]={
175   { .channel = 0, .filter = 0, .data = { .coeff = { 0x0FE143, 0xE05204, 0x0FCCC5, 0xE05266, 0x0FAE6B } } },
176   { .channel = 0, .filter = 1, .data = { .coeff = { 0x102383, 0xE03A03, 0x0FA325, 0xE03A03, 0x0FC6A8 } } },
177   { .channel = 0, .filter = 2, .data = { .coeff = { 0x0FF2AB, 0xE06285, 0x0FB20A, 0xE06285, 0x0FA4B5 } } },
178   { .channel = 0, .filter = 3, .data = { .coeff = { 0x0F544D, 0xE35971, 0x0D8F3A, 0xE35971, 0x0CE388 } } },
179   { .channel = 0, .filter = 4, .data = { .coeff = { 0x13E1D3, 0xF3ECB5, 0x042227, 0xF3ECB5, 0x0803FA } } },
180   { .channel = 0, .filter = 5, .data = { .coeff = { 0x0AC119, 0x034181, 0x078AB1, 0x034181, 0x024BCA } } },
181
182   { .channel = 1, .filter = 0, .data = { .coeff = { 0x0FE143, 0xE05204, 0x0FCCC5, 0xE05266, 0x0FAE6B } } },
183   { .channel = 1, .filter = 1, .data = { .coeff = { 0x102383, 0xE03A03, 0x0FA325, 0xE03A03, 0x0FC6A8 } } },
184   { .channel = 1, .filter = 2, .data = { .coeff = { 0x0FF2AB, 0xE06285, 0x0FB20A, 0xE06285, 0x0FA4B5 } } },
185   { .channel = 1, .filter = 3, .data = { .coeff = { 0x0F544D, 0xE35971, 0x0D8F3A, 0xE35971, 0x0CE388 } } },
186   { .channel = 1, .filter = 4, .data = { .coeff = { 0x13E1D3, 0xF3ECB5, 0x042227, 0xF3ECB5, 0x0803FA } } },
187   { .channel = 1, .filter = 5, .data = { .coeff = { 0x0AC119, 0x034181, 0x078AB1, 0x034181, 0x024BCA } } },
188 };
189
190 static struct tas_eq_pref_t eqp_0f_2_1 = {
191   .sample_rate   = 44100,
192   .device_id     = 0x0f,
193   .output_id     = TAS_OUTPUT_EXTERNAL_SPKR,
194   .speaker_id    = 0x01,
195
196   .drce          = &eqp_0f_2_1_drce,
197
198   .filter_count  = 12,
199   .biquads       = eqp_0f_2_1_biquads
200 };
201
202 /* ======================================================================== */
203
204 static struct tas_drce_t eqp_0f_1_0_drce={
205   .enable     = 1,
206   .above      = { .val = 3.0 * (1<<8), .expand = 0 },
207   .below      = { .val = 1.0 * (1<<8), .expand = 0 },
208   .threshold  = -15.33  * (1<<8),
209   .energy     = 2.4     * (1<<12),
210   .attack     = 0.013   * (1<<12),
211   .decay      = 0.212   * (1<<12),
212 };
213
214 static struct tas_biquad_ctrl_t eqp_0f_1_0_biquads[]={
215   { .channel = 0, .filter = 0, .data = { .coeff = { 0x0FCAD3, 0xE06A58, 0x0FCAD3, 0xE06B09, 0x0F9657 } } },
216   { .channel = 0, .filter = 1, .data = { .coeff = { 0x041731, 0x082E63, 0x041731, 0xFD8D08, 0x02CFBD } } },
217   { .channel = 0, .filter = 2, .data = { .coeff = { 0x0FFDC7, 0xE0524C, 0x0FBFAA, 0xE0524C, 0x0FBD72 } } },
218   { .channel = 0, .filter = 3, .data = { .coeff = { 0x0F3D35, 0xE228CA, 0x0EC7B2, 0xE228CA, 0x0E04E8 } } },
219   { .channel = 0, .filter = 4, .data = { .coeff = { 0x0FCEBF, 0xE181C2, 0x0F2656, 0xE181C2, 0x0EF516 } } },
220   { .channel = 0, .filter = 5, .data = { .coeff = { 0x0EC417, 0x073E22, 0x0B0633, 0x073E22, 0x09CA4A } } },
221
222   { .channel = 1, .filter = 0, .data = { .coeff = { 0x0FCAD3, 0xE06A58, 0x0FCAD3, 0xE06B09, 0x0F9657 } } },
223   { .channel = 1, .filter = 1, .data = { .coeff = { 0x041731, 0x082E63, 0x041731, 0xFD8D08, 0x02CFBD } } },
224   { .channel = 1, .filter = 2, .data = { .coeff = { 0x0FFDC7, 0xE0524C, 0x0FBFAA, 0xE0524C, 0x0FBD72 } } },
225   { .channel = 1, .filter = 3, .data = { .coeff = { 0x0F3D35, 0xE228CA, 0x0EC7B2, 0xE228CA, 0x0E04E8 } } },
226   { .channel = 1, .filter = 4, .data = { .coeff = { 0x0FCEBF, 0xE181C2, 0x0F2656, 0xE181C2, 0x0EF516 } } },
227   { .channel = 1, .filter = 5, .data = { .coeff = { 0x0EC417, 0x073E22, 0x0B0633, 0x073E22, 0x09CA4A } } },
228 };
229
230 static struct tas_eq_pref_t eqp_0f_1_0 = {
231   .sample_rate   = 44100,
232   .device_id     = 0x0f,
233   .output_id     = TAS_OUTPUT_INTERNAL_SPKR,
234   .speaker_id    = 0x00,
235
236   .drce          = &eqp_0f_1_0_drce,
237
238   .filter_count  = 12,
239   .biquads       = eqp_0f_1_0_biquads
240 };
241
242 /* ======================================================================== */
243
244 static uint tas3001c_master_tab[]={
245                0x0,       0x75,       0x9c,       0xbb,
246               0xdb,       0xfb,      0x11e,      0x143,
247              0x16b,      0x196,      0x1c3,      0x1f5,
248              0x229,      0x263,      0x29f,      0x2e1,
249              0x328,      0x373,      0x3c5,      0x41b,
250              0x478,      0x4dc,      0x547,      0x5b8,
251              0x633,      0x6b5,      0x740,      0x7d5,
252              0x873,      0x91c,      0x9d2,      0xa92,
253              0xb5e,      0xc39,      0xd22,      0xe19,
254              0xf20,     0x1037,     0x1161,     0x129e,
255             0x13ed,     0x1551,     0x16ca,     0x185d,
256             0x1a08,     0x1bcc,     0x1dac,     0x1fa7,
257             0x21c1,     0x23fa,     0x2655,     0x28d6,
258             0x2b7c,     0x2e4a,     0x3141,     0x3464,
259             0x37b4,     0x3b35,     0x3ee9,     0x42d3,
260             0x46f6,     0x4b53,     0x4ff0,     0x54ce,
261             0x59f2,     0x5f5f,     0x6519,     0x6b24,
262             0x7183,     0x783c,     0x7f53,     0x86cc,
263             0x8ead,     0x96fa,     0x9fba,     0xa8f2,
264             0xb2a7,     0xbce1,     0xc7a5,     0xd2fa,
265             0xdee8,     0xeb75,     0xf8aa,    0x1068e,
266            0x1152a,    0x12487,    0x134ad,    0x145a5,
267            0x1577b,    0x16a37,    0x17df5,    0x192bd,
268            0x1a890,    0x1bf7b,    0x1d78d,    0x1f0d1,
269            0x20b55,    0x22727,    0x24456,    0x262f2,
270            0x2830b
271 };
272
273 static uint tas3001c_mixer_tab[]={
274                0x0,      0x748,      0x9be,      0xbaf,
275              0xda4,      0xfb1,     0x11de,     0x1431,
276             0x16ad,     0x1959,     0x1c37,     0x1f4b,
277             0x2298,     0x2628,     0x29fb,     0x2e12,
278             0x327d,     0x3734,     0x3c47,     0x41b4,
279             0x4787,     0x4dbe,     0x546d,     0x5b86,
280             0x632e,     0x6b52,     0x7400,     0x7d54,
281             0x873b,     0x91c6,     0x9d1a,     0xa920,
282             0xb5e5,     0xc38c,     0xd21b,     0xe18f,
283             0xf1f5,    0x1036a,    0x1160f,    0x129d6,
284            0x13ed0,    0x1550c,    0x16ca0,    0x185c9,
285            0x1a07b,    0x1bcc3,    0x1dab9,    0x1fa75,
286            0x21c0f,    0x23fa3,    0x26552,    0x28d64,
287            0x2b7c9,    0x2e4a2,    0x31411,    0x3463b,
288            0x37b44,    0x3b353,    0x3ee94,    0x42d30,
289            0x46f55,    0x4b533,    0x4fefc,    0x54ce5,
290            0x59f25,    0x5f5f6,    0x65193,    0x6b23c,
291            0x71835,    0x783c3,    0x7f52c,    0x86cc0,
292            0x8eacc,    0x96fa5,    0x9fba0,    0xa8f1a,
293            0xb2a71,    0xbce0a,    0xc7a4a,    0xd2fa0,
294            0xdee7b,    0xeb752,    0xf8a9f,   0x1068e4,
295           0x1152a3,   0x12486a,   0x134ac8,   0x145a55,
296           0x1577ac,   0x16a370,   0x17df51,   0x192bc2,
297           0x1a88f8,   0x1bf7b7,   0x1d78c9,   0x1f0d04,
298           0x20b542,   0x227268,   0x244564,   0x262f26,
299           0x2830af
300 };
301
302 static uint tas3001c_treble_tab[]={
303               0x96,       0x95,       0x95,       0x94,
304               0x93,       0x92,       0x92,       0x91,
305               0x90,       0x90,       0x8f,       0x8e,
306               0x8d,       0x8d,       0x8c,       0x8b,
307               0x8a,       0x8a,       0x89,       0x88,
308               0x88,       0x87,       0x86,       0x85,
309               0x85,       0x84,       0x83,       0x83,
310               0x82,       0x81,       0x80,       0x80,
311               0x7f,       0x7e,       0x7e,       0x7d,
312               0x7c,       0x7b,       0x7b,       0x7a,
313               0x79,       0x78,       0x78,       0x77,
314               0x76,       0x76,       0x75,       0x74,
315               0x73,       0x73,       0x72,       0x71,
316               0x71,       0x70,       0x6e,       0x6d,
317               0x6d,       0x6c,       0x6b,       0x6a,
318               0x69,       0x68,       0x67,       0x66,
319               0x65,       0x63,       0x62,       0x62,
320               0x60,       0x5f,       0x5d,       0x5c,
321               0x5a,       0x58,       0x56,       0x55,
322               0x53,       0x51,       0x4f,       0x4c,
323               0x4a,       0x48,       0x45,       0x43,
324               0x40,       0x3d,       0x3a,       0x37,
325               0x35,       0x32,       0x2e,       0x2a,
326               0x27,       0x22,       0x1e,       0x1a,
327               0x15,       0x11,        0xc,        0x7,
328                0x1
329 };
330
331 static uint tas3001c_bass_tab[]={
332               0x86,       0x83,       0x81,       0x7f,
333               0x7d,       0x7b,       0x79,       0x78,
334               0x76,       0x75,       0x74,       0x72,
335               0x71,       0x6f,       0x6e,       0x6d,
336               0x6c,       0x6b,       0x69,       0x67,
337               0x65,       0x64,       0x61,       0x60,
338               0x5e,       0x5d,       0x5c,       0x5b,
339               0x5a,       0x59,       0x58,       0x57,
340               0x56,       0x55,       0x55,       0x54,
341               0x53,       0x52,       0x50,       0x4f,
342               0x4d,       0x4c,       0x4b,       0x49,
343               0x47,       0x45,       0x44,       0x42,
344               0x41,       0x3f,       0x3e,       0x3d,
345               0x3c,       0x3b,       0x39,       0x38,
346               0x37,       0x36,       0x35,       0x34,
347               0x33,       0x31,       0x30,       0x2f,
348               0x2e,       0x2c,       0x2b,       0x2b,
349               0x29,       0x28,       0x27,       0x26,
350               0x25,       0x24,       0x22,       0x21,
351               0x20,       0x1e,       0x1c,       0x19,
352               0x18,       0x18,       0x17,       0x16,
353               0x15,       0x14,       0x13,       0x12,
354               0x11,       0x10,        0xf,        0xe,
355                0xd,        0xb,        0xa,        0x9,
356                0x8,        0x6,        0x4,        0x2,
357                0x1
358 };
359
360 struct tas_gain_t tas3001c_gain = {
361   .master  = tas3001c_master_tab,
362   .treble  = tas3001c_treble_tab,
363   .bass    = tas3001c_bass_tab,
364   .mixer   = tas3001c_mixer_tab
365 };
366
367 struct tas_eq_pref_t *tas3001c_eq_prefs[]={
368   &eqp_0e_2_1,
369   &eqp_10_1_0,
370   &eqp_15_2_1,
371   &eqp_15_1_0,
372   &eqp_0f_2_1,
373   &eqp_0f_1_0,
374   NULL
375 };