Au1000 Big Endian USB OHCI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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"







[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux