Hi,

In Troy Kisky's driver there is a comment:

//this chip (isp116x) gives a pulse of 167ns on the interrupt, pxa250
requires 1000ns 
//so you must use level triggered for pxa250 or extra hardware to extend
the pulse

I am using an Advantech PCM-7210 which is based on the CerfBoard PXA
Reference Board and uses a Intel XScale-PXA250 rev 4. It appears to use
an edge triggered interrupt on irq 49 in the modified driver that comes
with its kernel package:

set_GPIO_IRQ_edge(27, GPIO_FALLING_EDGE);
irq = IRQ_GPIO(27);

Just modifying the driver to use level triggered operation (removing
InterruptPinTrigger) on irq 49 (irq=49) does not work. It can no longer
correctly assign addresses to newly connected devices.

Whilst using EDGE triggering (which is what I was using before), it
seems to be able to assign addresses to devices ok and find the rights
drivers for the device etc. But during ISOC operation "bulk_msg:timeout"
happens a lot and packets are lost. As seen in my previous 'vidcat'
problem.

-----Original Message-----
From: okazaki [mailto:[EMAIL PROTECTED] 
Sent: 04 September 2004 00:11
To: Dominic Evans
Subject: Re: isp1161 ISOC timeout problems

I meet same message as below today in my system.

Tango:/usr/local/bin# ./vidcat -b -s 320x240 -f ppm
ov511.c: Forcing packet size to 769
vid 1
vid 2
vid 3 get_image
get 1
get 3
bstat =a hp->itl0_len=780

bstat =a hp->itl0_len=780
bstat =8 hp->itl0_len=780

So Please change code in hc_isp116x.c shown as below & test.
//  if ((bstat & ITL1BufferFull) && (bstat & ITL1BufferDone)) {
  if (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);HERE
//printk("%x %d\n",bstat,hp->itl1_len);HERE printk("%x\n",bstat); HERE
    WRITE_REG16 (hci, hp->itl1_len, HcTransferCounter);
******
   hp->itl0_len = READ_REG16 (hci, HcReadBackITL0Length);
//printk("bstat =%x hp->itl0_len=%d\n",bstat,hp->itl0_len);HERE
//printk("%x %d\n",bstat,hp->itl0_len);HERE printk("%x \n",bstat); HERE

You will see these print on console.
11
a
11
a
11
a

Adsynori




-----Original Message-----
From: okazaki [mailto:[EMAIL PROTECTED] 
Sent: 04 September 2004 00:11
To: Dominic Evans
Subject: Re: isp1161 ISOC timeout problems

Hi Dominic Evans

It seems that same problem of
ov511.c: ERROR: urb->status=-75: Babble (bad cable?),

We wonder if lost interrupt.
I think EDGE interrupt or linux version cause this situaion.
But some member denied.
This problem is not resolved yet.

bstat =a hp->itl0_len=408
bstat =a hp->itl0_len=408
bstat =8 hp->itl0_len=408
bstat is shown sequence is not right.

You can find these sequence when capture image v(^o^) First
usb_submit_urb set Second usb_submit_urb set HC set ITL0Buffer as these
lines
 WRITE_REG16 (hci, hp->tlp, HcTransferCounter);
 WRITE_REGn16 (hci, HcITLBufferPort, hp->tlp, hp->tl);

*After 1frame(1ms)
isp1161 set ITL0BufferFull bit to 1
HC set ITL1Buffer

*After 1frame(1ms)
isp1161 set ITL0BufferDone bit to 1
isp1161 set ITL1BufferFull bit to 1
HC set ITL0Buffer

*After 1frame(1ms)
isp1161 set ITL1BufferDone bit to 1
isp1161 set ITL0BufferFull bit to 1
HC set ITL1Buffer




----- Original Message -----
From: "Dominic Evans" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, September 03, 2004 7:48 PM
Subject: isp1161 ISOC timeout problems


Hi,

I have heard you are good with isp1161 related linux usb issues and I
was recommended to e-mail you with my problems.

After just plugging in the webcam (Logitech QuickCam Pro 4000 - pwc
driver) and typing vidcat command I get this:

node7:~ # ./vidcat -p y -d /dev/v4l/video0
bstat =a hp->itl0_len=408
bstat =a hp->itl0_len=408
bstat =8 hp->itl0_len=408
VIDIOCMCAPTURE: Connection timed out
args: width=320 height=240 palette=15
Error: Can't get image

ISOC transfer seems to be working. /proc/interrupts increases in number
a lot.

Once I've tried this once. The next time I try I will only get:

node7:~ # ./vidcat -p y -d /dev/v4l/video0
usb_control/bulk_msg: timeout
pwc Failed to set video mode [EMAIL PROTECTED] fps; return code = -110 cam type =
740
usb_control/bulk_msg: timeout
pwc Failed to set video mode [EMAIL PROTECTED] fps; return code = -110 cam type =
740
usb_control/bulk_msg: timeout
pwc Failed to set video mode [EMAIL PROTECTED] fps; return code = -110 cam type =
740
usb_control/bulk_msg: timeout
pwc Failed to set video mode [EMAIL PROTECTED] fps; return code = -110 cam type =
740
usb_control/bulk_msg: timeout

Etc. until I rmmod/insmod again.

Board is an Advantech PCM-7210 Intel Xscale PXA250

ISP116x type is:
hc_isp116x.c: USB ISP116x at c6a51000/c6a51004,0 IRQ 49 Rev. 10 ChipID:
6122

hc_isp116x driver is 0.95 version with 'Tango' changes plus
modifications required for specific hardware. (AnalogOCEnable, IRQ=49
etc.)

Do you have any ideas?

Many thanks
Dominic Evans





-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idP47&alloc_id808&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to