tried to fix port enable/reset bug - didn't work
authortheStack <sebastian.falbesoner@gmail.com>
Fri, 18 Sep 2009 20:12:59 +0000 (22:12 +0200)
committertheStack <sebastian.falbesoner@gmail.com>
Fri, 18 Sep 2009 20:12:59 +0000 (22:12 +0200)
usb/host/ohci.c

index 801720db5ed946c574fe662be36eb6965195ed3b..a04743ab6244cbeb88b9f8adce8986bb73b050c2 100644 (file)
@@ -402,15 +402,19 @@ void hcdi_irq()
                printf("OHCI0_HC_RH_PORT_STATUS_2:\t0x%08X\n", port2);
 
                if((port1 & RH_PS_CCS) && (port1 & RH_PS_CSC)) {
+                       write32(OHCI0_HC_RH_PORT_STATUS_1, RH_PS_CSC);
+
                        wait_ms(100);
 
                        /* clear CSC flag, set PES and start port reset (PRS) */
-                       write32(OHCI0_HC_RH_PORT_STATUS_1, port1 | RH_PS_CSC | RH_PS_PES | RH_PS_PRS); 
+                       write32(OHCI0_HC_RH_PORT_STATUS_1, RH_PS_PES);
+                       write32(OHCI0_HC_RH_PORT_STATUS_1, RH_PS_PRS);
 
                        /* spin until port reset is complete */
                        port1 = read32(OHCI0_HC_RH_PORT_STATUS_1);
                        while(!(port1 & RH_PS_PRSC)) {
                                udelay(2);
+                               printf("fuck");
                                port1 = read32(OHCI0_HC_RH_PORT_STATUS_1);
                        }