What I mean by better results is that as mentioned I observe PTS needing to
be resubmitted repeatedly.  When handling SOF and ATL interrupts, I've
observed 3 cases:

(1) PTDs are resubmitted multiple times but get handled eventually before
USB timeout mechanisms kick in (OK, I guess)
(2) PTDs are resubmitted multiple times but get handled eventually after USB
timeout mechanisms kick in (not good as OHCI then shuts down the offending
endpoint)
(3) PTDs never seem to get handled (I've added some support to detect this
case and pass the offending PTD back as device not responding to avoid
hanging driver, but this shouldn't happen in the first place)

When switching to SOF handling, I have not yet observed (2) or (3).  I
agree, it should not matter which way this is done.  In fact handling the
ATL interrupt when it happens should increase performance as you are reading
from the buffer while the device is idle anyway.  I have no good explanation
why this happens in the first place, as I can't determine if (a) the isp has
not processed the PTD or (b) the USB device has not ACK'ed the transaction.
All I know is that the isp would have had ample of time processing the PTD.

Note: This is a very easy 2 line change in Lothar's driver:

pretending we did not have this masked when reading the status:
        dev->int_mask = __isp1362_read_reg16(dev, HCuPINTENB) | 
HCuPINT_ISP116x_ATL
| HCuPINT_OPR;

writing the mask back in the ISR:
        __isp1362_write_reg16(dev, HCuPINTENB, dev->int_mask & 
~HCuPINT_ISP116x_ATL
& ~HCuPINT_OPR);



On a different note, I have observed an undocumented interrupt bit as shown
below in the InterruptStatus register (0x0080).  It is masked out, so I'm
not worried about it.  But it would be nice what it is.  OHCI considers this
bit reserved, and so does the isp1160 documentation.  Has anyone else seen
this?

bash-2.05# ./getispregs
0x0000: 0x00000010 HcRevision
0x0001: 0x00000080 HcControl
0x0002: 0x00000000 HcCommandStatus
0x0003: 0x00000080 HcInterruptStatus
0x0004: 0x8000001c HcInterruptEnable
0x0005: 0x8000001c HcInterruptDisable
0x000d: 0x27782edf HcFmInterval
0x000e: 0x00001f37 HcFmRemaining
0x000f: 0x0000d185 HcFmNumber
0x0011: 0x00000628 HcLSThreshold
0x0012: 0x00000202 HcRhDescriptorA
0x0013: 0x00000000 HcRhDescriptorB
0x0014: 0x00000000 HcRhStatus
0x0015: 0x00000103 HcRhPortStatus0
0x0016: 0x00000100 HcRhPortStatus1
0x0020: 0x00000009 HcHardwareConfiguration
0x0021: 0x00000000 HcDMAConfiguration
0x0022: 0x00000009 HcTransferCounter
0x0024: 0x00000014 HcmPInterrupt
0x0025: 0x00000021 HcmPInterruptEnable




-----Original Message-----
From: Olav Kongas [mailto:[EMAIL PROTECTED]
Sent: Wednesday, December 22, 2004 4:09 AM
To: Philipp Schmid
Cc: linux-usb-devel@lists.sourceforge.net
Subject: RE: [linux-usb-devel] ISP116x / 1362 driver progress


Hi Philipp,

Thank you for the comprehensive overview.

> A couple of observations:
>
> (a) I find many PTDS have to be resubmitted many times before they get
> handled by the device even if they are finished submitting early in the
> frame remaining cycle.

Transfers start after subsequent SOF after the submission is
finished. Therefore, it should make no difference whether
you finish submission early or late in the frame. I remember
that from my experiments with a logic analyzer on usb bus.

I have also seen that the ptd's for control transfers have
to be resubmitted repeatedly. Maybe this is normal.

> (b) I found better results by only using the SOF interrupt for timing
(still
> handle the other ints, but only on a SOF).

Could you please elaborate on what you mean by better
results here.

Olav




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to