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

Bug#677533: video: USB webcam fails since kernel 3.2



Hi,

On 07/09/2012 01:33 PM, Martin-Éric Racine wrote:

<snip>

Hmm, this is then likely caused by the new isoc bandwidth negotiation code
in 3.2, unfortunately the vc032x driver is one of the few gspca drivers
for which I don't have a cam to test with. Can you try to build your own
kernel from source?

Boot into your own kernel, and verify the regression is still there,
then edit drivers/media/video/gspca/gspca.c and go to the which_bandwidth
function, and at the beginning of this function add the following line:

return 2000 * 2000 * 120;

Then rebuild and re-install the kernel and try again.

If that helps, remove the added
return 2000 * 2000 * 120;
line, and also remove the following lines from which_bandwidth:

         /* if the image is compressed, estimate its mean size */
         if (!gspca_dev->cam.needs_full_bandwidth &&
             bandwidth < gspca_dev->cam.cam_mode[i].width *
                                 gspca_dev->cam.cam_mode[i].height)
                 bandwidth = bandwidth * 3 / 8;  /* 0.375 */

And try again if things still work this way.

Once you've tested this I can try to write a fix for this.

Hans,

Thank you for your reply.

Just to eliminate the possibility of mistakes on my part while trying
to perform the above changes, could you send me a patch against Linux
3.2.21 that I could apply as-is, before building myself a test kernel
package?

Erm, that is quite a bit of work from my side for something which you
can easily do yourself, edit gspca.c, search for which_bandwidth
and then under the following lines:
        u32 bandwidth;
        int i;

Add a line like this:
	return 2000 * 2000 * 120;

Regards,

Hans



Reply to: