提交 ba35ca07 编写于 作者: F Frank Schaefer 提交者: Mauro Carvalho Chehab

[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: NFrank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
上级 22a5ea91
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册