Skip to contentSkip to conversation

gspca_pac7302: sporatdic problem when plugging the device

DISCUSSION Németh Márton 2 participants 6 messages Jan 10, 2010 – Jan 11, 2010 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

Hi,

I have sporadic problem with Labtec Webcam 2200 (0x093a:0x2626). I'm using gspca_pac7302 driver from http://linuxtv.org/hg/~jfrancois/gspca/
rev 13915 on top of Linux kernel 2.6.32.

I executed the following command in an xterm window:

$ while true; do ./svv; done

Then I plugged and unplugged the device 16 times. When I last plugged the device I get the following error in the dmesg:

[32393.421313] gspca: probing 093a:2626
[32393.426193] gspca: video0 created
[32393.426958] gspca: probing 093a:2626
[32393.426968] gspca: Interface class 1 not handled here
[32394.005917] pac7302: reg_w_page(): Failed to write register to index 0x49, value 0x0, error -71
[32394.067799] gspca: set alt 8 err -71
[32394.090792] gspca: set alt 8 err -71
[32394.118159] gspca: set alt 8 err -71

The 17th plug was working correctly again. I executed this test on an EeePC 901.

This driver version contains the msleep(4) in the reg_w_buf(). However, here the reg_w_page() fails, which does not have msleep() inside. I don't know what is the real problem, but I am afraid that slowing down reg_w_page() would make the time longer when the device can be used starting from the event when it is plugged.

Regards,

Márton Németh

#1 lore raw
Quoted 13 lines · On Sun, 10 Jan 2010 17:58:58 +0100 Németh Márton <[email protected]> wrote:

Then I plugged and unplugged the device 16 times. When I last plugged the device I get the following error in the dmesg:

[32393.421313] gspca: probing 093a:2626
[32393.426193] gspca: video0 created
[32393.426958] gspca: probing 093a:2626
[32393.426968] gspca: Interface class 1 not handled here
[32394.005917] pac7302: reg_w_page(): Failed to write register to
index 0x49, value 0x0, error -71
[32394.067799] gspca: set alt 8 err -71
[32394.090792] gspca: set alt 8 err -71
[32394.118159] gspca: set alt 8 err -71
Quoted 8 lines

The 17th plug was working correctly again. I executed this test on an EeePC 901.

This driver version contains the msleep(4) in the reg_w_buf(). However, here the reg_w_page() fails, which does not have msleep() inside. I don't know what is the real problem, but I am afraid that slowing down reg_w_page() would make the time longer when the device can be used starting from the event when it is plugged.

Hi again,

I don't understand what you mean by:

Quoted 3 lines

This driver version contains the msleep(4) in the reg_w_buf(). However, here the reg_w_page() fails, which does not have msleep() inside.

Indeed the delay will slow down the webcam start (256 * 4 ms = 1s).

If having a delay fixes the problem, then, as the error always occurs at the same index 0x49 (3 reports), a single delay could be set before writing to this index. Do you want I code this for test?

Regards.

Signature · 2 lines
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
#2 lore raw
Quoted 25 lines · Jean-Francois Moine
Quoted 13 lines · On Sun, 10 Jan 2010 17:58:58 +0100 Németh Márton <[email protected]> wrote:

Then I plugged and unplugged the device 16 times. When I last plugged the device I get the following error in the dmesg:

[32393.421313] gspca: probing 093a:2626
[32393.426193] gspca: video0 created
[32393.426958] gspca: probing 093a:2626
[32393.426968] gspca: Interface class 1 not handled here
[32394.005917] pac7302: reg_w_page(): Failed to write register to
index 0x49, value 0x0, error -71
[32394.067799] gspca: set alt 8 err -71
[32394.090792] gspca: set alt 8 err -71
[32394.118159] gspca: set alt 8 err -71
Quoted 8 lines

The 17th plug was working correctly again. I executed this test on an EeePC 901.

This driver version contains the msleep(4) in the reg_w_buf(). However, here the reg_w_page() fails, which does not have msleep() inside. I don't know what is the real problem, but I am afraid that slowing down reg_w_page() would make the time longer when the device can be used starting from the event when it is plugged.

Quoted 6 lines

Hi again,

I don't understand what you mean by:

Quoted 3 lines

This driver version contains the msleep(4) in the reg_w_buf(). However, here the reg_w_page() fails, which does not have msleep() inside.

I tought that the msleep(4) call introduced recently fixed the plug-in problem. It seems I misunderstood something.

Quoted 5 lines

Indeed the delay will slow down the webcam start (256 * 4 ms = 1s).

If having a delay fixes the problem, then, as the error always occurs at the same index 0x49 (3 reports), a single delay could be set before writing to this index. Do you want I code this for test?

I tested the behaviour a little bit more. Out of 100 plug-ins:

OK: 81 times
"pac7302: reg_w_page(): Failed to write register to index 0x49, value 0x0, error -71": 19 times

Other error message I haven't got, so 19% of the time writing to register index 0x49 fails in reg_w_page(). So let's try doing fixing the way you described. If you send me a patch I can test it.

Regards,

Márton Németh

#3 lore raw
Quoted 9 lines · On Sun, 10 Jan 2010 21:28:29 +0100 Németh Márton <[email protected]> wrote:

I tested the behaviour a little bit more. Out of 100 plug-ins:

OK: 81 times
"pac7302: reg_w_page(): Failed to write register to index 0x49, value 0x0, error -71": 19 times

Other error message I haven't got, so 19% of the time writing to register index 0x49 fails in reg_w_page(). So let's try doing fixing the way you described. If you send me a patch I can test it.

In some usbsnoop files I have, the index 0x48 is not loaded. May you try the attached patch (skip the index 0x48 and remove the delay).

(Stéphane, est-ce que tu peux voir aussi ce que ça donne chez toi?)

Regards.

Signature · 2 lines
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
#4 lore raw
In reply to Németh Márton

Sorry, I forgot to attach the patch.

Quoted 4 lines

In some usbsnoop files I have, the index 0x48 is not loaded. May you try the attached patch (skip the index 0x48 and remove the delay).

(Stéphane, est-ce que tu peux voir aussi ce que ça donne chez toi?)

Regards.

Signature · 2 lines
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
author Tested-by
#5 lore raw

Jean-Francois Moine írta:

Quoted 4 lines

Sorry, I forgot to attach the patch.

Quoted 2 lines

In some usbsnoop files I have, the index 0x48 is not loaded. May you try the attached patch (skip the index 0x48 and remove the delay).

100 plug-ins out of 100 OK, no errors: I say go for this patch.

I applied the patch on top of rev 14000:bc5737e0e757 from
http://linuxtv.org/hg/~jfrancois/gspca/ . I tested the driver on top of 2.6.32 with Labtec Webcam 2200 (0x093a:0x2626).

Thanks for the fix.

Regards,

Márton Németh