prepare v38, usbhost
[kernel-bfs] / kernel-power-2.6.28 / debian / patches / usbhost4.diff
index e74b475..02d644c 100644 (file)
@@ -1,20 +1,58 @@
 --- kernel-power-2.6.28.orig/drivers/usb/musb/musb_procfs.c
 +++ kernel-power-2.6.28/drivers/usb/musb/musb_procfs.c
-@@ -657,9 +657,12 @@
+@@ -656,15 +656,50 @@
+       case 'H':
                if (mbase) {
                        reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl before=0x%0x\n",reg);
                        reg |= MUSB_DEVCTL_HR;
-+                      reg |= MUSB_DEVCTL_HM;
-+                      ctx.devctl |= MUSB_DEVCTL_HR;
-+                      ctx.devctl |= MUSB_DEVCTL_HM;
                        musb_writeb(mbase, MUSB_DEVCTL, reg);
 -                      /* MUSB_HST_MODE( ((struct musb*)data) ); */
 -                      /* WARNING("Host Mode\n"); */
 +                      MUSB_HST_MODE( ((struct musb*)data) );
 +                      WARNING("Host Mode\n");
++                      reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl after set=0x%0x\n",reg);
++              }
++              break;
++
++      case 'K':
++              if (mbase) {
++                      reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl before=0x%0x\n",reg);
++                      DBG(1, "entering FORCE_HOSTMODE\n");
++                      musb_writeb(mbase, MUSB_TESTMODE,MUSB_TEST_FORCE_HOST);
++                      reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl after force=0x%0x\n",reg);
++                      reg |= MUSB_DEVCTL_HR |  MUSB_DEVCTL_HM | MUSB_DEVCTL_SESSION;
++                      ctx.devctl |= MUSB_DEVCTL_HR |  MUSB_DEVCTL_HM | MUSB_DEVCTL_SESSION;
++                      musb_writeb(mbase, MUSB_DEVCTL, reg);
++                      MUSB_HST_MODE( ((struct musb*)data) );
++                      WARNING("Host Mode\n");
++                      reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl after set=0x%0x\n",reg);
++              }
++              break;
++
++      case 'k':
++              if (mbase) {
++                      reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl before=0x%0x\n",reg);
++                      DBG(1, "entering FORCE_HOSTMODE\n");
++                      musb_writeb(mbase, MUSB_TESTMODE,MUSB_TEST_FORCE_HOST);
++                      reg = musb_readb(mbase, MUSB_DEVCTL);
++                        printk(KERN_WARNING "usb devctl after force=0x%0x\n",reg);
++                      MUSB_HST_MODE( ((struct musb*)data) );
++                      WARNING("Host Mode\n");
                }
                break;
  
+       case 'h':
+               if (mbase) {
++                      musb_writeb(mbase, MUSB_TESTMODE,0);
+                       reg = musb_readb(mbase, MUSB_DEVCTL);
+                       reg &= ~MUSB_DEVCTL_HR;
+                       musb_writeb(mbase, MUSB_DEVCTL, reg);
 --- kernel-power-2.6.28.orig/drivers/usb/musb/musb_core.c
 +++ kernel-power-2.6.28/drivers/usb/musb/musb_core.c
 @@ -113,7 +113,7 @@