Index: trunk/i386/libsaio/usb.c =================================================================== --- trunk/i386/libsaio/usb.c (revision 2570) +++ trunk/i386/libsaio/usb.c (revision 2571) @@ -162,9 +162,7 @@ DBG("Clearing USBLEGCTLSTS\n"); pci_config_write32(pci_dev->dev.addr, eecp + 4, 0); //usblegctlsts - // if delay value is in milliseconds it doesn't appear to work. - // setting value to anything up to 65535 does not add the expected delay here. - delay(100); + delay(100000); usbcmd = *((unsigned int*)(opaddr)); usbsts = *((unsigned int*)(opaddr + 4)); @@ -402,7 +400,7 @@ timeOut = 40; while (timeOut--) { - delay(1); + delay(500); value = *(uint32_t const volatile*) (bar0 + extendCap); if (value == ~0) { Index: trunk/i386/libsaio/biosfn.c =================================================================== --- trunk/i386/libsaio/biosfn.c (revision 2570) +++ trunk/i386/libsaio/biosfn.c (revision 2571) @@ -1007,12 +1007,12 @@ //============================================================================== -void delay(int ms) +void delay(int us) { bb.intno = 0x15; bb.eax.r.h = 0x86; - bb.ecx.rr = ms >> 16; - bb.edx.rr = ms & 0xFFFF; + bb.ecx.rr = us >> 16; + bb.edx.rr = us & 0xFFFF; bios(&bb); } Index: trunk/i386/libsaio/saio_internal.h =================================================================== --- trunk/i386/libsaio/saio_internal.h (revision 2570) +++ trunk/i386/libsaio/saio_internal.h (revision 2571) @@ -53,7 +53,7 @@ extern int readKeyboardStatus(void); extern int readKeyboardShiftFlags(void); extern unsigned int time18(void); -extern void delay(int ms); +extern void delay(int us); extern unsigned int get_diskinfo(int dev); #if APM_SUPPORT extern int APMPresent(void);