[media] em28xx-audio: make sure audio is unmuted on open()
In all cases, when the first capture is called, we need to call the code that unmutes the volume. Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
Родитель
22a5ea91df
Коммит
ba35ca0708
|
@ -273,26 +273,28 @@ static int snd_em28xx_capture_open(struct snd_pcm_substream *substream)
|
|||
mutex_lock(&dev->lock);
|
||||
|
||||
runtime->hw = snd_em28xx_hw_capture;
|
||||
if ((dev->alt == 0 || dev->is_audio_only) && dev->adev.users == 0) {
|
||||
if (dev->is_audio_only)
|
||||
/* vendor audio is on a separate interface */
|
||||
dev->alt = 1;
|
||||
else
|
||||
/* vendor audio is on the same interface as video */
|
||||
dev->alt = 7;
|
||||
/*
|
||||
* FIXME: The intention seems to be to select the alt
|
||||
* setting with the largest wMaxPacketSize for the video
|
||||
* endpoint.
|
||||
* At least dev->alt should be used instead, but we
|
||||
* should probably not touch it at all if it is
|
||||
* already >0, because wMaxPacketSize of the audio
|
||||
* endpoints seems to be the same for all.
|
||||
*/
|
||||
|
||||
dprintk("changing alternate number on interface %d to %d\n",
|
||||
dev->ifnum, dev->alt);
|
||||
usb_set_interface(dev->udev, dev->ifnum, dev->alt);
|
||||
if (dev->adev.users == 0) {
|
||||
if (dev->alt == 0 || dev->is_audio_only) {
|
||||
if (dev->is_audio_only)
|
||||
/* audio is on a separate interface */
|
||||
dev->alt = 1;
|
||||
else
|
||||
/* audio is on the same interface as video */
|
||||
dev->alt = 7;
|
||||
/*
|
||||
* FIXME: The intention seems to be to select
|
||||
* the alt setting with the largest
|
||||
* wMaxPacketSize for the video endpoint.
|
||||
* At least dev->alt should be used instead, but
|
||||
* we should probably not touch it at all if it
|
||||
* is already >0, because wMaxPacketSize of the
|
||||
* audio endpoints seems to be the same for all.
|
||||
*/
|
||||
dprintk("changing alternate number on interface %d to %d\n",
|
||||
dev->ifnum, dev->alt);
|
||||
usb_set_interface(dev->udev, dev->ifnum, dev->alt);
|
||||
}
|
||||
|
||||
/* Sets volume, mute, etc */
|
||||
dev->mute = 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче