Hi, does the Au1000 OHCI controller work for anybody with the current 2.6 cvs tree in big endian mode? When I try to insmod ohci-hcd, the machine just hangs. Also, I used the attached patch to be able to select usb ohci even without PCI. Furthermore, is there any news about the porting of the usb device driver to the usb gadget stack? Tom --- drivers/usb/host/Kconfig.jnx 2005-01-19 22:48:43.049114480 +0100 +++ drivers/usb/host/Kconfig 2005-01-19 22:49:08.777555520 +0100 @@ -14,6 +14,7 @@ default y if ARCH_OMAP default y if ARCH_LH7A404 default y if PXA27x + default y if SOC_AU1X00 default PCI # --- arch/mips/Kconfig.jnx 2005-01-19 23:05:07.801263123 +0100 +++ arch/mips/Kconfig 2005-01-19 23:11:31.977151245 +0100 @@ -1055,9 +1055,12 @@ bool config AU1X00_USB_DEVICE - bool + bool "Au1X00 USB Device Driver" depends on MIPS_PB1500 || MIPS_PB1100 || MIPS_PB1000 default n + help + Say Y here if you want to use the USB device connector on your + AU1X00 Board config MIPS_GT96100 bool --- arch/mips/au1000/common/usbdev.c.jnx 2005-01-19 23:16:40.028506546 +0100 +++ arch/mips/au1000/common/usbdev.c 2005-01-19 23:24:53.161629362 +0100 @@ -46,9 +46,9 @@ #include <asm/uaccess.h> #include <asm/irq.h> #include <asm/mipsregs.h> -#include <asm/au1000.h> -#include <asm/au1000_dma.h> -#include <asm/au1000_usbdev.h> +#include <asm/mach-au1x00/au1000.h> +#include <asm/mach-au1x00/au1000_dma.h> +#include <asm/mach-au1x00/au1000_usbdev.h> #ifdef DEBUG #undef VDEBUG @@ -348,7 +348,7 @@ { u32 cs; - warn(__FUNCTION__); + warn("endpoint_stall"); cs = au_readl(ep->reg->ctrl_stat) | USBDEV_CS_STALL; au_writel(cs, ep->reg->ctrl_stat); @@ -360,7 +360,7 @@ { u32 cs; - warn(__FUNCTION__); + warn("endpoint_unstall"); cs = au_readl(ep->reg->ctrl_stat) & ~USBDEV_CS_STALL; au_writel(cs, ep->reg->ctrl_stat); @@ -1031,7 +1031,7 @@ /* This ISR handles the receive complete and suspend events */ -static void +static irqreturn_t req_sus_intr (int irq, void *dev_id, struct pt_regs *regs) { struct usb_dev *dev = (struct usb_dev *) dev_id; @@ -1046,11 +1046,12 @@ process_ep_receive(dev, &dev->ep[4]); if (status & (1<<5)) process_ep_receive(dev, &dev->ep[5]); + return (status & ((1<<0) | (1<<4) | (1<<5))) ? IRQ_HANDLED : IRQ_NONE; } /* This ISR handles the DMA done events on EP0 */ -static void +static irqreturn_t dma_done_ep0_intr(int irq, void *dev_id, struct pt_regs *regs) { struct usb_dev *dev = (struct usb_dev *) dev_id; @@ -1092,10 +1093,11 @@ } spin_unlock(&ep0->lock); + return IRQ_HANDLED; } /* This ISR handles the DMA done events on endpoints 2,3,4,5 */ -static void +static irqreturn_t dma_done_ep_intr(int irq, void *dev_id, struct pt_regs *regs) { struct usb_dev *dev = (struct usb_dev *) dev_id; @@ -1149,6 +1151,7 @@ spin_unlock(&ep->lock); } + return IRQ_HANDLED; } --- drivers/char/Kconfig.jnx 2005-01-20 01:50:45.401014480 +0100 +++ drivers/char/Kconfig 2005-01-20 01:51:19.595499298 +0100 @@ -358,11 +358,11 @@ config AU1X00_USB_TTY tristate "Au1000 USB TTY Device support" - depends on MIPS && MIPS_AU1000 && AU1000_USB_DEVICE=y && AU1000_USB_DEVICE + depends on MIPS && AU1X00_USB_DEVICE=y && AU1X00_USB_DEVICE config AU1X00_USB_RAW tristate "Au1000 USB Raw Device support" - depends on MIPS && MIPS_AU1000 && AU1000_USB_DEVICE=y && AU1000_USB_TTY!=y && AU1X00_USB_DEVICE + depends on MIPS && AU1X00_USB_DEVICE=y && AU1X00_USB_TTY!=y && AU1X00_USB_DEVICE config SERIAL_TX3912 bool "TX3912/PR31700 serial port support"