Message ID | 20101006160441.6ee9583d.ospite@studenti.unina.it (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-path: <mchehab@pedra> Envelope-to: mchehab@pedra Delivery-date: Thu, 07 Oct 2010 13:36:26 -0300 Received: from mchehab by pedra with local (Exim 4.72) (envelope-from <mchehab@pedra>) id 1P3tSE-00077M-Di for mchehab@pedra; Thu, 07 Oct 2010 13:36:26 -0300 Received: from casper.infradead.org [85.118.1.10] by pedra with IMAP (fetchmail-6.3.17) for <mchehab@localhost> (single-drop); Thu, 07 Oct 2010 13:36:26 -0300 (BRT) Received: from bombadil.infradead.org ([2001:4830:2446:ff00:4687:fcff:fea6:5117]) by casper.infradead.org with esmtps (Exim 4.72 #1 (Red Hat Linux)) id 1P3tQb-0002no-BM for mchehab@casper.infradead.org; Thu, 07 Oct 2010 16:34:45 +0000 Received: from vger.kernel.org ([209.132.180.67]) by bombadil.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1P3tQB-0007Q9-M5; Thu, 07 Oct 2010 16:34:20 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756945Ab0JFOEx (ORCPT <rfc822; kmpark@infradead.org> + 1 other); Wed, 6 Oct 2010 10:04:53 -0400 Received: from smtp207.alice.it ([82.57.200.103]:42557 "EHLO smtp207.alice.it" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756693Ab0JFOEx (ORCPT <rfc822;linux-media@vger.kernel.org>); Wed, 6 Oct 2010 10:04:53 -0400 Received: from jcn (82.57.78.117) by smtp207.alice.it (8.5.124.08) (authenticated as fospite@alice.it) id 4C9E16C900C9AA33; Wed, 6 Oct 2010 16:04:49 +0200 Date: Wed, 6 Oct 2010 16:04:41 +0200 From: Antonio Ospite <ospite@studenti.unina.it> To: Jean-Francois Moine <moinejf@free.fr> Cc: linux-media@vger.kernel.org Subject: Re: gspca, audio and ov534: regression. Message-Id: <20101006160441.6ee9583d.ospite@studenti.unina.it> In-Reply-To: <20101006134855.43879d74@tele> References: <20101006123321.baade0a4.ospite@studenti.unina.it> <20101006134855.43879d74@tele> X-Mailer: Sylpheed 3.0.2 (GTK+ 2.20.1; x86_64-pc-linux-gnu) X-Face: z*RaLf`X<@C75u6Ig9}{oW$H; 1_\2t5)({*|jhM<pyWR#k60!#=#>/Vb; ]yA5<GWI5`6u&+ ; 6b'@y|8w"wB; 4/e!7wYYrcqdJFY,~%Gk_4]cq$Ei/7<j&N3ah(m`ku?pX.&+~:_/wC~dwn^)MizBG !pE^+iDQQ1yC6^,)YDKkxDd!T>\I~93>J<_`<4)A{':UrE Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="PGP-SHA1"; boundary="Signature=_Wed__6_Oct_2010_16_04_41_+0200_mHK/xQ8KF+JVamhN" Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org Sender: <mchehab@pedra> |
Commit Message
Antonio Ospite
Oct. 6, 2010, 2:04 p.m. UTC
On Wed, 6 Oct 2010 13:48:55 +0200 Jean-Francois Moine <moinejf@free.fr> wrote: > On Wed, 6 Oct 2010 12:33:21 +0200 > Antonio Ospite <ospite@studenti.unina.it> wrote: > > > with 2.6.36-rc6 I can't use the ov534 gspca subdriver (with PS3 eye) > > anymore, when I try to capture video in dmesg I get: > > gspca: no transfer endpoint found > > > > If I revert commit 35680ba I can make video capture work again but I > > still don't get the audio device in pulseaudio, it shows up in > > alsamixer but if I try to select it, on the console I get: > > cannot load mixer controls: Invalid argument > > [...] > > I think I see why the commit prevents the webcam to work: as it is > done, the choice of the alternate setting does not work with bulk > transfer. A simple fix could be to also check bulk transfer when > skipping an alt setting in the function get_ep(). > Thanks, the following change fixes it, was this what you had in mind? > About audio stream, I do not see how it can have been broken. > PS3 Eye audio is working with linux-2.6.33.7 it is broken in linux-2.6.35.7 already, I'll try to further narrow down the interval. Ah, alsamixer doesn't work even when the device is OK in pulseaudio... > Might you send me the full USB information of your webcam? > You can find lsusb output attached. Thanks, Antonio
Comments
On Wed, 6 Oct 2010 16:04:41 +0200 Antonio Ospite <ospite@studenti.unina.it> wrote: > On Wed, 6 Oct 2010 13:48:55 +0200 > Jean-Francois Moine <moinejf@free.fr> wrote: > > > On Wed, 6 Oct 2010 12:33:21 +0200 > > Antonio Ospite <ospite@studenti.unina.it> wrote: > > > > > with 2.6.36-rc6 I can't use the ov534 gspca subdriver (with PS3 eye) > > > anymore, when I try to capture video in dmesg I get: > > > gspca: no transfer endpoint found > > > > > > If I revert commit 35680ba I can make video capture work again but I > > > still don't get the audio device in pulseaudio, it shows up in > > > alsamixer but if I try to select it, on the console I get: > > > cannot load mixer controls: Invalid argument > > > [...] > > About audio stream, I do not see how it can have been broken. > > > > PS3 Eye audio is working with linux-2.6.33.7 it is broken in > linux-2.6.35.7 already, I'll try to further narrow down the interval. > Ah, alsamixer doesn't work even when the device is OK in pulseaudio... > I was wrong, the audio part works even in 2.6.36-rc6 but _only_ when the webcam is plugged in from boot, could this have to do with the order gspca and snd-usb-audio are loaded? Regards, Antonio
On Wed, 6 Oct 2010 16:04:41 +0200 Antonio Ospite <ospite@studenti.unina.it> wrote: > Thanks, the following change fixes it, was this what you had in mind? > > diff --git a/drivers/media/video/gspca/gspca.c > b/drivers/media/video/gspca/gspca.c index b984610..30e0b32 100644 > --- a/drivers/media/video/gspca/gspca.c > +++ b/drivers/media/video/gspca/gspca.c > @@ -651,7 +651,7 @@ static struct usb_host_endpoint *get_ep(struct > gspca_dev *gspca_dev) : USB_ENDPOINT_XFER_ISOC; > i = gspca_dev->alt; /* previous alt > setting */ if (gspca_dev->cam.reverse_alts) { > - if (gspca_dev->audio) > + if (gspca_dev->audio && !gspca_dev->cam.bulk) > i++; > while (++i < gspca_dev->nbalt) { > ep = alt_xfer(&intf->altsetting[i], xfer); > @@ -659,7 +659,7 @@ static struct usb_host_endpoint *get_ep(struct > gspca_dev *gspca_dev) break; > } > } else { > - if (gspca_dev->audio) > + if (gspca_dev->audio && !gspca_dev->cam.bulk) > i--; > while (--i >= 0) { > ep = alt_xfer(&intf->altsetting[i], xfer); Yes, but, after thought, as there is only one alternate setting, the tests could be: if (gspca_dev->audio && i < gspca_dev->nbalt - 1) and if (gspca_dev->audio && i > 0) This should work also for isochronous transfers. regards.
On Wed, 6 Oct 2010 16:53:37 +0200 Antonio Ospite <ospite@studenti.unina.it> wrote: > > PS3 Eye audio is working with linux-2.6.33.7 it is broken in > > linux-2.6.35.7 already, I'll try to further narrow down the > > interval. Ah, alsamixer doesn't work even when the device is OK in > > pulseaudio... > > I was wrong, the audio part works even in 2.6.36-rc6 but _only_ when > the webcam is plugged in from boot, could this have to do with the > order gspca and snd-usb-audio are loaded? Hi Antonio, If you still have a kernel 2.6.33, may you try my test version (tarball in my web page)? As it contain only the gspca stuff, this may tell if the problem is in gspca or elsewhere in the kernel. Best regards.
On Thu, 7 Oct 2010 19:44:01 +0200 Jean-Francois Moine <moinejf@free.fr> wrote: > On Wed, 6 Oct 2010 16:53:37 +0200 > Antonio Ospite <ospite@studenti.unina.it> wrote: > > > > PS3 Eye audio is working with linux-2.6.33.7 it is broken in > > > linux-2.6.35.7 already, I'll try to further narrow down the > > > interval. Ah, alsamixer doesn't work even when the device is OK in > > > pulseaudio... > > > > I was wrong, the audio part works even in 2.6.36-rc6 but _only_ when > > the webcam is plugged in from boot, could this have to do with the > > order gspca and snd-usb-audio are loaded? > > Hi Antonio, > > If you still have a kernel 2.6.33, may you try my test version (tarball > in my web page)? As it contain only the gspca stuff, this may tell if > the problem is in gspca or elsewhere in the kernel. > JF I suspect the device not showing up in pulseaudio has nothing to do with gspca at all. I can actually record audio using alsa even if pulseaudio does not see the device, so it must be a pulseaudio issue. Thanks, Antonio
On Wed, 6 Oct 2010 20:35:53 +0200 Jean-Francois Moine <moinejf@free.fr> wrote: > On Wed, 6 Oct 2010 16:04:41 +0200 > Antonio Ospite <ospite@studenti.unina.it> wrote: > > > Thanks, the following change fixes it, was this what you had in mind? > > > > diff --git a/drivers/media/video/gspca/gspca.c [...] > > Yes, but, after thought, as there is only one alternate setting, the > tests could be: > if (gspca_dev->audio && i < gspca_dev->nbalt - 1) > and > if (gspca_dev->audio && i > 0) > > This should work also for isochronous transfers. JF this change as is does not work for me, if I change the second check to if (gspca_dev->audio && i > 1) it does, but I don't know if this breaks anything else. In my case I have: get_ep: gspca_dev->cam.reverse_alts: 0 get_ep: gspca_dev->alt: 1 get_ep: gspca_dev->nbalt: 1 get_ep: gspca_dev->audio: 1 get_ep: gspca_dev->cam.bulk: 1 Thanks, Antonio
On Sun, 10 Oct 2010 12:02:50 +0200 Antonio Ospite <ospite@studenti.unina.it> wrote: > JF this change as is does not work for me, if I change the second > check to > if (gspca_dev->audio && i > 1) > > it does, but I don't know if this breaks anything else. Hi Antonio, You are right, this is the way the test must be. I'll try to have this in the kernel 2.6.36. Regards.
On Sun, 10 Oct 2010 12:21:29 +0200 Jean-Francois Moine <moinejf@free.fr> wrote: > On Sun, 10 Oct 2010 12:02:50 +0200 > Antonio Ospite <ospite@studenti.unina.it> wrote: > > > JF this change as is does not work for me, if I change the second > > check to > > if (gspca_dev->audio && i > 1) > > > > it does, but I don't know if this breaks anything else. > > Hi Antonio, > > You are right, this is the way the test must be. > > I'll try to have this in the kernel 2.6.36. > Thanks, feel free to add Reported-by: Antonio Ospite <ospite@studenti.unina.it> or Tested-by or whatever-by you consider appropriate. Regards, Antonio
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c index b984610..30e0b32 100644 --- a/drivers/media/video/gspca/gspca.c +++ b/drivers/media/video/gspca/gspca.c @@ -651,7 +651,7 @@ static struct usb_host_endpoint *get_ep(struct gspca_dev *gspca_dev) : USB_ENDPOINT_XFER_ISOC; i = gspca_dev->alt; /* previous alt setting */ if (gspca_dev->cam.reverse_alts) { - if (gspca_dev->audio) + if (gspca_dev->audio && !gspca_dev->cam.bulk) i++; while (++i < gspca_dev->nbalt) { ep = alt_xfer(&intf->altsetting[i], xfer); @@ -659,7 +659,7 @@ static struct usb_host_endpoint *get_ep(struct gspca_dev *gspca_dev) break; } } else { - if (gspca_dev->audio) + if (gspca_dev->audio && !gspca_dev->cam.bulk) i--; while (--i >= 0) { ep = alt_xfer(&intf->altsetting[i], xfer);