aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/emu10k1/emumixer.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/emu10k1/emumixer.c')
-rw-r--r--sound/pci/emu10k1/emumixer.c229
1 files changed, 119 insertions, 110 deletions
diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c
index 7cc831ccd0cb..98fb8139427b 100644
--- a/sound/pci/emu10k1/emumixer.c
+++ b/sound/pci/emu10k1/emumixer.c
@@ -35,17 +35,17 @@
35 35
36#define AC97_ID_STAC9758 0x83847658 36#define AC97_ID_STAC9758 0x83847658
37 37
38static int snd_emu10k1_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 38static int snd_emu10k1_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
39{ 39{
40 uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; 40 uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
41 uinfo->count = 1; 41 uinfo->count = 1;
42 return 0; 42 return 0;
43} 43}
44 44
45static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol, 45static int snd_emu10k1_spdif_get(struct snd_kcontrol *kcontrol,
46 snd_ctl_elem_value_t * ucontrol) 46 struct snd_ctl_elem_value *ucontrol)
47{ 47{
48 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 48 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
49 unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); 49 unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
50 unsigned long flags; 50 unsigned long flags;
51 51
@@ -58,8 +58,8 @@ static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol,
58 return 0; 58 return 0;
59} 59}
60 60
61static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol, 61static int snd_emu10k1_spdif_get_mask(struct snd_kcontrol *kcontrol,
62 snd_ctl_elem_value_t * ucontrol) 62 struct snd_ctl_elem_value *ucontrol)
63{ 63{
64 ucontrol->value.iec958.status[0] = 0xff; 64 ucontrol->value.iec958.status[0] = 0xff;
65 ucontrol->value.iec958.status[1] = 0xff; 65 ucontrol->value.iec958.status[1] = 0xff;
@@ -69,7 +69,7 @@ static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol,
69} 69}
70 70
71#if 0 71#if 0
72static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 72static int snd_audigy_spdif_output_rate_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
73{ 73{
74 static char *texts[] = {"44100", "48000", "96000"}; 74 static char *texts[] = {"44100", "48000", "96000"};
75 75
@@ -82,10 +82,10 @@ static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_e
82 return 0; 82 return 0;
83} 83}
84 84
85static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol, 85static int snd_audigy_spdif_output_rate_get(struct snd_kcontrol *kcontrol,
86 snd_ctl_elem_value_t * ucontrol) 86 struct snd_ctl_elem_value *ucontrol)
87{ 87{
88 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 88 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
89 unsigned int tmp; 89 unsigned int tmp;
90 unsigned long flags; 90 unsigned long flags;
91 91
@@ -109,10 +109,10 @@ static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol,
109 return 0; 109 return 0;
110} 110}
111 111
112static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol, 112static int snd_audigy_spdif_output_rate_put(struct snd_kcontrol *kcontrol,
113 snd_ctl_elem_value_t * ucontrol) 113 struct snd_ctl_elem_value *ucontrol)
114{ 114{
115 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 115 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
116 int change; 116 int change;
117 unsigned int reg, val, tmp; 117 unsigned int reg, val, tmp;
118 unsigned long flags; 118 unsigned long flags;
@@ -143,7 +143,7 @@ static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol,
143 return change; 143 return change;
144} 144}
145 145
146static snd_kcontrol_new_t snd_audigy_spdif_output_rate = 146static struct snd_kcontrol_new snd_audigy_spdif_output_rate =
147{ 147{
148 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, 148 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
149 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 149 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -155,10 +155,10 @@ static snd_kcontrol_new_t snd_audigy_spdif_output_rate =
155}; 155};
156#endif 156#endif
157 157
158static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol, 158static int snd_emu10k1_spdif_put(struct snd_kcontrol *kcontrol,
159 snd_ctl_elem_value_t * ucontrol) 159 struct snd_ctl_elem_value *ucontrol)
160{ 160{
161 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 161 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
162 unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); 162 unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
163 int change; 163 int change;
164 unsigned int val; 164 unsigned int val;
@@ -178,7 +178,7 @@ static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol,
178 return change; 178 return change;
179} 179}
180 180
181static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = 181static struct snd_kcontrol_new snd_emu10k1_spdif_mask_control =
182{ 182{
183 .access = SNDRV_CTL_ELEM_ACCESS_READ, 183 .access = SNDRV_CTL_ELEM_ACCESS_READ,
184 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 184 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -188,7 +188,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control =
188 .get = snd_emu10k1_spdif_get_mask 188 .get = snd_emu10k1_spdif_get_mask
189}; 189};
190 190
191static snd_kcontrol_new_t snd_emu10k1_spdif_control = 191static struct snd_kcontrol_new snd_emu10k1_spdif_control =
192{ 192{
193 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 193 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
194 .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), 194 .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
@@ -199,7 +199,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_control =
199}; 199};
200 200
201 201
202static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route) 202static void update_emu10k1_fxrt(struct snd_emu10k1 *emu, int voice, unsigned char *route)
203{ 203{
204 if (emu->audigy) { 204 if (emu->audigy) {
205 snd_emu10k1_ptr_write(emu, A_FXRT1, voice, 205 snd_emu10k1_ptr_write(emu, A_FXRT1, voice,
@@ -212,7 +212,7 @@ static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route)
212 } 212 }
213} 213}
214 214
215static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char *volume) 215static void update_emu10k1_send_volume(struct snd_emu10k1 *emu, int voice, unsigned char *volume)
216{ 216{
217 snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_A, voice, volume[0]); 217 snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_A, voice, volume[0]);
218 snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_B, voice, volume[1]); 218 snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_B, voice, volume[1]);
@@ -229,9 +229,9 @@ static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char
229 229
230/* PCM stream controls */ 230/* PCM stream controls */
231 231
232static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 232static int snd_emu10k1_send_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
233{ 233{
234 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 234 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
235 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 235 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
236 uinfo->count = emu->audigy ? 3*8 : 3*4; 236 uinfo->count = emu->audigy ? 3*8 : 3*4;
237 uinfo->value.integer.min = 0; 237 uinfo->value.integer.min = 0;
@@ -239,12 +239,13 @@ static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_
239 return 0; 239 return 0;
240} 240}
241 241
242static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol, 242static int snd_emu10k1_send_routing_get(struct snd_kcontrol *kcontrol,
243 snd_ctl_elem_value_t * ucontrol) 243 struct snd_ctl_elem_value *ucontrol)
244{ 244{
245 unsigned long flags; 245 unsigned long flags;
246 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 246 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
247 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 247 struct snd_emu10k1_pcm_mixer *mix =
248 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
248 int voice, idx; 249 int voice, idx;
249 int num_efx = emu->audigy ? 8 : 4; 250 int num_efx = emu->audigy ? 8 : 4;
250 int mask = emu->audigy ? 0x3f : 0x0f; 251 int mask = emu->audigy ? 0x3f : 0x0f;
@@ -258,12 +259,13 @@ static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol,
258 return 0; 259 return 0;
259} 260}
260 261
261static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol, 262static int snd_emu10k1_send_routing_put(struct snd_kcontrol *kcontrol,
262 snd_ctl_elem_value_t * ucontrol) 263 struct snd_ctl_elem_value *ucontrol)
263{ 264{
264 unsigned long flags; 265 unsigned long flags;
265 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 266 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
266 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 267 struct snd_emu10k1_pcm_mixer *mix =
268 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
267 int change = 0, voice, idx, val; 269 int change = 0, voice, idx, val;
268 int num_efx = emu->audigy ? 8 : 4; 270 int num_efx = emu->audigy ? 8 : 4;
269 int mask = emu->audigy ? 0x3f : 0x0f; 271 int mask = emu->audigy ? 0x3f : 0x0f;
@@ -292,7 +294,7 @@ static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol,
292 return change; 294 return change;
293} 295}
294 296
295static snd_kcontrol_new_t snd_emu10k1_send_routing_control = 297static struct snd_kcontrol_new snd_emu10k1_send_routing_control =
296{ 298{
297 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 299 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
298 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 300 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -303,9 +305,9 @@ static snd_kcontrol_new_t snd_emu10k1_send_routing_control =
303 .put = snd_emu10k1_send_routing_put 305 .put = snd_emu10k1_send_routing_put
304}; 306};
305 307
306static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 308static int snd_emu10k1_send_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
307{ 309{
308 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 310 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
309 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 311 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
310 uinfo->count = emu->audigy ? 3*8 : 3*4; 312 uinfo->count = emu->audigy ? 3*8 : 3*4;
311 uinfo->value.integer.min = 0; 313 uinfo->value.integer.min = 0;
@@ -313,12 +315,13 @@ static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i
313 return 0; 315 return 0;
314} 316}
315 317
316static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol, 318static int snd_emu10k1_send_volume_get(struct snd_kcontrol *kcontrol,
317 snd_ctl_elem_value_t * ucontrol) 319 struct snd_ctl_elem_value *ucontrol)
318{ 320{
319 unsigned long flags; 321 unsigned long flags;
320 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 322 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
321 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 323 struct snd_emu10k1_pcm_mixer *mix =
324 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
322 int idx; 325 int idx;
323 int num_efx = emu->audigy ? 8 : 4; 326 int num_efx = emu->audigy ? 8 : 4;
324 327
@@ -329,12 +332,13 @@ static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol,
329 return 0; 332 return 0;
330} 333}
331 334
332static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol, 335static int snd_emu10k1_send_volume_put(struct snd_kcontrol *kcontrol,
333 snd_ctl_elem_value_t * ucontrol) 336 struct snd_ctl_elem_value *ucontrol)
334{ 337{
335 unsigned long flags; 338 unsigned long flags;
336 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 339 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
337 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 340 struct snd_emu10k1_pcm_mixer *mix =
341 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
338 int change = 0, idx, val; 342 int change = 0, idx, val;
339 int num_efx = emu->audigy ? 8 : 4; 343 int num_efx = emu->audigy ? 8 : 4;
340 344
@@ -361,7 +365,7 @@ static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol,
361 return change; 365 return change;
362} 366}
363 367
364static snd_kcontrol_new_t snd_emu10k1_send_volume_control = 368static struct snd_kcontrol_new snd_emu10k1_send_volume_control =
365{ 369{
366 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 370 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
367 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 371 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -372,7 +376,7 @@ static snd_kcontrol_new_t snd_emu10k1_send_volume_control =
372 .put = snd_emu10k1_send_volume_put 376 .put = snd_emu10k1_send_volume_put
373}; 377};
374 378
375static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 379static int snd_emu10k1_attn_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
376{ 380{
377 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 381 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
378 uinfo->count = 3; 382 uinfo->count = 3;
@@ -381,11 +385,12 @@ static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
381 return 0; 385 return 0;
382} 386}
383 387
384static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol, 388static int snd_emu10k1_attn_get(struct snd_kcontrol *kcontrol,
385 snd_ctl_elem_value_t * ucontrol) 389 struct snd_ctl_elem_value *ucontrol)
386{ 390{
387 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 391 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
388 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 392 struct snd_emu10k1_pcm_mixer *mix =
393 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
389 unsigned long flags; 394 unsigned long flags;
390 int idx; 395 int idx;
391 396
@@ -396,12 +401,13 @@ static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol,
396 return 0; 401 return 0;
397} 402}
398 403
399static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol, 404static int snd_emu10k1_attn_put(struct snd_kcontrol *kcontrol,
400 snd_ctl_elem_value_t * ucontrol) 405 struct snd_ctl_elem_value *ucontrol)
401{ 406{
402 unsigned long flags; 407 unsigned long flags;
403 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 408 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
404 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 409 struct snd_emu10k1_pcm_mixer *mix =
410 &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
405 int change = 0, idx, val; 411 int change = 0, idx, val;
406 412
407 spin_lock_irqsave(&emu->reg_lock, flags); 413 spin_lock_irqsave(&emu->reg_lock, flags);
@@ -424,7 +430,7 @@ static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol,
424 return change; 430 return change;
425} 431}
426 432
427static snd_kcontrol_new_t snd_emu10k1_attn_control = 433static struct snd_kcontrol_new snd_emu10k1_attn_control =
428{ 434{
429 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 435 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
430 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 436 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -437,9 +443,9 @@ static snd_kcontrol_new_t snd_emu10k1_attn_control =
437 443
438/* Mutichannel PCM stream controls */ 444/* Mutichannel PCM stream controls */
439 445
440static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 446static int snd_emu10k1_efx_send_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
441{ 447{
442 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 448 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
443 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 449 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
444 uinfo->count = emu->audigy ? 8 : 4; 450 uinfo->count = emu->audigy ? 8 : 4;
445 uinfo->value.integer.min = 0; 451 uinfo->value.integer.min = 0;
@@ -447,12 +453,13 @@ static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_e
447 return 0; 453 return 0;
448} 454}
449 455
450static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol, 456static int snd_emu10k1_efx_send_routing_get(struct snd_kcontrol *kcontrol,
451 snd_ctl_elem_value_t * ucontrol) 457 struct snd_ctl_elem_value *ucontrol)
452{ 458{
453 unsigned long flags; 459 unsigned long flags;
454 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 460 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
455 emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 461 struct snd_emu10k1_pcm_mixer *mix =
462 &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
456 int idx; 463 int idx;
457 int num_efx = emu->audigy ? 8 : 4; 464 int num_efx = emu->audigy ? 8 : 4;
458 int mask = emu->audigy ? 0x3f : 0x0f; 465 int mask = emu->audigy ? 0x3f : 0x0f;
@@ -465,13 +472,13 @@ static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol,
465 return 0; 472 return 0;
466} 473}
467 474
468static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol, 475static int snd_emu10k1_efx_send_routing_put(struct snd_kcontrol *kcontrol,
469 snd_ctl_elem_value_t * ucontrol) 476 struct snd_ctl_elem_value *ucontrol)
470{ 477{
471 unsigned long flags; 478 unsigned long flags;
472 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 479 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
473 int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); 480 int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
474 emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; 481 struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch];
475 int change = 0, idx, val; 482 int change = 0, idx, val;
476 int num_efx = emu->audigy ? 8 : 4; 483 int num_efx = emu->audigy ? 8 : 4;
477 int mask = emu->audigy ? 0x3f : 0x0f; 484 int mask = emu->audigy ? 0x3f : 0x0f;
@@ -495,7 +502,7 @@ static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol,
495 return change; 502 return change;
496} 503}
497 504
498static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control = 505static struct snd_kcontrol_new snd_emu10k1_efx_send_routing_control =
499{ 506{
500 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 507 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
501 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 508 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -506,9 +513,9 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control =
506 .put = snd_emu10k1_efx_send_routing_put 513 .put = snd_emu10k1_efx_send_routing_put
507}; 514};
508 515
509static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 516static int snd_emu10k1_efx_send_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
510{ 517{
511 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 518 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
512 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 519 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
513 uinfo->count = emu->audigy ? 8 : 4; 520 uinfo->count = emu->audigy ? 8 : 4;
514 uinfo->value.integer.min = 0; 521 uinfo->value.integer.min = 0;
@@ -516,12 +523,13 @@ static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_el
516 return 0; 523 return 0;
517} 524}
518 525
519static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol, 526static int snd_emu10k1_efx_send_volume_get(struct snd_kcontrol *kcontrol,
520 snd_ctl_elem_value_t * ucontrol) 527 struct snd_ctl_elem_value *ucontrol)
521{ 528{
522 unsigned long flags; 529 unsigned long flags;
523 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 530 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
524 emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 531 struct snd_emu10k1_pcm_mixer *mix =
532 &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
525 int idx; 533 int idx;
526 int num_efx = emu->audigy ? 8 : 4; 534 int num_efx = emu->audigy ? 8 : 4;
527 535
@@ -532,13 +540,13 @@ static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol,
532 return 0; 540 return 0;
533} 541}
534 542
535static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol, 543static int snd_emu10k1_efx_send_volume_put(struct snd_kcontrol *kcontrol,
536 snd_ctl_elem_value_t * ucontrol) 544 struct snd_ctl_elem_value *ucontrol)
537{ 545{
538 unsigned long flags; 546 unsigned long flags;
539 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 547 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
540 int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); 548 int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
541 emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; 549 struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch];
542 int change = 0, idx, val; 550 int change = 0, idx, val;
543 int num_efx = emu->audigy ? 8 : 4; 551 int num_efx = emu->audigy ? 8 : 4;
544 552
@@ -561,7 +569,7 @@ static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol,
561} 569}
562 570
563 571
564static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control = 572static struct snd_kcontrol_new snd_emu10k1_efx_send_volume_control =
565{ 573{
566 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 574 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
567 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 575 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -572,7 +580,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control =
572 .put = snd_emu10k1_efx_send_volume_put 580 .put = snd_emu10k1_efx_send_volume_put
573}; 581};
574 582
575static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 583static int snd_emu10k1_efx_attn_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
576{ 584{
577 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 585 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
578 uinfo->count = 1; 586 uinfo->count = 1;
@@ -581,11 +589,12 @@ static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info
581 return 0; 589 return 0;
582} 590}
583 591
584static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol, 592static int snd_emu10k1_efx_attn_get(struct snd_kcontrol *kcontrol,
585 snd_ctl_elem_value_t * ucontrol) 593 struct snd_ctl_elem_value *ucontrol)
586{ 594{
587 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 595 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
588 emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; 596 struct snd_emu10k1_pcm_mixer *mix =
597 &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
589 unsigned long flags; 598 unsigned long flags;
590 599
591 spin_lock_irqsave(&emu->reg_lock, flags); 600 spin_lock_irqsave(&emu->reg_lock, flags);
@@ -594,13 +603,13 @@ static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol,
594 return 0; 603 return 0;
595} 604}
596 605
597static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol, 606static int snd_emu10k1_efx_attn_put(struct snd_kcontrol *kcontrol,
598 snd_ctl_elem_value_t * ucontrol) 607 struct snd_ctl_elem_value *ucontrol)
599{ 608{
600 unsigned long flags; 609 unsigned long flags;
601 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 610 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
602 int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); 611 int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
603 emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; 612 struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch];
604 int change = 0, val; 613 int change = 0, val;
605 614
606 spin_lock_irqsave(&emu->reg_lock, flags); 615 spin_lock_irqsave(&emu->reg_lock, flags);
@@ -618,7 +627,7 @@ static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol,
618 return change; 627 return change;
619} 628}
620 629
621static snd_kcontrol_new_t snd_emu10k1_efx_attn_control = 630static struct snd_kcontrol_new snd_emu10k1_efx_attn_control =
622{ 631{
623 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 632 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
624 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 633 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
@@ -629,7 +638,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_attn_control =
629 .put = snd_emu10k1_efx_attn_put 638 .put = snd_emu10k1_efx_attn_put
630}; 639};
631 640
632static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 641static int snd_emu10k1_shared_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
633{ 642{
634 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; 643 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
635 uinfo->count = 1; 644 uinfo->count = 1;
@@ -638,10 +647,10 @@ static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_
638 return 0; 647 return 0;
639} 648}
640 649
641static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol, 650static int snd_emu10k1_shared_spdif_get(struct snd_kcontrol *kcontrol,
642 snd_ctl_elem_value_t * ucontrol) 651 struct snd_ctl_elem_value *ucontrol)
643{ 652{
644 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 653 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
645 654
646 if (emu->audigy) 655 if (emu->audigy)
647 ucontrol->value.integer.value[0] = inl(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0; 656 ucontrol->value.integer.value[0] = inl(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0;
@@ -650,11 +659,11 @@ static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol,
650 return 0; 659 return 0;
651} 660}
652 661
653static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol, 662static int snd_emu10k1_shared_spdif_put(struct snd_kcontrol *kcontrol,
654 snd_ctl_elem_value_t * ucontrol) 663 struct snd_ctl_elem_value *ucontrol)
655{ 664{
656 unsigned long flags; 665 unsigned long flags;
657 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 666 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
658 unsigned int reg, val; 667 unsigned int reg, val;
659 int change = 0; 668 int change = 0;
660 669
@@ -681,7 +690,7 @@ static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol,
681 return change; 690 return change;
682} 691}
683 692
684static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata = 693static struct snd_kcontrol_new snd_emu10k1_shared_spdif __devinitdata =
685{ 694{
686 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 695 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
687 .name = "SB Live Analog/Digital Output Jack", 696 .name = "SB Live Analog/Digital Output Jack",
@@ -690,7 +699,7 @@ static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata =
690 .put = snd_emu10k1_shared_spdif_put 699 .put = snd_emu10k1_shared_spdif_put
691}; 700};
692 701
693static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata = 702static struct snd_kcontrol_new snd_audigy_shared_spdif __devinitdata =
694{ 703{
695 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 704 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
696 .name = "Audigy Analog/Digital Output Jack", 705 .name = "Audigy Analog/Digital Output Jack",
@@ -701,35 +710,35 @@ static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata =
701 710
702/* 711/*
703 */ 712 */
704static void snd_emu10k1_mixer_free_ac97(ac97_t *ac97) 713static void snd_emu10k1_mixer_free_ac97(struct snd_ac97 *ac97)
705{ 714{
706 emu10k1_t *emu = ac97->private_data; 715 struct snd_emu10k1 *emu = ac97->private_data;
707 emu->ac97 = NULL; 716 emu->ac97 = NULL;
708} 717}
709 718
710/* 719/*
711 */ 720 */
712static int remove_ctl(snd_card_t *card, const char *name) 721static int remove_ctl(struct snd_card *card, const char *name)
713{ 722{
714 snd_ctl_elem_id_t id; 723 struct snd_ctl_elem_id id;
715 memset(&id, 0, sizeof(id)); 724 memset(&id, 0, sizeof(id));
716 strcpy(id.name, name); 725 strcpy(id.name, name);
717 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 726 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
718 return snd_ctl_remove_id(card, &id); 727 return snd_ctl_remove_id(card, &id);
719} 728}
720 729
721static snd_kcontrol_t *ctl_find(snd_card_t *card, const char *name) 730static struct snd_kcontrol *ctl_find(struct snd_card *card, const char *name)
722{ 731{
723 snd_ctl_elem_id_t sid; 732 struct snd_ctl_elem_id sid;
724 memset(&sid, 0, sizeof(sid)); 733 memset(&sid, 0, sizeof(sid));
725 strcpy(sid.name, name); 734 strcpy(sid.name, name);
726 sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 735 sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
727 return snd_ctl_find_id(card, &sid); 736 return snd_ctl_find_id(card, &sid);
728} 737}
729 738
730static int rename_ctl(snd_card_t *card, const char *src, const char *dst) 739static int rename_ctl(struct snd_card *card, const char *src, const char *dst)
731{ 740{
732 snd_kcontrol_t *kctl = ctl_find(card, src); 741 struct snd_kcontrol *kctl = ctl_find(card, src);
733 if (kctl) { 742 if (kctl) {
734 strcpy(kctl->id.name, dst); 743 strcpy(kctl->id.name, dst);
735 return 0; 744 return 0;
@@ -737,12 +746,12 @@ static int rename_ctl(snd_card_t *card, const char *src, const char *dst)
737 return -ENOENT; 746 return -ENOENT;
738} 747}
739 748
740int __devinit snd_emu10k1_mixer(emu10k1_t *emu, 749int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu,
741 int pcm_device, int multi_device) 750 int pcm_device, int multi_device)
742{ 751{
743 int err, pcm; 752 int err, pcm;
744 snd_kcontrol_t *kctl; 753 struct snd_kcontrol *kctl;
745 snd_card_t *card = emu->card; 754 struct snd_card *card = emu->card;
746 char **c; 755 char **c;
747 static char *emu10k1_remove_ctls[] = { 756 static char *emu10k1_remove_ctls[] = {
748 /* no AC97 mono, surround, center/lfe */ 757 /* no AC97 mono, surround, center/lfe */
@@ -795,9 +804,9 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
795 }; 804 };
796 805
797 if (emu->card_capabilities->ac97_chip) { 806 if (emu->card_capabilities->ac97_chip) {
798 ac97_bus_t *pbus; 807 struct snd_ac97_bus *pbus;
799 ac97_template_t ac97; 808 struct snd_ac97_template ac97;
800 static ac97_bus_ops_t ops = { 809 static struct snd_ac97_bus_ops ops = {
801 .write = snd_emu10k1_ac97_write, 810 .write = snd_emu10k1_ac97_write,
802 .read = snd_emu10k1_ac97_read, 811 .read = snd_emu10k1_ac97_read,
803 }; 812 };
@@ -894,7 +903,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
894 903
895 /* initialize the routing and volume table for each pcm playback stream */ 904 /* initialize the routing and volume table for each pcm playback stream */
896 for (pcm = 0; pcm < 32; pcm++) { 905 for (pcm = 0; pcm < 32; pcm++) {
897 emu10k1_pcm_mixer_t *mix; 906 struct snd_emu10k1_pcm_mixer *mix;
898 int v; 907 int v;
899 908
900 mix = &emu->pcm_mixer[pcm]; 909 mix = &emu->pcm_mixer[pcm];
@@ -914,7 +923,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
914 923
915 /* initialize the routing and volume table for the multichannel playback stream */ 924 /* initialize the routing and volume table for the multichannel playback stream */
916 for (pcm = 0; pcm < NUM_EFX_PLAYBACK; pcm++) { 925 for (pcm = 0; pcm < NUM_EFX_PLAYBACK; pcm++) {
917 emu10k1_pcm_mixer_t *mix; 926 struct snd_emu10k1_pcm_mixer *mix;
918 int v; 927 int v;
919 928
920 mix = &emu->efx_pcm_mixer[pcm]; 929 mix = &emu->efx_pcm_mixer[pcm];