mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 21:51:40 +00:00
ALSA: emu10k1: fix SNDRV_EMU10K1_IOCTL_SINGLE_STEP
- Use correct address limit for Audigy - Use the right constant to actually make a step on Audigy - Don't store *_DBG_STEP and the address in emu->fx8010.dbg, as otherwise unrelated operations would make steps, too This is untested. as10k1 was never ported to Audigy anyway. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230422161021.1144004-1-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
65243c7eb6
commit
3750528921
@ -2650,17 +2650,19 @@ static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, un
|
||||
return -EPERM;
|
||||
if (get_user(addr, (unsigned int __user *)argp))
|
||||
return -EFAULT;
|
||||
if (addr > 0x1ff)
|
||||
return -EINVAL;
|
||||
if (emu->audigy)
|
||||
snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg |= A_DBG_SINGLE_STEP | addr);
|
||||
else
|
||||
snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg |= EMU10K1_DBG_SINGLE_STEP | addr);
|
||||
udelay(10);
|
||||
if (emu->audigy)
|
||||
snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg |= A_DBG_SINGLE_STEP | A_DBG_STEP_ADDR | addr);
|
||||
else
|
||||
snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg |= EMU10K1_DBG_SINGLE_STEP | EMU10K1_DBG_STEP | addr);
|
||||
if (emu->audigy) {
|
||||
if (addr > A_DBG_STEP_ADDR)
|
||||
return -EINVAL;
|
||||
snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg |= A_DBG_SINGLE_STEP);
|
||||
udelay(10);
|
||||
snd_emu10k1_ptr_write(emu, A_DBG, 0, emu->fx8010.dbg | A_DBG_STEP | addr);
|
||||
} else {
|
||||
if (addr > EMU10K1_DBG_SINGLE_STEP_ADDR)
|
||||
return -EINVAL;
|
||||
snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg |= EMU10K1_DBG_SINGLE_STEP);
|
||||
udelay(10);
|
||||
snd_emu10k1_ptr_write(emu, DBG, 0, emu->fx8010.dbg | EMU10K1_DBG_STEP | addr);
|
||||
}
|
||||
return 0;
|
||||
case SNDRV_EMU10K1_IOCTL_DBG_READ:
|
||||
if (emu->audigy)
|
||||
|
Loading…
Reference in New Issue
Block a user