Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/ppc/tumbler_volume.h
26381 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/* volume tables, taken from TAS3001c data manual */
3
/* volume gain values */
4
/* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
5
static const unsigned int master_volume_table[] = {
6
0x00000015, 0x00000016, 0x00000017,
7
0x00000019, 0x0000001a, 0x0000001c,
8
0x0000001d, 0x0000001f, 0x00000021,
9
0x00000023, 0x00000025, 0x00000027,
10
0x00000029, 0x0000002c, 0x0000002e,
11
0x00000031, 0x00000034, 0x00000037,
12
0x0000003a, 0x0000003e, 0x00000042,
13
0x00000045, 0x0000004a, 0x0000004e,
14
0x00000053, 0x00000057, 0x0000005d,
15
0x00000062, 0x00000068, 0x0000006e,
16
0x00000075, 0x0000007b, 0x00000083,
17
0x0000008b, 0x00000093, 0x0000009b,
18
0x000000a5, 0x000000ae, 0x000000b9,
19
0x000000c4, 0x000000cf, 0x000000dc,
20
0x000000e9, 0x000000f6, 0x00000105,
21
0x00000114, 0x00000125, 0x00000136,
22
0x00000148, 0x0000015c, 0x00000171,
23
0x00000186, 0x0000019e, 0x000001b6,
24
0x000001d0, 0x000001eb, 0x00000209,
25
0x00000227, 0x00000248, 0x0000026b,
26
0x0000028f, 0x000002b6, 0x000002df,
27
0x0000030b, 0x00000339, 0x0000036a,
28
0x0000039e, 0x000003d5, 0x0000040f,
29
0x0000044c, 0x0000048d, 0x000004d2,
30
0x0000051c, 0x00000569, 0x000005bb,
31
0x00000612, 0x0000066e, 0x000006d0,
32
0x00000737, 0x000007a5, 0x00000818,
33
0x00000893, 0x00000915, 0x0000099f,
34
0x00000a31, 0x00000acc, 0x00000b6f,
35
0x00000c1d, 0x00000cd5, 0x00000d97,
36
0x00000e65, 0x00000f40, 0x00001027,
37
0x0000111c, 0x00001220, 0x00001333,
38
0x00001456, 0x0000158a, 0x000016d1,
39
0x0000182b, 0x0000199a, 0x00001b1e,
40
0x00001cb9, 0x00001e6d, 0x0000203a,
41
0x00002223, 0x00002429, 0x0000264e,
42
0x00002893, 0x00002afa, 0x00002d86,
43
0x00003039, 0x00003314, 0x0000361b,
44
0x00003950, 0x00003cb5, 0x0000404e,
45
0x0000441d, 0x00004827, 0x00004c6d,
46
0x000050f4, 0x000055c0, 0x00005ad5,
47
0x00006037, 0x000065ea, 0x00006bf4,
48
0x0000725a, 0x00007920, 0x0000804e,
49
0x000087e8, 0x00008ff6, 0x0000987d,
50
0x0000a186, 0x0000ab19, 0x0000b53c,
51
0x0000bff9, 0x0000cb59, 0x0000d766,
52
0x0000e429, 0x0000f1ae, 0x00010000,
53
0x00010f2b, 0x00011f3d, 0x00013042,
54
0x00014249, 0x00015562, 0x0001699c,
55
0x00017f09, 0x000195bc, 0x0001adc6,
56
0x0001c73d, 0x0001e237, 0x0001feca,
57
0x00021d0e, 0x00023d1d, 0x00025f12,
58
0x0002830b, 0x0002a925, 0x0002d182,
59
0x0002fc42, 0x0003298b, 0x00035983,
60
0x00038c53, 0x0003c225, 0x0003fb28,
61
0x0004378b, 0x00047783, 0x0004bb44,
62
0x0005030a, 0x00054f10, 0x00059f98,
63
0x0005f4e5, 0x00064f40, 0x0006aef6,
64
0x00071457, 0x00077fbb, 0x0007f17b,
65
};
66
67
/* treble table for TAS3001c */
68
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
69
static const unsigned int treble_volume_table[] = {
70
0x96, 0x95, 0x94,
71
0x93, 0x92, 0x91,
72
0x90, 0x8f, 0x8e,
73
0x8d, 0x8c, 0x8b,
74
0x8a, 0x89, 0x88,
75
0x87, 0x86, 0x85,
76
0x84, 0x83, 0x82,
77
0x81, 0x80, 0x7f,
78
0x7e, 0x7d, 0x7c,
79
0x7b, 0x7a, 0x79,
80
0x78, 0x77, 0x76,
81
0x75, 0x74, 0x73,
82
0x72, 0x71, 0x70,
83
0x6e, 0x6d, 0x6c,
84
0x6b, 0x69, 0x68,
85
0x66, 0x65, 0x63,
86
0x62, 0x60, 0x5e,
87
0x5c, 0x5a, 0x57,
88
0x55, 0x52, 0x4f,
89
0x4c, 0x49, 0x45,
90
0x42, 0x3e, 0x3a,
91
0x36, 0x32, 0x2d,
92
0x28, 0x22, 0x1c,
93
0x16, 0x10, 0x09,
94
0x01,
95
};
96
97
/* bass table for TAS3001c */
98
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
99
static const unsigned int bass_volume_table[] = {
100
0x86, 0x82, 0x7f,
101
0x7d, 0x7a, 0x78,
102
0x76, 0x74, 0x72,
103
0x70, 0x6e, 0x6d,
104
0x6b, 0x69, 0x66,
105
0x64, 0x61, 0x5f,
106
0x5d, 0x5c, 0x5a,
107
0x59, 0x58, 0x56,
108
0x55, 0x54, 0x53,
109
0x51, 0x4f, 0x4d,
110
0x4b, 0x49, 0x46,
111
0x44, 0x42, 0x40,
112
0x3e, 0x3c, 0x3b,
113
0x39, 0x38, 0x36,
114
0x35, 0x33, 0x31,
115
0x30, 0x2e, 0x2c,
116
0x2b, 0x29, 0x28,
117
0x26, 0x25, 0x23,
118
0x21, 0x1f, 0x1c,
119
0x19, 0x18, 0x17,
120
0x16, 0x14, 0x13,
121
0x12, 0x10, 0x0f,
122
0x0d, 0x0b, 0x0a,
123
0x08, 0x06, 0x03,
124
0x01,
125
};
126
127
/* mixer (pcm) volume table */
128
/* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
129
static const unsigned int mixer_volume_table[] = {
130
0x00014b, 0x00015f, 0x000174,
131
0x00018a, 0x0001a1, 0x0001ba,
132
0x0001d4, 0x0001f0, 0x00020d,
133
0x00022c, 0x00024d, 0x000270,
134
0x000295, 0x0002bc, 0x0002e6,
135
0x000312, 0x000340, 0x000372,
136
0x0003a6, 0x0003dd, 0x000418,
137
0x000456, 0x000498, 0x0004de,
138
0x000528, 0x000576, 0x0005c9,
139
0x000620, 0x00067d, 0x0006e0,
140
0x000748, 0x0007b7, 0x00082c,
141
0x0008a8, 0x00092b, 0x0009b6,
142
0x000a49, 0x000ae5, 0x000b8b,
143
0x000c3a, 0x000cf3, 0x000db8,
144
0x000e88, 0x000f64, 0x00104e,
145
0x001145, 0x00124b, 0x001361,
146
0x001487, 0x0015be, 0x001708,
147
0x001865, 0x0019d8, 0x001b60,
148
0x001cff, 0x001eb7, 0x002089,
149
0x002276, 0x002481, 0x0026ab,
150
0x0028f5, 0x002b63, 0x002df5,
151
0x0030ae, 0x003390, 0x00369e,
152
0x0039db, 0x003d49, 0x0040ea,
153
0x0044c3, 0x0048d6, 0x004d27,
154
0x0051b9, 0x005691, 0x005bb2,
155
0x006121, 0x0066e3, 0x006cfb,
156
0x007370, 0x007a48, 0x008186,
157
0x008933, 0x009154, 0x0099f1,
158
0x00a310, 0x00acba, 0x00b6f6,
159
0x00c1cd, 0x00cd49, 0x00d973,
160
0x00e655, 0x00f3fb, 0x010270,
161
0x0111c0, 0x0121f9, 0x013328,
162
0x01455b, 0x0158a2, 0x016d0e,
163
0x0182af, 0x019999, 0x01b1de,
164
0x01cb94, 0x01e6cf, 0x0203a7,
165
0x022235, 0x024293, 0x0264db,
166
0x02892c, 0x02afa3, 0x02d862,
167
0x03038a, 0x033142, 0x0361af,
168
0x0394fa, 0x03cb50, 0x0404de,
169
0x0441d5, 0x048268, 0x04c6d0,
170
0x050f44, 0x055c04, 0x05ad50,
171
0x06036e, 0x065ea5, 0x06bf44,
172
0x07259d, 0x079207, 0x0804dc,
173
0x087e80, 0x08ff59, 0x0987d5,
174
0x0a1866, 0x0ab189, 0x0b53be,
175
0x0bff91, 0x0cb591, 0x0d765a,
176
0x0e4290, 0x0f1adf, 0x100000,
177
0x10f2b4, 0x11f3c9, 0x13041a,
178
0x14248e, 0x15561a, 0x1699c0,
179
0x17f094, 0x195bb8, 0x1adc61,
180
0x1c73d5, 0x1e236d, 0x1fec98,
181
0x21d0d9, 0x23d1cd, 0x25f125,
182
0x2830af, 0x2a9254, 0x2d1818,
183
0x2fc420, 0x3298b0, 0x35982f,
184
0x38c528, 0x3c224c, 0x3fb278,
185
0x437880, 0x477828, 0x4bb446,
186
0x5030a1, 0x54f106, 0x59f980,
187
0x5f4e52, 0x64f403, 0x6aef5d,
188
0x714575, 0x77fbaa, 0x7f17af,
189
};
190
191
192
/* treble table for TAS3004 */
193
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
194
static const unsigned int snapper_treble_volume_table[] = {
195
0x96, 0x95, 0x94,
196
0x93, 0x92, 0x91,
197
0x90, 0x8f, 0x8e,
198
0x8d, 0x8c, 0x8b,
199
0x8a, 0x89, 0x88,
200
0x87, 0x86, 0x85,
201
0x84, 0x83, 0x82,
202
0x81, 0x80, 0x7f,
203
0x7e, 0x7d, 0x7c,
204
0x7b, 0x7a, 0x79,
205
0x78, 0x77, 0x76,
206
0x75, 0x74, 0x73,
207
0x72, 0x71, 0x70,
208
0x6f, 0x6d, 0x6c,
209
0x6b, 0x69, 0x68,
210
0x67, 0x65, 0x63,
211
0x62, 0x60, 0x5d,
212
0x5b, 0x59, 0x56,
213
0x53, 0x51, 0x4d,
214
0x4a, 0x47, 0x43,
215
0x3f, 0x3b, 0x36,
216
0x31, 0x2c, 0x26,
217
0x20, 0x1a, 0x13,
218
0x08, 0x04, 0x01,
219
0x01,
220
};
221
222
/* bass table for TAS3004 */
223
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
224
static const unsigned int snapper_bass_volume_table[] = {
225
0x96, 0x95, 0x94,
226
0x93, 0x92, 0x91,
227
0x90, 0x8f, 0x8e,
228
0x8d, 0x8c, 0x8b,
229
0x8a, 0x89, 0x88,
230
0x87, 0x86, 0x85,
231
0x84, 0x83, 0x82,
232
0x81, 0x80, 0x7f,
233
0x7e, 0x7d, 0x7c,
234
0x7b, 0x7a, 0x79,
235
0x78, 0x77, 0x76,
236
0x75, 0x74, 0x73,
237
0x72, 0x71, 0x6f,
238
0x6e, 0x6d, 0x6b,
239
0x6a, 0x69, 0x67,
240
0x66, 0x65, 0x63,
241
0x62, 0x61, 0x5f,
242
0x5d, 0x5b, 0x58,
243
0x55, 0x52, 0x4f,
244
0x4c, 0x49, 0x46,
245
0x43, 0x3f, 0x3b,
246
0x37, 0x33, 0x2e,
247
0x29, 0x24, 0x1e,
248
0x18, 0x11, 0x0a,
249
0x01,
250
};
251
252
253