linux-mips
[Top] [All Lists]

Au1000 Big Endian USB OHCI

To: linux-mips@linux-mips.org
Subject: Au1000 Big Endian USB OHCI
From: Thomas Sailer <sailer@scs.ch>
Date: Thu, 20 Jan 2005 17:29:35 +0100
Organization: SCS
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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"






<Prev in Thread] Current Thread [Next in Thread>