It's not pretty... but here it is anyway... :-)
Index: drivers/usb/host/Kconfig
===================================================================
RCS file: /home/cvs/linux/drivers/usb/host/Kconfig,v
retrieving revision 1.8
diff -u -u -r1.8 Kconfig
--- drivers/usb/host/Kconfig 15 Nov 2004 11:49:33 -0000 1.8
+++ drivers/usb/host/Kconfig 22 Nov 2004 20:49:20 -0000
@@ -16,6 +16,10 @@
default y if PXA27x
default PCI
+config USB_OHCI_BIG_ENDIAN
+ boolean
+ default y if SOC_AU1X00 && !CPU_LITTLE_ENDIAN
+
#
# USB Host Controller Drivers
#
Index: drivers/usb/host/ohci-hcd.c
===================================================================
RCS file: /home/cvs/linux/drivers/usb/host/ohci-hcd.c,v
retrieving revision 1.40
diff -u -u -r1.40 ohci-hcd.c
--- drivers/usb/host/ohci-hcd.c 15 Nov 2004 11:49:33 -0000 1.40
+++ drivers/usb/host/ohci-hcd.c 22 Nov 2004 20:49:21 -0000
@@ -881,7 +881,7 @@
MODULE_LICENSE ("GPL");
#ifdef CONFIG_PCI
-#include "ohci-pci.c"
+//#include "ohci-pci.c"
#endif
#ifdef CONFIG_SA1111
Index: drivers/usb/host/ohci.h
===================================================================
RCS file: /home/cvs/linux/drivers/usb/host/ohci.h,v
retrieving revision 1.21
diff -u -u -r1.21 ohci.h
--- drivers/usb/host/ohci.h 15 Nov 2004 11:49:33 -0000 1.21
+++ drivers/usb/host/ohci.h 22 Nov 2004 20:49:21 -0000
@@ -458,6 +458,11 @@
#define writel_be(val, addr) out_be32((__force unsigned *)addr, val)
#endif
+#if defined(CONFIG_SOC_AU1X00)
+#define readl_be(addr) __raw_readl((__force u32 *)(addr))
+#define writel_be(val, addr) __raw_writel(val, (__force u32 *)(addr))
+#endif
+
static inline unsigned int ohci_readl (const struct ohci_hcd *ohci,
__hc32 __iomem * regs)
{
@@ -467,8 +472,11 @@
static inline void ohci_writel (const struct ohci_hcd *ohci,
const unsigned int val, __hc32 __iomem *regs)
{
- big_endian(ohci) ? writel_be (val, regs) :
- writel (val, (__force u32 *)regs);
+ if (big_endian(ohci)) {
+ writel_be (val, regs);
+ } else {
+ writel (val, (__force u32 *)regs);
+ }
}
#else /* !CONFIG_USB_OHCI_BIG_ENDIAN */
--
Herbert Valerio Riedel <hvr@inso.tuwien.ac.at>
Research Group for Industrial Software @ Vienna University of Technology
|