Signed-off-by: Frank Schäfer <fschaefer....@googlemail.com>
---
 drivers/media/usb/em28xx/em28xx-audio.c |   42 ++++++++++++++++---------------
 1 Datei geändert, 22 Zeilen hinzugefügt(+), 20 Zeilen entfernt(-)

diff --git a/drivers/media/usb/em28xx/em28xx-audio.c 
b/drivers/media/usb/em28xx/em28xx-audio.c
index dfdfa77..a3daf07 100644
--- a/drivers/media/usb/em28xx/em28xx-audio.c
+++ b/drivers/media/usb/em28xx/em28xx-audio.c
@@ -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;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to