strip the kernel version suffix from target directories, except for brcm-2.4 (the...
[openwrt/svn-archive/archive.git] / target / linux / pxa / patches / 002-usb_gadget.patch
1 diff -NurbwB linux-2.6.17/drivers/usb/gadget/pxa2xx_udc.c linux-2.6.17-patched/drivers/usb/gadget/pxa2xx_udc.c
2 --- linux-2.6.17/drivers/usb/gadget/pxa2xx_udc.c 2006-06-17 18:49:35.000000000 -0700
3 +++ linux-2.6.17-patched/drivers/usb/gadget/pxa2xx_udc.c 2006-09-11 13:02:39.000000000 -0700
4 @@ -87,8 +87,8 @@
5 static const char ep0name [] = "ep0";
6
7
8 -// #define USE_DMA
9 -// #define USE_OUT_DMA
10 +#define USE_DMA
11 +#define USE_OUT_DMA
12 // #define DISABLE_TEST_MODE
13
14 #ifdef CONFIG_ARCH_IXP4XX
15 @@ -1513,7 +1513,7 @@
16 #endif
17
18 /* try to clear these bits before we enable the udc */
19 - udc_ack_int_UDCCR(UDCCR_SUSIR|/*UDCCR_RSTIR|*/UDCCR_RESIR);
20 + udc_ack_int_UDCCR(UDCCR_SUSIR|UDCCR_RSTIR|UDCCR_RESIR);
21
22 ep0_idle(dev);
23 dev->gadget.speed = USB_SPEED_UNKNOWN;
24 @@ -2043,6 +2043,9 @@
25 struct pxa2xx_udc *dev = _dev;
26 int handled;
27
28 +
29 + udc_set_mask_UDCCR( UDCCR_REM | UDCCR_SRM);
30 +
31 dev->stats.irqs++;
32 HEX_DISPLAY(dev->stats.irqs);
33 do {
34 @@ -2137,6 +2139,8 @@
35 /* we could also ask for 1 msec SOF (SIR) interrupts */
36
37 } while (handled);
38 +
39 + udc_clear_mask_UDCCR( UDCCR_SRM | UDCCR_REM);
40 return IRQ_HANDLED;
41 }
42
43 @@ -2437,6 +2441,7 @@
44 int retval, out_dma = 1;
45 u32 chiprev;
46
47 + local_irq_disable();
48 /* insist on Intel/ARM/XScale */
49 asm("mrc%? p15, 0, %0, c0, c0" : "=r" (chiprev));
50 if ((chiprev & CP15R0_VENDOR_MASK) != CP15R0_XSCALE_VALUE) {
51 @@ -2553,6 +2558,7 @@
52 #endif
53 }
54 #endif
55 + local_irq_enable();
56 create_proc_files();
57
58 return 0;