Re: gspca, audio and ov534: regression.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 6 Oct 2010 13:48:55 +0200
Jean-Francois Moine <moinejf@xxxxxxx> wrote:

> On Wed, 6 Oct 2010 12:33:21 +0200
> Antonio Ospite <ospite@xxxxxxxxxxxxxxxxx> 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?

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);


> 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

-- 
Antonio Ospite
http://ao2.it

PGP public key ID: 0x4553B001

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?

Attachment: lsusb_pseye.log
Description: Binary data

Attachment: pgp0EA6xaTQ0l.pgp
Description: PGP signature


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux