aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/mixer_oss.h54
-rw-r--r--sound/core/oss/mixer_oss.c240
2 files changed, 148 insertions, 146 deletions
diff --git a/include/sound/mixer_oss.h b/include/sound/mixer_oss.h
index ed75b2fb00ab..ca5b4822b62c 100644
--- a/include/sound/mixer_oss.h
+++ b/include/sound/mixer_oss.h
@@ -24,51 +24,53 @@
24 24
25#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE) 25#if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
26 26
27typedef struct _snd_oss_mixer_slot snd_mixer_oss_slot_t;
28typedef struct _snd_oss_file snd_mixer_oss_file_t;
29
30typedef int (*snd_mixer_oss_get_volume_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int *left, int *right);
31typedef int (*snd_mixer_oss_put_volume_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int left, int right);
32typedef int (*snd_mixer_oss_get_recsrc_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int *active);
33typedef int (*snd_mixer_oss_put_recsrc_t)(snd_mixer_oss_file_t *fmixer, snd_mixer_oss_slot_t *chn, int active);
34typedef int (*snd_mixer_oss_get_recsrce_t)(snd_mixer_oss_file_t *fmixer, unsigned int *active_index);
35typedef int (*snd_mixer_oss_put_recsrce_t)(snd_mixer_oss_file_t *fmixer, unsigned int active_index);
36
37#define SNDRV_OSS_MAX_MIXERS 32 27#define SNDRV_OSS_MAX_MIXERS 32
38 28
39struct _snd_oss_mixer_slot { 29struct snd_mixer_oss_file;
30
31struct snd_mixer_oss_slot {
40 int number; 32 int number;
41 unsigned int stereo: 1; 33 unsigned int stereo: 1;
42 snd_mixer_oss_get_volume_t get_volume; 34 int (*get_volume)(struct snd_mixer_oss_file *fmixer,
43 snd_mixer_oss_put_volume_t put_volume; 35 struct snd_mixer_oss_slot *chn,
44 snd_mixer_oss_get_recsrc_t get_recsrc; 36 int *left, int *right);
45 snd_mixer_oss_put_recsrc_t put_recsrc; 37 int (*put_volume)(struct snd_mixer_oss_file *fmixer,
38 struct snd_mixer_oss_slot *chn,
39 int left, int right);
40 int (*get_recsrc)(struct snd_mixer_oss_file *fmixer,
41 struct snd_mixer_oss_slot *chn,
42 int *active);
43 int (*put_recsrc)(struct snd_mixer_oss_file *fmixer,
44 struct snd_mixer_oss_slot *chn,
45 int active);
46 unsigned long private_value; 46 unsigned long private_value;
47 void *private_data; 47 void *private_data;
48 void (*private_free)(snd_mixer_oss_slot_t *slot); 48 void (*private_free)(struct snd_mixer_oss_slot *slot);
49 int volume[2]; 49 int volume[2];
50}; 50};
51 51
52struct _snd_oss_mixer { 52struct snd_mixer_oss {
53 snd_card_t *card; 53 struct snd_card *card;
54 char id[16]; 54 char id[16];
55 char name[32]; 55 char name[32];
56 snd_mixer_oss_slot_t slots[SNDRV_OSS_MAX_MIXERS]; /* OSS mixer slots */ 56 struct snd_mixer_oss_slot slots[SNDRV_OSS_MAX_MIXERS]; /* OSS mixer slots */
57 unsigned int mask_recsrc; /* exclusive recsrc mask */ 57 unsigned int mask_recsrc; /* exclusive recsrc mask */
58 snd_mixer_oss_get_recsrce_t get_recsrc; 58 int (*get_recsrc)(struct snd_mixer_oss_file *fmixer,
59 snd_mixer_oss_put_recsrce_t put_recsrc; 59 unsigned int *active_index);
60 int (*put_recsrc)(struct snd_mixer_oss_file *fmixer,
61 unsigned int active_index);
60 void *private_data_recsrc; 62 void *private_data_recsrc;
61 void (*private_free_recsrc)(snd_mixer_oss_t *mixer); 63 void (*private_free_recsrc)(struct snd_mixer_oss *mixer);
62 struct semaphore reg_mutex; 64 struct semaphore reg_mutex;
63 snd_info_entry_t *proc_entry; 65 struct snd_info_entry *proc_entry;
64 int oss_dev_alloc; 66 int oss_dev_alloc;
65 /* --- */ 67 /* --- */
66 int oss_recsrc; 68 int oss_recsrc;
67}; 69};
68 70
69struct _snd_oss_file { 71struct snd_mixer_oss_file {
70 snd_card_t *card; 72 struct snd_card *card;
71 snd_mixer_oss_t *mixer; 73 struct snd_mixer_oss *mixer;
72}; 74};
73 75
74#endif /* CONFIG_SND_MIXER_OSS */ 76#endif /* CONFIG_SND_MIXER_OSS */
diff --git a/sound/core/oss/mixer_oss.c b/sound/core/oss/mixer_oss.c
index 214933cf5d49..e448002ca7b9 100644
--- a/sound/core/oss/mixer_oss.c
+++ b/sound/core/oss/mixer_oss.c
@@ -42,8 +42,8 @@ MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_MIXER);
42static int snd_mixer_oss_open(struct inode *inode, struct file *file) 42static int snd_mixer_oss_open(struct inode *inode, struct file *file)
43{ 43{
44 int cardnum = SNDRV_MINOR_OSS_CARD(iminor(inode)); 44 int cardnum = SNDRV_MINOR_OSS_CARD(iminor(inode));
45 snd_card_t *card; 45 struct snd_card *card;
46 snd_mixer_oss_file_t *fmixer; 46 struct snd_mixer_oss_file *fmixer;
47 int err; 47 int err;
48 48
49 if ((card = snd_cards[cardnum]) == NULL) 49 if ((card = snd_cards[cardnum]) == NULL)
@@ -71,10 +71,10 @@ static int snd_mixer_oss_open(struct inode *inode, struct file *file)
71 71
72static int snd_mixer_oss_release(struct inode *inode, struct file *file) 72static int snd_mixer_oss_release(struct inode *inode, struct file *file)
73{ 73{
74 snd_mixer_oss_file_t *fmixer; 74 struct snd_mixer_oss_file *fmixer;
75 75
76 if (file->private_data) { 76 if (file->private_data) {
77 fmixer = (snd_mixer_oss_file_t *) file->private_data; 77 fmixer = (struct snd_mixer_oss_file *) file->private_data;
78 module_put(fmixer->card->module); 78 module_put(fmixer->card->module);
79 snd_card_file_remove(fmixer->card, file); 79 snd_card_file_remove(fmixer->card, file);
80 kfree(fmixer); 80 kfree(fmixer);
@@ -82,11 +82,11 @@ static int snd_mixer_oss_release(struct inode *inode, struct file *file)
82 return 0; 82 return 0;
83} 83}
84 84
85static int snd_mixer_oss_info(snd_mixer_oss_file_t *fmixer, 85static int snd_mixer_oss_info(struct snd_mixer_oss_file *fmixer,
86 mixer_info __user *_info) 86 mixer_info __user *_info)
87{ 87{
88 snd_card_t *card = fmixer->card; 88 struct snd_card *card = fmixer->card;
89 snd_mixer_oss_t *mixer = fmixer->mixer; 89 struct snd_mixer_oss *mixer = fmixer->mixer;
90 struct mixer_info info; 90 struct mixer_info info;
91 91
92 memset(&info, 0, sizeof(info)); 92 memset(&info, 0, sizeof(info));
@@ -98,11 +98,11 @@ static int snd_mixer_oss_info(snd_mixer_oss_file_t *fmixer,
98 return 0; 98 return 0;
99} 99}
100 100
101static int snd_mixer_oss_info_obsolete(snd_mixer_oss_file_t *fmixer, 101static int snd_mixer_oss_info_obsolete(struct snd_mixer_oss_file *fmixer,
102 _old_mixer_info __user *_info) 102 _old_mixer_info __user *_info)
103{ 103{
104 snd_card_t *card = fmixer->card; 104 struct snd_card *card = fmixer->card;
105 snd_mixer_oss_t *mixer = fmixer->mixer; 105 struct snd_mixer_oss *mixer = fmixer->mixer;
106 _old_mixer_info info; 106 _old_mixer_info info;
107 107
108 memset(&info, 0, sizeof(info)); 108 memset(&info, 0, sizeof(info));
@@ -113,9 +113,9 @@ static int snd_mixer_oss_info_obsolete(snd_mixer_oss_file_t *fmixer,
113 return 0; 113 return 0;
114} 114}
115 115
116static int snd_mixer_oss_caps(snd_mixer_oss_file_t *fmixer) 116static int snd_mixer_oss_caps(struct snd_mixer_oss_file *fmixer)
117{ 117{
118 snd_mixer_oss_t *mixer = fmixer->mixer; 118 struct snd_mixer_oss *mixer = fmixer->mixer;
119 int result = 0; 119 int result = 0;
120 120
121 if (mixer == NULL) 121 if (mixer == NULL)
@@ -125,10 +125,10 @@ static int snd_mixer_oss_caps(snd_mixer_oss_file_t *fmixer)
125 return result; 125 return result;
126} 126}
127 127
128static int snd_mixer_oss_devmask(snd_mixer_oss_file_t *fmixer) 128static int snd_mixer_oss_devmask(struct snd_mixer_oss_file *fmixer)
129{ 129{
130 snd_mixer_oss_t *mixer = fmixer->mixer; 130 struct snd_mixer_oss *mixer = fmixer->mixer;
131 snd_mixer_oss_slot_t *pslot; 131 struct snd_mixer_oss_slot *pslot;
132 int result = 0, chn; 132 int result = 0, chn;
133 133
134 if (mixer == NULL) 134 if (mixer == NULL)
@@ -141,10 +141,10 @@ static int snd_mixer_oss_devmask(snd_mixer_oss_file_t *fmixer)
141 return result; 141 return result;
142} 142}
143 143
144static int snd_mixer_oss_stereodevs(snd_mixer_oss_file_t *fmixer) 144static int snd_mixer_oss_stereodevs(struct snd_mixer_oss_file *fmixer)
145{ 145{
146 snd_mixer_oss_t *mixer = fmixer->mixer; 146 struct snd_mixer_oss *mixer = fmixer->mixer;
147 snd_mixer_oss_slot_t *pslot; 147 struct snd_mixer_oss_slot *pslot;
148 int result = 0, chn; 148 int result = 0, chn;
149 149
150 if (mixer == NULL) 150 if (mixer == NULL)
@@ -157,9 +157,9 @@ static int snd_mixer_oss_stereodevs(snd_mixer_oss_file_t *fmixer)
157 return result; 157 return result;
158} 158}
159 159
160static int snd_mixer_oss_recmask(snd_mixer_oss_file_t *fmixer) 160static int snd_mixer_oss_recmask(struct snd_mixer_oss_file *fmixer)
161{ 161{
162 snd_mixer_oss_t *mixer = fmixer->mixer; 162 struct snd_mixer_oss *mixer = fmixer->mixer;
163 int result = 0; 163 int result = 0;
164 164
165 if (mixer == NULL) 165 if (mixer == NULL)
@@ -167,7 +167,7 @@ static int snd_mixer_oss_recmask(snd_mixer_oss_file_t *fmixer)
167 if (mixer->put_recsrc && mixer->get_recsrc) { /* exclusive */ 167 if (mixer->put_recsrc && mixer->get_recsrc) { /* exclusive */
168 result = mixer->mask_recsrc; 168 result = mixer->mask_recsrc;
169 } else { 169 } else {
170 snd_mixer_oss_slot_t *pslot; 170 struct snd_mixer_oss_slot *pslot;
171 int chn; 171 int chn;
172 for (chn = 0; chn < 31; chn++) { 172 for (chn = 0; chn < 31; chn++) {
173 pslot = &mixer->slots[chn]; 173 pslot = &mixer->slots[chn];
@@ -178,9 +178,9 @@ static int snd_mixer_oss_recmask(snd_mixer_oss_file_t *fmixer)
178 return result; 178 return result;
179} 179}
180 180
181static int snd_mixer_oss_get_recsrc(snd_mixer_oss_file_t *fmixer) 181static int snd_mixer_oss_get_recsrc(struct snd_mixer_oss_file *fmixer)
182{ 182{
183 snd_mixer_oss_t *mixer = fmixer->mixer; 183 struct snd_mixer_oss *mixer = fmixer->mixer;
184 int result = 0; 184 int result = 0;
185 185
186 if (mixer == NULL) 186 if (mixer == NULL)
@@ -191,7 +191,7 @@ static int snd_mixer_oss_get_recsrc(snd_mixer_oss_file_t *fmixer)
191 return err; 191 return err;
192 result = 1 << result; 192 result = 1 << result;
193 } else { 193 } else {
194 snd_mixer_oss_slot_t *pslot; 194 struct snd_mixer_oss_slot *pslot;
195 int chn; 195 int chn;
196 for (chn = 0; chn < 31; chn++) { 196 for (chn = 0; chn < 31; chn++) {
197 pslot = &mixer->slots[chn]; 197 pslot = &mixer->slots[chn];
@@ -206,10 +206,10 @@ static int snd_mixer_oss_get_recsrc(snd_mixer_oss_file_t *fmixer)
206 return mixer->oss_recsrc = result; 206 return mixer->oss_recsrc = result;
207} 207}
208 208
209static int snd_mixer_oss_set_recsrc(snd_mixer_oss_file_t *fmixer, int recsrc) 209static int snd_mixer_oss_set_recsrc(struct snd_mixer_oss_file *fmixer, int recsrc)
210{ 210{
211 snd_mixer_oss_t *mixer = fmixer->mixer; 211 struct snd_mixer_oss *mixer = fmixer->mixer;
212 snd_mixer_oss_slot_t *pslot; 212 struct snd_mixer_oss_slot *pslot;
213 int chn, active; 213 int chn, active;
214 int result = 0; 214 int result = 0;
215 215
@@ -243,10 +243,10 @@ static int snd_mixer_oss_set_recsrc(snd_mixer_oss_file_t *fmixer, int recsrc)
243 return result; 243 return result;
244} 244}
245 245
246static int snd_mixer_oss_get_volume(snd_mixer_oss_file_t *fmixer, int slot) 246static int snd_mixer_oss_get_volume(struct snd_mixer_oss_file *fmixer, int slot)
247{ 247{
248 snd_mixer_oss_t *mixer = fmixer->mixer; 248 struct snd_mixer_oss *mixer = fmixer->mixer;
249 snd_mixer_oss_slot_t *pslot; 249 struct snd_mixer_oss_slot *pslot;
250 int result = 0, left, right; 250 int result = 0, left, right;
251 251
252 if (mixer == NULL || slot > 30) 252 if (mixer == NULL || slot > 30)
@@ -268,11 +268,11 @@ static int snd_mixer_oss_get_volume(snd_mixer_oss_file_t *fmixer, int slot)
268 return result; 268 return result;
269} 269}
270 270
271static int snd_mixer_oss_set_volume(snd_mixer_oss_file_t *fmixer, 271static int snd_mixer_oss_set_volume(struct snd_mixer_oss_file *fmixer,
272 int slot, int volume) 272 int slot, int volume)
273{ 273{
274 snd_mixer_oss_t *mixer = fmixer->mixer; 274 struct snd_mixer_oss *mixer = fmixer->mixer;
275 snd_mixer_oss_slot_t *pslot; 275 struct snd_mixer_oss_slot *pslot;
276 int result = 0, left = volume & 0xff, right = (volume >> 8) & 0xff; 276 int result = 0, left = volume & 0xff, right = (volume >> 8) & 0xff;
277 277
278 if (mixer == NULL || slot > 30) 278 if (mixer == NULL || slot > 30)
@@ -293,7 +293,7 @@ static int snd_mixer_oss_set_volume(snd_mixer_oss_file_t *fmixer,
293 return (left & 0xff) | ((right & 0xff) << 8); 293 return (left & 0xff) | ((right & 0xff) << 8);
294} 294}
295 295
296static int snd_mixer_oss_ioctl1(snd_mixer_oss_file_t *fmixer, unsigned int cmd, unsigned long arg) 296static int snd_mixer_oss_ioctl1(struct snd_mixer_oss_file *fmixer, unsigned int cmd, unsigned long arg)
297{ 297{
298 void __user *argp = (void __user *)arg; 298 void __user *argp = (void __user *)arg;
299 int __user *p = argp; 299 int __user *p = argp;
@@ -362,12 +362,12 @@ static int snd_mixer_oss_ioctl1(snd_mixer_oss_file_t *fmixer, unsigned int cmd,
362 362
363static long snd_mixer_oss_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 363static long snd_mixer_oss_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
364{ 364{
365 return snd_mixer_oss_ioctl1((snd_mixer_oss_file_t *) file->private_data, cmd, arg); 365 return snd_mixer_oss_ioctl1((struct snd_mixer_oss_file *) file->private_data, cmd, arg);
366} 366}
367 367
368int snd_mixer_oss_ioctl_card(snd_card_t *card, unsigned int cmd, unsigned long arg) 368int snd_mixer_oss_ioctl_card(struct snd_card *card, unsigned int cmd, unsigned long arg)
369{ 369{
370 snd_mixer_oss_file_t fmixer; 370 struct snd_mixer_oss_file fmixer;
371 371
372 snd_assert(card != NULL, return -ENXIO); 372 snd_assert(card != NULL, return -ENXIO);
373 if (card->mixer_oss == NULL) 373 if (card->mixer_oss == NULL)
@@ -398,7 +398,7 @@ static struct file_operations snd_mixer_oss_f_ops =
398 .compat_ioctl = snd_mixer_oss_ioctl_compat, 398 .compat_ioctl = snd_mixer_oss_ioctl_compat,
399}; 399};
400 400
401static snd_minor_t snd_mixer_oss_reg = 401static struct snd_minor snd_mixer_oss_reg =
402{ 402{
403 .comment = "mixer", 403 .comment = "mixer",
404 .f_ops = &snd_mixer_oss_f_ops, 404 .f_ops = &snd_mixer_oss_f_ops,
@@ -432,16 +432,16 @@ static long snd_mixer_oss_conv2(long val, long min, long max)
432} 432}
433 433
434#if 0 434#if 0
435static void snd_mixer_oss_recsrce_set(snd_card_t *card, int slot) 435static void snd_mixer_oss_recsrce_set(struct snd_card *card, int slot)
436{ 436{
437 snd_mixer_oss_t *mixer = card->mixer_oss; 437 struct snd_mixer_oss *mixer = card->mixer_oss;
438 if (mixer) 438 if (mixer)
439 mixer->mask_recsrc |= 1 << slot; 439 mixer->mask_recsrc |= 1 << slot;
440} 440}
441 441
442static int snd_mixer_oss_recsrce_get(snd_card_t *card, int slot) 442static int snd_mixer_oss_recsrce_get(struct snd_card *card, int slot)
443{ 443{
444 snd_mixer_oss_t *mixer = card->mixer_oss; 444 struct snd_mixer_oss *mixer = card->mixer_oss;
445 if (mixer && (mixer->mask_recsrc & (1 << slot))) 445 if (mixer && (mixer->mask_recsrc & (1 << slot)))
446 return 1; 446 return 1;
447 return 0; 447 return 0;
@@ -488,10 +488,10 @@ struct slot {
488 488
489#define ID_UNKNOWN ((unsigned int)-1) 489#define ID_UNKNOWN ((unsigned int)-1)
490 490
491static snd_kcontrol_t *snd_mixer_oss_test_id(snd_mixer_oss_t *mixer, const char *name, int index) 491static struct snd_kcontrol *snd_mixer_oss_test_id(struct snd_mixer_oss *mixer, const char *name, int index)
492{ 492{
493 snd_card_t * card = mixer->card; 493 struct snd_card *card = mixer->card;
494 snd_ctl_elem_id_t id; 494 struct snd_ctl_elem_id id;
495 495
496 memset(&id, 0, sizeof(id)); 496 memset(&id, 0, sizeof(id));
497 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 497 id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
@@ -500,15 +500,15 @@ static snd_kcontrol_t *snd_mixer_oss_test_id(snd_mixer_oss_t *mixer, const char
500 return snd_ctl_find_id(card, &id); 500 return snd_ctl_find_id(card, &id);
501} 501}
502 502
503static void snd_mixer_oss_get_volume1_vol(snd_mixer_oss_file_t *fmixer, 503static void snd_mixer_oss_get_volume1_vol(struct snd_mixer_oss_file *fmixer,
504 snd_mixer_oss_slot_t *pslot, 504 struct snd_mixer_oss_slot *pslot,
505 unsigned int numid, 505 unsigned int numid,
506 int *left, int *right) 506 int *left, int *right)
507{ 507{
508 snd_ctl_elem_info_t *uinfo; 508 struct snd_ctl_elem_info *uinfo;
509 snd_ctl_elem_value_t *uctl; 509 struct snd_ctl_elem_value *uctl;
510 snd_kcontrol_t *kctl; 510 struct snd_kcontrol *kctl;
511 snd_card_t *card = fmixer->card; 511 struct snd_card *card = fmixer->card;
512 512
513 if (numid == ID_UNKNOWN) 513 if (numid == ID_UNKNOWN)
514 return; 514 return;
@@ -537,16 +537,16 @@ static void snd_mixer_oss_get_volume1_vol(snd_mixer_oss_file_t *fmixer,
537 kfree(uinfo); 537 kfree(uinfo);
538} 538}
539 539
540static void snd_mixer_oss_get_volume1_sw(snd_mixer_oss_file_t *fmixer, 540static void snd_mixer_oss_get_volume1_sw(struct snd_mixer_oss_file *fmixer,
541 snd_mixer_oss_slot_t *pslot, 541 struct snd_mixer_oss_slot *pslot,
542 unsigned int numid, 542 unsigned int numid,
543 int *left, int *right, 543 int *left, int *right,
544 int route) 544 int route)
545{ 545{
546 snd_ctl_elem_info_t *uinfo; 546 struct snd_ctl_elem_info *uinfo;
547 snd_ctl_elem_value_t *uctl; 547 struct snd_ctl_elem_value *uctl;
548 snd_kcontrol_t *kctl; 548 struct snd_kcontrol *kctl;
549 snd_card_t *card = fmixer->card; 549 struct snd_card *card = fmixer->card;
550 550
551 if (numid == ID_UNKNOWN) 551 if (numid == ID_UNKNOWN)
552 return; 552 return;
@@ -576,8 +576,8 @@ static void snd_mixer_oss_get_volume1_sw(snd_mixer_oss_file_t *fmixer,
576 kfree(uinfo); 576 kfree(uinfo);
577} 577}
578 578
579static int snd_mixer_oss_get_volume1(snd_mixer_oss_file_t *fmixer, 579static int snd_mixer_oss_get_volume1(struct snd_mixer_oss_file *fmixer,
580 snd_mixer_oss_slot_t *pslot, 580 struct snd_mixer_oss_slot *pslot,
581 int *left, int *right) 581 int *left, int *right)
582{ 582{
583 struct slot *slot = (struct slot *)pslot->private_data; 583 struct slot *slot = (struct slot *)pslot->private_data;
@@ -602,15 +602,15 @@ static int snd_mixer_oss_get_volume1(snd_mixer_oss_file_t *fmixer,
602 return 0; 602 return 0;
603} 603}
604 604
605static void snd_mixer_oss_put_volume1_vol(snd_mixer_oss_file_t *fmixer, 605static void snd_mixer_oss_put_volume1_vol(struct snd_mixer_oss_file *fmixer,
606 snd_mixer_oss_slot_t *pslot, 606 struct snd_mixer_oss_slot *pslot,
607 unsigned int numid, 607 unsigned int numid,
608 int left, int right) 608 int left, int right)
609{ 609{
610 snd_ctl_elem_info_t *uinfo; 610 struct snd_ctl_elem_info *uinfo;
611 snd_ctl_elem_value_t *uctl; 611 struct snd_ctl_elem_value *uctl;
612 snd_kcontrol_t *kctl; 612 struct snd_kcontrol *kctl;
613 snd_card_t *card = fmixer->card; 613 struct snd_card *card = fmixer->card;
614 int res; 614 int res;
615 615
616 if (numid == ID_UNKNOWN) 616 if (numid == ID_UNKNOWN)
@@ -640,16 +640,16 @@ static void snd_mixer_oss_put_volume1_vol(snd_mixer_oss_file_t *fmixer,
640 kfree(uinfo); 640 kfree(uinfo);
641} 641}
642 642
643static void snd_mixer_oss_put_volume1_sw(snd_mixer_oss_file_t *fmixer, 643static void snd_mixer_oss_put_volume1_sw(struct snd_mixer_oss_file *fmixer,
644 snd_mixer_oss_slot_t *pslot, 644 struct snd_mixer_oss_slot *pslot,
645 unsigned int numid, 645 unsigned int numid,
646 int left, int right, 646 int left, int right,
647 int route) 647 int route)
648{ 648{
649 snd_ctl_elem_info_t *uinfo; 649 struct snd_ctl_elem_info *uinfo;
650 snd_ctl_elem_value_t *uctl; 650 struct snd_ctl_elem_value *uctl;
651 snd_kcontrol_t *kctl; 651 struct snd_kcontrol *kctl;
652 snd_card_t *card = fmixer->card; 652 struct snd_card *card = fmixer->card;
653 int res; 653 int res;
654 654
655 if (numid == ID_UNKNOWN) 655 if (numid == ID_UNKNOWN)
@@ -685,8 +685,8 @@ static void snd_mixer_oss_put_volume1_sw(snd_mixer_oss_file_t *fmixer,
685 kfree(uinfo); 685 kfree(uinfo);
686} 686}
687 687
688static int snd_mixer_oss_put_volume1(snd_mixer_oss_file_t *fmixer, 688static int snd_mixer_oss_put_volume1(struct snd_mixer_oss_file *fmixer,
689 snd_mixer_oss_slot_t *pslot, 689 struct snd_mixer_oss_slot *pslot,
690 int left, int right) 690 int left, int right)
691{ 691{
692 struct slot *slot = (struct slot *)pslot->private_data; 692 struct slot *slot = (struct slot *)pslot->private_data;
@@ -723,8 +723,8 @@ static int snd_mixer_oss_put_volume1(snd_mixer_oss_file_t *fmixer,
723 return 0; 723 return 0;
724} 724}
725 725
726static int snd_mixer_oss_get_recsrc1_sw(snd_mixer_oss_file_t *fmixer, 726static int snd_mixer_oss_get_recsrc1_sw(struct snd_mixer_oss_file *fmixer,
727 snd_mixer_oss_slot_t *pslot, 727 struct snd_mixer_oss_slot *pslot,
728 int *active) 728 int *active)
729{ 729{
730 struct slot *slot = (struct slot *)pslot->private_data; 730 struct slot *slot = (struct slot *)pslot->private_data;
@@ -736,8 +736,8 @@ static int snd_mixer_oss_get_recsrc1_sw(snd_mixer_oss_file_t *fmixer,
736 return 0; 736 return 0;
737} 737}
738 738
739static int snd_mixer_oss_get_recsrc1_route(snd_mixer_oss_file_t *fmixer, 739static int snd_mixer_oss_get_recsrc1_route(struct snd_mixer_oss_file *fmixer,
740 snd_mixer_oss_slot_t *pslot, 740 struct snd_mixer_oss_slot *pslot,
741 int *active) 741 int *active)
742{ 742{
743 struct slot *slot = (struct slot *)pslot->private_data; 743 struct slot *slot = (struct slot *)pslot->private_data;
@@ -749,8 +749,8 @@ static int snd_mixer_oss_get_recsrc1_route(snd_mixer_oss_file_t *fmixer,
749 return 0; 749 return 0;
750} 750}
751 751
752static int snd_mixer_oss_put_recsrc1_sw(snd_mixer_oss_file_t *fmixer, 752static int snd_mixer_oss_put_recsrc1_sw(struct snd_mixer_oss_file *fmixer,
753 snd_mixer_oss_slot_t *pslot, 753 struct snd_mixer_oss_slot *pslot,
754 int active) 754 int active)
755{ 755{
756 struct slot *slot = (struct slot *)pslot->private_data; 756 struct slot *slot = (struct slot *)pslot->private_data;
@@ -759,8 +759,8 @@ static int snd_mixer_oss_put_recsrc1_sw(snd_mixer_oss_file_t *fmixer,
759 return 0; 759 return 0;
760} 760}
761 761
762static int snd_mixer_oss_put_recsrc1_route(snd_mixer_oss_file_t *fmixer, 762static int snd_mixer_oss_put_recsrc1_route(struct snd_mixer_oss_file *fmixer,
763 snd_mixer_oss_slot_t *pslot, 763 struct snd_mixer_oss_slot *pslot,
764 int active) 764 int active)
765{ 765{
766 struct slot *slot = (struct slot *)pslot->private_data; 766 struct slot *slot = (struct slot *)pslot->private_data;
@@ -769,15 +769,15 @@ static int snd_mixer_oss_put_recsrc1_route(snd_mixer_oss_file_t *fmixer,
769 return 0; 769 return 0;
770} 770}
771 771
772static int snd_mixer_oss_get_recsrc2(snd_mixer_oss_file_t *fmixer, unsigned int *active_index) 772static int snd_mixer_oss_get_recsrc2(struct snd_mixer_oss_file *fmixer, unsigned int *active_index)
773{ 773{
774 snd_card_t *card = fmixer->card; 774 struct snd_card *card = fmixer->card;
775 snd_mixer_oss_t *mixer = fmixer->mixer; 775 struct snd_mixer_oss *mixer = fmixer->mixer;
776 snd_kcontrol_t *kctl; 776 struct snd_kcontrol *kctl;
777 snd_mixer_oss_slot_t *pslot; 777 struct snd_mixer_oss_slot *pslot;
778 struct slot *slot; 778 struct slot *slot;
779 snd_ctl_elem_info_t *uinfo; 779 struct snd_ctl_elem_info *uinfo;
780 snd_ctl_elem_value_t *uctl; 780 struct snd_ctl_elem_value *uctl;
781 int err, idx; 781 int err, idx;
782 782
783 uinfo = kzalloc(sizeof(*uinfo), GFP_KERNEL); 783 uinfo = kzalloc(sizeof(*uinfo), GFP_KERNEL);
@@ -818,15 +818,15 @@ static int snd_mixer_oss_get_recsrc2(snd_mixer_oss_file_t *fmixer, unsigned int
818 return err; 818 return err;
819} 819}
820 820
821static int snd_mixer_oss_put_recsrc2(snd_mixer_oss_file_t *fmixer, unsigned int active_index) 821static int snd_mixer_oss_put_recsrc2(struct snd_mixer_oss_file *fmixer, unsigned int active_index)
822{ 822{
823 snd_card_t *card = fmixer->card; 823 struct snd_card *card = fmixer->card;
824 snd_mixer_oss_t *mixer = fmixer->mixer; 824 struct snd_mixer_oss *mixer = fmixer->mixer;
825 snd_kcontrol_t *kctl; 825 struct snd_kcontrol *kctl;
826 snd_mixer_oss_slot_t *pslot; 826 struct snd_mixer_oss_slot *pslot;
827 struct slot *slot = NULL; 827 struct slot *slot = NULL;
828 snd_ctl_elem_info_t *uinfo; 828 struct snd_ctl_elem_info *uinfo;
829 snd_ctl_elem_value_t *uctl; 829 struct snd_ctl_elem_value *uctl;
830 int err; 830 int err;
831 unsigned int idx; 831 unsigned int idx;
832 832
@@ -878,11 +878,11 @@ struct snd_mixer_oss_assign_table {
878 int index; 878 int index;
879}; 879};
880 880
881static int snd_mixer_oss_build_test(snd_mixer_oss_t *mixer, struct slot *slot, const char *name, int index, int item) 881static int snd_mixer_oss_build_test(struct snd_mixer_oss *mixer, struct slot *slot, const char *name, int index, int item)
882{ 882{
883 snd_ctl_elem_info_t *info; 883 struct snd_ctl_elem_info *info;
884 snd_kcontrol_t *kcontrol; 884 struct snd_kcontrol *kcontrol;
885 snd_card_t *card = mixer->card; 885 struct snd_card *card = mixer->card;
886 int err; 886 int err;
887 887
888 down_read(&card->controls_rwsem); 888 down_read(&card->controls_rwsem);
@@ -910,7 +910,7 @@ static int snd_mixer_oss_build_test(snd_mixer_oss_t *mixer, struct slot *slot, c
910 return 0; 910 return 0;
911} 911}
912 912
913static void snd_mixer_oss_slot_free(snd_mixer_oss_slot_t *chn) 913static void snd_mixer_oss_slot_free(struct snd_mixer_oss_slot *chn)
914{ 914{
915 struct slot *p = (struct slot *)chn->private_data; 915 struct slot *p = (struct slot *)chn->private_data;
916 if (p) { 916 if (p) {
@@ -922,7 +922,7 @@ static void snd_mixer_oss_slot_free(snd_mixer_oss_slot_t *chn)
922 } 922 }
923} 923}
924 924
925static void mixer_slot_clear(snd_mixer_oss_slot_t *rslot) 925static void mixer_slot_clear(struct snd_mixer_oss_slot *rslot)
926{ 926{
927 int idx = rslot->number; /* remember this */ 927 int idx = rslot->number; /* remember this */
928 if (rslot->private_free) 928 if (rslot->private_free)
@@ -936,12 +936,12 @@ static void mixer_slot_clear(snd_mixer_oss_slot_t *rslot)
936 * ptr_allocated means the entry is dynamically allocated (change via proc file). 936 * ptr_allocated means the entry is dynamically allocated (change via proc file).
937 * when replace_old = 1, the old entry is replaced with the new one. 937 * when replace_old = 1, the old entry is replaced with the new one.
938 */ 938 */
939static int snd_mixer_oss_build_input(snd_mixer_oss_t *mixer, struct snd_mixer_oss_assign_table *ptr, int ptr_allocated, int replace_old) 939static int snd_mixer_oss_build_input(struct snd_mixer_oss *mixer, struct snd_mixer_oss_assign_table *ptr, int ptr_allocated, int replace_old)
940{ 940{
941 struct slot slot; 941 struct slot slot;
942 struct slot *pslot; 942 struct slot *pslot;
943 snd_kcontrol_t *kctl; 943 struct snd_kcontrol *kctl;
944 snd_mixer_oss_slot_t *rslot; 944 struct snd_mixer_oss_slot *rslot;
945 char str[64]; 945 char str[64];
946 946
947 /* check if already assigned */ 947 /* check if already assigned */
@@ -991,7 +991,7 @@ static int snd_mixer_oss_build_input(snd_mixer_oss_t *mixer, struct snd_mixer_os
991 return 0; 991 return 0;
992 down_read(&mixer->card->controls_rwsem); 992 down_read(&mixer->card->controls_rwsem);
993 if (ptr->index == 0 && (kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0)) != NULL) { 993 if (ptr->index == 0 && (kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0)) != NULL) {
994 snd_ctl_elem_info_t *uinfo; 994 struct snd_ctl_elem_info *uinfo;
995 995
996 uinfo = kmalloc(sizeof(*uinfo), GFP_KERNEL); 996 uinfo = kmalloc(sizeof(*uinfo), GFP_KERNEL);
997 if (! uinfo) { 997 if (! uinfo) {
@@ -1093,10 +1093,10 @@ static char *oss_mixer_names[SNDRV_OSS_MAX_MIXERS] = {
1093 * /proc interface 1093 * /proc interface
1094 */ 1094 */
1095 1095
1096static void snd_mixer_oss_proc_read(snd_info_entry_t *entry, 1096static void snd_mixer_oss_proc_read(struct snd_info_entry *entry,
1097 snd_info_buffer_t * buffer) 1097 struct snd_info_buffer *buffer)
1098{ 1098{
1099 snd_mixer_oss_t *mixer = entry->private_data; 1099 struct snd_mixer_oss *mixer = entry->private_data;
1100 int i; 1100 int i;
1101 1101
1102 down(&mixer->reg_mutex); 1102 down(&mixer->reg_mutex);
@@ -1117,10 +1117,10 @@ static void snd_mixer_oss_proc_read(snd_info_entry_t *entry,
1117 up(&mixer->reg_mutex); 1117 up(&mixer->reg_mutex);
1118} 1118}
1119 1119
1120static void snd_mixer_oss_proc_write(snd_info_entry_t *entry, 1120static void snd_mixer_oss_proc_write(struct snd_info_entry *entry,
1121 snd_info_buffer_t * buffer) 1121 struct snd_info_buffer *buffer)
1122{ 1122{
1123 snd_mixer_oss_t *mixer = entry->private_data; 1123 struct snd_mixer_oss *mixer = entry->private_data;
1124 char line[128], str[32], idxstr[16], *cptr; 1124 char line[128], str[32], idxstr[16], *cptr;
1125 int ch, idx; 1125 int ch, idx;
1126 struct snd_mixer_oss_assign_table *tbl; 1126 struct snd_mixer_oss_assign_table *tbl;
@@ -1176,9 +1176,9 @@ static void snd_mixer_oss_proc_write(snd_info_entry_t *entry,
1176 } 1176 }
1177} 1177}
1178 1178
1179static void snd_mixer_oss_proc_init(snd_mixer_oss_t *mixer) 1179static void snd_mixer_oss_proc_init(struct snd_mixer_oss *mixer)
1180{ 1180{
1181 snd_info_entry_t *entry; 1181 struct snd_info_entry *entry;
1182 1182
1183 entry = snd_info_create_card_entry(mixer->card, "oss_mixer", 1183 entry = snd_info_create_card_entry(mixer->card, "oss_mixer",
1184 mixer->card->proc_root); 1184 mixer->card->proc_root);
@@ -1198,7 +1198,7 @@ static void snd_mixer_oss_proc_init(snd_mixer_oss_t *mixer)
1198 mixer->proc_entry = entry; 1198 mixer->proc_entry = entry;
1199} 1199}
1200 1200
1201static void snd_mixer_oss_proc_done(snd_mixer_oss_t *mixer) 1201static void snd_mixer_oss_proc_done(struct snd_mixer_oss *mixer)
1202{ 1202{
1203 if (mixer->proc_entry) { 1203 if (mixer->proc_entry) {
1204 snd_info_unregister(mixer->proc_entry); 1204 snd_info_unregister(mixer->proc_entry);
@@ -1206,7 +1206,7 @@ static void snd_mixer_oss_proc_done(snd_mixer_oss_t *mixer)
1206 } 1206 }
1207} 1207}
1208 1208
1209static void snd_mixer_oss_build(snd_mixer_oss_t *mixer) 1209static void snd_mixer_oss_build(struct snd_mixer_oss *mixer)
1210{ 1210{
1211 static struct snd_mixer_oss_assign_table table[] = { 1211 static struct snd_mixer_oss_assign_table table[] = {
1212 { SOUND_MIXER_VOLUME, "Master", 0 }, 1212 { SOUND_MIXER_VOLUME, "Master", 0 },
@@ -1260,8 +1260,8 @@ static void snd_mixer_oss_build(snd_mixer_oss_t *mixer)
1260 1260
1261static int snd_mixer_oss_free1(void *private) 1261static int snd_mixer_oss_free1(void *private)
1262{ 1262{
1263 snd_mixer_oss_t *mixer = private; 1263 struct snd_mixer_oss *mixer = private;
1264 snd_card_t * card; 1264 struct snd_card *card;
1265 int idx; 1265 int idx;
1266 1266
1267 snd_assert(mixer != NULL, return -ENXIO); 1267 snd_assert(mixer != NULL, return -ENXIO);
@@ -1269,7 +1269,7 @@ static int snd_mixer_oss_free1(void *private)
1269 snd_assert(mixer == card->mixer_oss, return -ENXIO); 1269 snd_assert(mixer == card->mixer_oss, return -ENXIO);
1270 card->mixer_oss = NULL; 1270 card->mixer_oss = NULL;
1271 for (idx = 0; idx < SNDRV_OSS_MAX_MIXERS; idx++) { 1271 for (idx = 0; idx < SNDRV_OSS_MAX_MIXERS; idx++) {
1272 snd_mixer_oss_slot_t *chn = &mixer->slots[idx]; 1272 struct snd_mixer_oss_slot *chn = &mixer->slots[idx];
1273 if (chn->private_free) 1273 if (chn->private_free)
1274 chn->private_free(chn); 1274 chn->private_free(chn);
1275 } 1275 }
@@ -1277,9 +1277,9 @@ static int snd_mixer_oss_free1(void *private)
1277 return 0; 1277 return 0;
1278} 1278}
1279 1279
1280static int snd_mixer_oss_notify_handler(snd_card_t * card, int cmd) 1280static int snd_mixer_oss_notify_handler(struct snd_card *card, int cmd)
1281{ 1281{
1282 snd_mixer_oss_t *mixer; 1282 struct snd_mixer_oss *mixer;
1283 1283
1284 if (cmd == SND_MIXER_OSS_NOTIFY_REGISTER) { 1284 if (cmd == SND_MIXER_OSS_NOTIFY_REGISTER) {
1285 char name[128]; 1285 char name[128];