mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 18:47:06 +00:00
59 lines
1.4 KiB
Diff
59 lines
1.4 KiB
Diff
|
diff -NurbwB linux-2.6.17/drivers/usb/gadget/pxa2xx_udc.c linux-2.6.17-patched/drivers/usb/gadget/pxa2xx_udc.c
|
||
|
--- linux-2.6.17/drivers/usb/gadget/pxa2xx_udc.c 2006-06-17 18:49:35.000000000 -0700
|
||
|
+++ linux-2.6.17-patched/drivers/usb/gadget/pxa2xx_udc.c 2006-09-11 13:02:39.000000000 -0700
|
||
|
@@ -87,8 +87,8 @@
|
||
|
static const char ep0name [] = "ep0";
|
||
|
|
||
|
|
||
|
-// #define USE_DMA
|
||
|
-// #define USE_OUT_DMA
|
||
|
+#define USE_DMA
|
||
|
+#define USE_OUT_DMA
|
||
|
// #define DISABLE_TEST_MODE
|
||
|
|
||
|
#ifdef CONFIG_ARCH_IXP4XX
|
||
|
@@ -1513,7 +1513,7 @@
|
||
|
#endif
|
||
|
|
||
|
/* try to clear these bits before we enable the udc */
|
||
|
- udc_ack_int_UDCCR(UDCCR_SUSIR|/*UDCCR_RSTIR|*/UDCCR_RESIR);
|
||
|
+ udc_ack_int_UDCCR(UDCCR_SUSIR|UDCCR_RSTIR|UDCCR_RESIR);
|
||
|
|
||
|
ep0_idle(dev);
|
||
|
dev->gadget.speed = USB_SPEED_UNKNOWN;
|
||
|
@@ -2043,6 +2043,9 @@
|
||
|
struct pxa2xx_udc *dev = _dev;
|
||
|
int handled;
|
||
|
|
||
|
+
|
||
|
+ udc_set_mask_UDCCR( UDCCR_REM | UDCCR_SRM);
|
||
|
+
|
||
|
dev->stats.irqs++;
|
||
|
HEX_DISPLAY(dev->stats.irqs);
|
||
|
do {
|
||
|
@@ -2137,6 +2139,8 @@
|
||
|
/* we could also ask for 1 msec SOF (SIR) interrupts */
|
||
|
|
||
|
} while (handled);
|
||
|
+
|
||
|
+ udc_clear_mask_UDCCR( UDCCR_SRM | UDCCR_REM);
|
||
|
return IRQ_HANDLED;
|
||
|
}
|
||
|
|
||
|
@@ -2437,6 +2441,7 @@
|
||
|
int retval, out_dma = 1;
|
||
|
u32 chiprev;
|
||
|
|
||
|
+ local_irq_disable();
|
||
|
/* insist on Intel/ARM/XScale */
|
||
|
asm("mrc%? p15, 0, %0, c0, c0" : "=r" (chiprev));
|
||
|
if ((chiprev & CP15R0_VENDOR_MASK) != CP15R0_XSCALE_VALUE) {
|
||
|
@@ -2553,6 +2558,7 @@
|
||
|
#endif
|
||
|
}
|
||
|
#endif
|
||
|
+ local_irq_enable();
|
||
|
create_proc_files();
|
||
|
|
||
|
return 0;
|