Hi Rudolf,

thanx for this hint. I found this article to it
http://www.mail-archive.com/[EMAIL PROTECTED]/msg19522.h
tml. So i included in pwc-if.c in pwc_isoc_handler of the PWC driver for my
linux webcam the following lines:

handler_end:
        if (awake)
                wake_up_interruptible(&pdev->frameq);
        /* No URB resubmitting in this kernel */
        urb->dev = pdev->udev;
//      i = usb_submit_urb(urb, GFP_ATOMIC);   //from pwc driver kernel 2.6
        i = usb_submit_urb(urb);
        //printk("resubmit urb\n"); //for test
        if (i != 0)
        {
                Err("Error (%d) re-submitting urb in pwc_isoc_handler.\n", i);
        }
}

After compiling i get some iso transfers from the ISP1161 driver and 2
resubmits from PWC, but then again a kernel panic with the message "bad
frame format" and "In idle task - not syncing". So which version from Roman
did you use and have you changed anything else to get it function? Also it
is mentioned in the PWC that resubmit urbs are not supported by the kernel
2.4.x. So have i to change something else to get it functioning? May it be
possible that you or someone else can give me a short summary what to change
at all?! It could be possible that i had miss to change something to get
webcam (iso) support with isp1161, kernel2.4.22 and pwc webcam driver.

Thx...

David

-----Ursprüngliche Nachricht-----
Von: Rudolf Ladyzhenskii [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 2. August 2004 00:29
An: David Grab; [EMAIL PROTECTED]
Betreff: RE: [linux-usb-devel] ISP1161 ISO Support


Hi,

I was using version of the ISP116x driver for XScale processors, but it was
based on Roman's driver.
The problem I had was the way driver services ISO transfers. Drivesr used
2.6 kernel way that does not automatically re-submit ISO URBs, so you have
to do it yourself in your webcam Rx interrupt routine.

Rudolf

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of David
Grab
Sent: Saturday, July 31, 2004 12:22 AM
To: [EMAIL PROTECTED]
Subject: [linux-usb-devel] ISP1161 ISO Support


Hello all,

i´m trying to get my Philips PCVC 690K webcam to functioning with ISP 1161A
on a MCF 5272 Coldfire uClinux 2.4.22-uc0 system. First of all USB keyboard
an mouse is functioning. If i´m right, then the ISP 1161 driver needs ISO
support for the webcam. I read some threads here in the list about this and
tried first Roman´s 0.95 driver. The camera get´s detected but with cat
/dev/video0 nothing happens. The communication theems not working. So i
changed following lines like in the Tango version:

in the hc_interrupt routine:

#ifdef HC_ENABLE_ISOC
        /* read itl1 first. if there is an buffer overflow HC will stop at itl1
           There will be a quirks in sh_done_list if this happens !!!!! */
                if (bstat & ITL1BufferDone) {
//if ((bstat & ITL1BufferFull) && (bstat & ITL1BufferDone)) {
                        hp->itl1_len = READ_REG16 (hci, HcReadBackITL1Length);
                        if (hp->itl1_len > 0) {
printk("bstat =%x hp->itl1_len=%d\n",bstat,hp->itl1_len);
                                WRITE_REG16 (hci, hp->itl1_len, HcTransferCounter);
                                READ_REGn16 (hci, HcITLBufferPort, hp->itl1_len, 
hp->tl);
                                hp->tlp = 0;
                                hci->td_array = &hci->i_td_array [1];
                                sh_done_list (hci);
                        }
                        iso_buffer_index = 1;
                }
                if (bstat & ITL0BufferDone) {
//if ((bstat & ITL0BufferFull) && (bstat & ITL0BufferDone)) {
                        hp->itl0_len = READ_REG16 (hci, HcReadBackITL0Length);
                        if (hp->itl0_len > 0) {
printk("bstat =%x hp->itl0_len=%d\n",bstat,hp->itl0_len);
                                WRITE_REG16 (hci, hp->itl0_len, HcTransferCounter);
                                READ_REGn16 (hci, HcITLBufferPort, hp->itl0_len, 
hp->tl);
                                hp->tlp = 0;
                                hci->td_array = &hci->i_td_array [0];
                                sh_done_list (hci);
                        }
                        iso_buffer_index = 0;
                }
                hp->tlp = 0;
                hci->td_array = &hci->i_td_array [iso_buffer_index];
                sh_scan_iso_urb_list (hci, &hci->iso_list, hci->frame_number + 1);
                if (hp->tlp >0) {
                        WRITE_REG16 (hci, hp->tlp, HcTransferCounter);
                        WRITE_REGn16 (hci, HcITLBufferPort, hp->tlp, hp->tl);
                }
#endif

With these lines i get some output like:
...
bstat = c hp->itl0_len=1480
bstat = c hp->itl0_len=1480
bstat = c hp->itl0_len=1480
bstat = c hp->itl0_len=1480
bstat = e hp->itl0_len=1480
bstat = c hp->itl0_len=1480
bstat = e hp->itl0_len=1480
bstat = c hp->itl0_len=1480
...

Without the printk´s i get with cat /dev/video0 after a short time a kernel
panig with following failure message:
In idle task - not syncing
<7> pwc_isoc_handler() called with status -75 [Babble (bad cable?)].

I think this is because of the iso transfer, right?

I tried also the tango and some other drivers, but there i´m getting also
trouble.

Is there anywhere a functioning implementation with ISO Transfer? Are there
other things that i´ve to look after?

Thx for any help,

David




-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel




-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to