Hello,

I work with a logitech 4000 pro WebCam with the pwc driver;
I run it on RH9 linux with 2.4.20-8 kernel.

The driver is part of the linux kernel 2.4.20-8. (and also above , of course).

Now , in  pwc_isoc_init() method  (in pwc-if.c)
there is the following call:
ret = usb_set_interface(pdev->udev, 0, pdev->valternate);

By debugging I saw that it uses alternate setting 2 (pdev->valternate=2).

Now , according to the next Linux Device Driver website , this is the
descriptor for that webcam: (and I verified it by cat /proc/bus/usb/devices)

http://www.qbik.ch/usb/devices/showdescr.php?id=2515

Now , I had tried to use a different alternate setting,1, for which
the Maximum Packet Size (MxPS) is 196.

So I set pdev->valternate to 1 in the beginning of the pwc_isoc_init().

the return value form usb_set_interface() is 0 ; this means success.

I also saw the the return value from usb_maxpacket is 196, which is indeed the
max packet size of alternate setting 1.



However, when I try to use a utility like ffmpeg to grab a video sequence it fails immeditately in the beginning : it simply hangs in the pwc_video_ioctl() method. (in the case VIDIOCSYNC: )

I don't understand why; though I added printk() calls almost
everywhere in that case sentence of this pwc_video_ioctl()
it does not reach them ; it simply hangs.

My question is :
Given that descriptor - is it possible and correct to change alternate setting like I do ?
Or should I do something else?


Is it OK that the number of endpoint remains 5 in both cases
(when using altenate setting 2,which is the default,and when using
alternate setting 1 ?)

Any help will be appreciated.

The kernel log I got when running the ffmpeg util is below:
(I added some printing info where I thought it can give some hint):

[pwc-if.c] in pwc_isoc_init
[pwc-if.c] in pdev->vendpoint = 5
[pwc-if.c] setting pdev->vmax_packet_size to  196
[pwc-if.c] usb_set_interface ret= 0
[pwc-if.c] pipe size is 164736
[pwc-if.c] epmaxpacketout= 0
epmaxpacketin 196
usb_pipeendpoint 5
[pwc-if.c] pipeout 0
[pwc-if.c] usb_maxpacket returns  196
[pwc-if.c] pipe size is 164736
[pwc-if.c] epmaxpacketout= 0
[pwc-if.c] epmaxpacketin 196
[pwc-if.c] usb_pipeendpoint 5
[pwc-if.c] pipeout 0
[pwc-if.c] usb_maxpacket returns  196
[pwc-if.c]  finished pwc_isoc_init()
[pwc-if.c] finished pwc_video_open
[pwc-if.c] pwc_video_ioctl

[pwc-if.c] case VIDIOCMCAPTURE:
VIDIOCMCAPTURE: 352x288, frame 0, format 15
[pwc-if.c] before pwc_try_video_mode :
pwc Video mode [EMAIL PROTECTED] fps is only supported with the decompressor module (pwcx).
in pwc_isoc_init
in pdev->vendpoint = 5
[pwc-if.c] setting pdev->vmax_packet_size to 196
[pwc-if.c] usb_set_interface ret= 0
[pwc-if.c] pipe size is 164736
[pwc-if.c] epmaxpacketout= 0
[pwc-if.c] epmaxpacketin 196
[pwc-if.c] usb_pipeendpoint 5
[pwc-if.c] pipeout 0
[pwc-if.c] usb_maxpacket returns 196
[pwc-if.c] pipe size is 164736
[pwc-if.c] epmaxpacketout= 0
[pwc-if.c] epmaxpacketin 196
[pwc-if.c] usb_pipeendpoint 5
[pwc-if.c] pipeout 0
[pwc-if.c] usb_maxpacket returns 196
[pwc-if.c] finished pwc_isoc_init()
[pwc-if.c] after pwc_try_video_mode :
[pwc-if.c] VIDIOCMCAPTURE done :
[pwc-if.c] pwc_video_ioctl
[pwc-if.c] case VIDIOCMCAPTURE:
VIDIOCMCAPTURE: 352x288, frame 1, format 15
[pwc-if.c] VIDIOCMCAPTURE done :
[pwc-if.c] pwc_video_ioctl
[pwc-if.c] case VIDIOCSYNC:


regards,
John

_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail




-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to