ALSA: line6: Handle error from line6_pcm_acquire()
Tested-by: Chris Rorvick <chris@rorvick.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2954f914f2
commit
247d95ee6d
|
@ -45,15 +45,22 @@ static int snd_line6_impulse_volume_put(struct snd_kcontrol *kcontrol,
|
||||||
{
|
{
|
||||||
struct snd_line6_pcm *line6pcm = snd_kcontrol_chip(kcontrol);
|
struct snd_line6_pcm *line6pcm = snd_kcontrol_chip(kcontrol);
|
||||||
int value = ucontrol->value.integer.value[0];
|
int value = ucontrol->value.integer.value[0];
|
||||||
|
int err;
|
||||||
|
|
||||||
if (line6pcm->impulse_volume == value)
|
if (line6pcm->impulse_volume == value)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
line6pcm->impulse_volume = value;
|
line6pcm->impulse_volume = value;
|
||||||
if (value > 0)
|
if (value > 0) {
|
||||||
line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE);
|
err = line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE);
|
||||||
else
|
if (err < 0) {
|
||||||
|
line6pcm->impulse_volume = 0;
|
||||||
|
line6_pcm_release(line6pcm, LINE6_STREAM_IMPULSE);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
line6_pcm_release(line6pcm, LINE6_STREAM_IMPULSE);
|
line6_pcm_release(line6pcm, LINE6_STREAM_IMPULSE);
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -182,16 +182,23 @@ static int snd_toneport_monitor_put(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_ctl_elem_value *ucontrol)
|
struct snd_ctl_elem_value *ucontrol)
|
||||||
{
|
{
|
||||||
struct snd_line6_pcm *line6pcm = snd_kcontrol_chip(kcontrol);
|
struct snd_line6_pcm *line6pcm = snd_kcontrol_chip(kcontrol);
|
||||||
|
int err;
|
||||||
|
|
||||||
if (ucontrol->value.integer.value[0] == line6pcm->volume_monitor)
|
if (ucontrol->value.integer.value[0] == line6pcm->volume_monitor)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
line6pcm->volume_monitor = ucontrol->value.integer.value[0];
|
line6pcm->volume_monitor = ucontrol->value.integer.value[0];
|
||||||
|
|
||||||
if (line6pcm->volume_monitor > 0)
|
if (line6pcm->volume_monitor > 0) {
|
||||||
line6_pcm_acquire(line6pcm, LINE6_STREAM_MONITOR);
|
err = line6_pcm_acquire(line6pcm, LINE6_STREAM_MONITOR);
|
||||||
else
|
if (err < 0) {
|
||||||
|
line6pcm->volume_monitor = 0;
|
||||||
|
line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR);
|
line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR);
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue