Hi All,

I  am working on embedded OHCI USB host controller on which i am using
  linux-2.6.14.

With Isochronous transfers after some time my board is getting hanged.
I observed that the TD Hash table is getting corrupted.

According to the OHCI Specification there is chance for 8 PSWs but in
the driver we are using only 2 PSW.but my hardware is always doing
8PSW DMA Transfer there by hardware is overwriting the Software fields
sitting immediately after the PSW.
struct td
{
        /* first fields are hardware-specified */
        __hc32          hwINFO;         /* transfer info bitmask */
        __hc32          hwCBP;          /* Current Buffer Pointer (or 0) */
        __hc32          hwNextTD;       /* Next TD Pointer */
        __hc32          hwBE;           /* Memory Buffer End Pointer */
        /* PSW is only for ISO.  Only 1 PSW entry is used, but on
         * big-endian PPC hardware that's the second entry.
         */
#define MAXPSW  2
        __hc16          hwPSW [MAXPSW];
        /* rest are purely for the driver's use */
        __u8            index;
        struct ed       *ed;
        struct td       *td_hash;       /* dma-->td hashtable */
        struct td       *next_dl_td;
        struct urb      *urb;
}

What is reason for giving only 2 PSW can we give extra 6 PSW to
overcome this issue.
Is it a hardware issue.

Regards
Kumar

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to