@@ -106,7 +106,7 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
}
/* not found */
- return -ENOMEM;
+ return -EBUSY;
}
@@ -360,15 +360,15 @@ static int snd_emu10k1_gpr_ctl_put(struct snd_kcontrol *kcontrol, struct snd_ctl
break;
case EMU10K1_GPR_TRANSLATION_BASS:
if ((ctl->count % 5) != 0 || (ctl->count / 5) != ctl->vcount) {
- change = -EIO;
+ change = -EINVAL;
goto __error;
}
for (j = 0; j < 5; j++)
snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, bass_table[val][j]);
break;
case EMU10K1_GPR_TRANSLATION_TREBLE:
if ((ctl->count % 5) != 0 || (ctl->count / 5) != ctl->vcount) {
- change = -EIO;
+ change = -EINVAL;
goto __error;
}
for (j = 0; j < 5; j++)
@@ -226,7 +226,7 @@ int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu,
dev_err(emu->card->dev, "status=0x%x, reg=%d, value=%d\n",
status, reg, value);
/* dump_stack(); */
- err = -EINVAL;
+ err = -EIO;
}
spin_unlock(&emu->i2c_lock);
@@ -70,7 +70,7 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
}
if (first_voice == last_voice)
- return -ENOMEM;
+ return -EBUSY;
for (i = 0; i < number; i++) {
voice = &emu->voices[(first_voice + i) % NUM_G];
One might argue that this potentially breaks user space, but a) this is just one driver among many, so it seems unlikely that someone would expect (only) the broken codes and b) it seems unlikely that someone would check these syscalls for particular errors at all, rather than just logging them (this might be debatable for the voice allocator calls). Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> --- sound/pci/emu10k1/emu10k1_callback.c | 2 +- sound/pci/emu10k1/emufx.c | 4 ++-- sound/pci/emu10k1/io.c | 2 +- sound/pci/emu10k1/voice.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-)