On Wednesday 23 May 2007 04:12, you wrote:
> This patch is really mangled, can you try fixing your email client and
> try again?

Sure.
The second try after changing encoding to "us-ascii"

Vladimir

=============   CUT HERE
This patch fixes the endianness select for transfer buffers in EHCI controllers 
that have Transaction Translator built in the hub.
Also I cleaned it up to make rid of magic numbers.

Signed-off-by: Vladimir Barinov <[EMAIL PROTECTED]>

------

--- usb-2.6.orig/drivers/usb/host/ehci.h        2007-05-02 17:31:10.000000000 
+0400
+++ usb-2.6.new/drivers/usb/host/ehci.h 2007-05-02 18:15:11.000000000 +0400
@@ -299,6 +299,12 @@ struct ehci_regs {
 #define PORT_RWC_BITS   (PORT_CSC | PORT_PEC | PORT_OCC)
 } __attribute__ ((packed));
 
+#define USBMODE                0x68            /* USB Device mode */
+#define USBMODE_SDIS   (1<<3)          /* Stream disable */
+#define USBMODE_BE     (1<<2)          /* BE/LE endianness select */
+#define USBMODE_CM_HC  (3<<0)          /* host controller mode */
+#define USBMODE_CM_IDLE        (0<<0)          /* idle state */
+
 /* Appendix C, Debug port ... intended for use with special "debug devices"
  * that can help if there's no serial console.  (nonstandard enumeration.)
  */
diff -pruN usb-2.6.orig/drivers/usb/host/ehci-hcd.c 
usb-2.6.new/drivers/usb/host/ehci-hcd.c
--- usb-2.6.orig/drivers/usb/host/ehci-hcd.c    2007-05-02 17:31:18.000000000 
+0400
+++ usb-2.6.new/drivers/usb/host/ehci-hcd.c     2007-05-02 18:14:49.000000000 
+0400
@@ -202,9 +202,15 @@ static void tdi_reset (struct ehci_hcd *
        u32 __iomem     *reg_ptr;
        u32             tmp;
 
-       reg_ptr = (u32 __iomem *)(((u8 __iomem *)ehci->regs) + 0x68);
+       reg_ptr = (u32 __iomem *)(((u8 __iomem *)ehci->regs) + USBMODE);
        tmp = ehci_readl(ehci, reg_ptr);
-       tmp |= 0x3;
+       tmp |= USBMODE_CM_HC;
+       /* The default byte access to MMR space is LE after
+        * controller reset. Set the required endian mode
+        * for transfer buffers to match the host microprocessor
+        */
+       if (ehci_big_endian_mmio(ehci))
+               tmp |= USBMODE_BE;
        ehci_writel(ehci, tmp, reg_ptr);
 }
 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
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