diff options
Diffstat (limited to 'sound/core/oss/mixer_oss.c')
-rw-r--r-- | sound/core/oss/mixer_oss.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/core/oss/mixer_oss.c b/sound/core/oss/mixer_oss.c index 822dd56993ca..d8359cfeca15 100644 --- a/sound/core/oss/mixer_oss.c +++ b/sound/core/oss/mixer_oss.c | |||
@@ -190,9 +190,10 @@ static int snd_mixer_oss_get_recsrc(struct snd_mixer_oss_file *fmixer) | |||
190 | return -EIO; | 190 | return -EIO; |
191 | if (mixer->put_recsrc && mixer->get_recsrc) { /* exclusive */ | 191 | if (mixer->put_recsrc && mixer->get_recsrc) { /* exclusive */ |
192 | int err; | 192 | int err; |
193 | if ((err = mixer->get_recsrc(fmixer, &result)) < 0) | 193 | unsigned int index; |
194 | if ((err = mixer->get_recsrc(fmixer, &index)) < 0) | ||
194 | return err; | 195 | return err; |
195 | result = 1 << result; | 196 | result = 1 << index; |
196 | } else { | 197 | } else { |
197 | struct snd_mixer_oss_slot *pslot; | 198 | struct snd_mixer_oss_slot *pslot; |
198 | int chn; | 199 | int chn; |
@@ -214,6 +215,7 @@ static int snd_mixer_oss_set_recsrc(struct snd_mixer_oss_file *fmixer, int recsr | |||
214 | struct snd_mixer_oss *mixer = fmixer->mixer; | 215 | struct snd_mixer_oss *mixer = fmixer->mixer; |
215 | struct snd_mixer_oss_slot *pslot; | 216 | struct snd_mixer_oss_slot *pslot; |
216 | int chn, active; | 217 | int chn, active; |
218 | unsigned int index; | ||
217 | int result = 0; | 219 | int result = 0; |
218 | 220 | ||
219 | if (mixer == NULL) | 221 | if (mixer == NULL) |
@@ -222,8 +224,8 @@ static int snd_mixer_oss_set_recsrc(struct snd_mixer_oss_file *fmixer, int recsr | |||
222 | if (recsrc & ~mixer->oss_recsrc) | 224 | if (recsrc & ~mixer->oss_recsrc) |
223 | recsrc &= ~mixer->oss_recsrc; | 225 | recsrc &= ~mixer->oss_recsrc; |
224 | mixer->put_recsrc(fmixer, ffz(~recsrc)); | 226 | mixer->put_recsrc(fmixer, ffz(~recsrc)); |
225 | mixer->get_recsrc(fmixer, &result); | 227 | mixer->get_recsrc(fmixer, &index); |
226 | result = 1 << result; | 228 | result = 1 << index; |
227 | } | 229 | } |
228 | for (chn = 0; chn < 31; chn++) { | 230 | for (chn = 0; chn < 31; chn++) { |
229 | pslot = &mixer->slots[chn]; | 231 | pslot = &mixer->slots[chn]; |