02d644c19554cdc6ba34538b4fae709fc887d4be
[kernel-bfs] / kernel-bfs-2.6.28 / debian / patches / usbhost4.diff
1 --- kernel-power-2.6.28.orig/drivers/usb/musb/musb_procfs.c
2 +++ kernel-power-2.6.28/drivers/usb/musb/musb_procfs.c
3 @@ -656,15 +656,50 @@
4         case 'H':
5                 if (mbase) {
6                         reg = musb_readb(mbase, MUSB_DEVCTL);
7 +                        printk(KERN_WARNING "usb devctl before=0x%0x\n",reg);
8                         reg |= MUSB_DEVCTL_HR;
9                         musb_writeb(mbase, MUSB_DEVCTL, reg);
10 -                       /* MUSB_HST_MODE( ((struct musb*)data) ); */
11 -                       /* WARNING("Host Mode\n"); */
12 +                       MUSB_HST_MODE( ((struct musb*)data) );
13 +                       WARNING("Host Mode\n");
14 +                       reg = musb_readb(mbase, MUSB_DEVCTL);
15 +                        printk(KERN_WARNING "usb devctl after set=0x%0x\n",reg);
16 +               }
17 +               break;
18 +
19 +       case 'K':
20 +               if (mbase) {
21 +                       reg = musb_readb(mbase, MUSB_DEVCTL);
22 +                        printk(KERN_WARNING "usb devctl before=0x%0x\n",reg);
23 +                       DBG(1, "entering FORCE_HOSTMODE\n");
24 +                       musb_writeb(mbase, MUSB_TESTMODE,MUSB_TEST_FORCE_HOST);
25 +                       reg = musb_readb(mbase, MUSB_DEVCTL);
26 +                        printk(KERN_WARNING "usb devctl after force=0x%0x\n",reg);
27 +                       reg |= MUSB_DEVCTL_HR |  MUSB_DEVCTL_HM | MUSB_DEVCTL_SESSION;
28 +                       ctx.devctl |= MUSB_DEVCTL_HR |  MUSB_DEVCTL_HM | MUSB_DEVCTL_SESSION;
29 +                       musb_writeb(mbase, MUSB_DEVCTL, reg);
30 +                       MUSB_HST_MODE( ((struct musb*)data) );
31 +                       WARNING("Host Mode\n");
32 +                       reg = musb_readb(mbase, MUSB_DEVCTL);
33 +                        printk(KERN_WARNING "usb devctl after set=0x%0x\n",reg);
34 +               }
35 +               break;
36 +
37 +       case 'k':
38 +               if (mbase) {
39 +                       reg = musb_readb(mbase, MUSB_DEVCTL);
40 +                        printk(KERN_WARNING "usb devctl before=0x%0x\n",reg);
41 +                       DBG(1, "entering FORCE_HOSTMODE\n");
42 +                       musb_writeb(mbase, MUSB_TESTMODE,MUSB_TEST_FORCE_HOST);
43 +                       reg = musb_readb(mbase, MUSB_DEVCTL);
44 +                        printk(KERN_WARNING "usb devctl after force=0x%0x\n",reg);
45 +                       MUSB_HST_MODE( ((struct musb*)data) );
46 +                       WARNING("Host Mode\n");
47                 }
48                 break;
49  
50         case 'h':
51                 if (mbase) {
52 +                       musb_writeb(mbase, MUSB_TESTMODE,0);
53                         reg = musb_readb(mbase, MUSB_DEVCTL);
54                         reg &= ~MUSB_DEVCTL_HR;
55                         musb_writeb(mbase, MUSB_DEVCTL, reg);
56 --- kernel-power-2.6.28.orig/drivers/usb/musb/musb_core.c
57 +++ kernel-power-2.6.28/drivers/usb/musb/musb_core.c
58 @@ -113,7 +113,7 @@
59  #endif
60  
61  static struct musb *the_musb;
62 -static struct musb_ctx ctx;
63 +struct musb_ctx ctx;
64  
65  #ifndef CONFIG_MUSB_PIO_ONLY
66  static int __initdata use_dma = 1;
67 --- kernel-power-2.6.28.orig/drivers/usb/musb/musb_core.h
68 +++ kernel-power-2.6.28/drivers/usb/musb/musb_core.h
69 @@ -350,6 +350,8 @@
70         u8      naklimit0;
71  };
72  
73 +extern struct musb_ctx ctx;
74 +
75  /*
76   * struct musb - Driver instance data.
77   */