Loading sound/usb/line6/pcm.c +10 −3 Original line number Original line Diff line number Diff line Loading @@ -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; } } Loading sound/usb/line6/toneport.c +10 −3 Original line number Original line Diff line number Diff line Loading @@ -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); line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR); return err; } } else { line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR); } return 1; return 1; } } Loading Loading
sound/usb/line6/pcm.c +10 −3 Original line number Original line Diff line number Diff line Loading @@ -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; } } Loading
sound/usb/line6/toneport.c +10 −3 Original line number Original line Diff line number Diff line Loading @@ -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); line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR); return err; } } else { line6_pcm_release(line6pcm, LINE6_STREAM_MONITOR); } return 1; return 1; } } Loading