X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/4904b10ef689a11b420c0a32da747533f4378712..2793c88fc601dcc7ec4961326dd9748a20f3ec83:/LUFA/Drivers/USB/LowLevel/Host.c?ds=inline diff --git a/LUFA/Drivers/USB/LowLevel/Host.c b/LUFA/Drivers/USB/LowLevel/Host.c index 9630b6aa1..02a1c2171 100644 --- a/LUFA/Drivers/USB/LowLevel/Host.c +++ b/LUFA/Drivers/USB/LowLevel/Host.c @@ -55,7 +55,7 @@ void USB_Host_ProcessNextHostState(void) break; } - if (!(WaitMSRemaining--)) + if (!(--WaitMSRemaining)) USB_HostState = PostWaitState; } @@ -90,7 +90,7 @@ void USB_Host_ProcessNextHostState(void) USB_INT_Enable(USB_INT_VBERRI); USB_IsConnected = true; - RAISE_EVENT(USB_Connect); + EVENT_USB_Connect(); USB_Host_ResumeBus(); Pipe_ClearPipes(); @@ -184,7 +184,7 @@ void USB_Host_ProcessNextHostState(void) case HOST_STATE_Default_PostAddressSet: USB_Host_SetDeviceAddress(USB_HOST_DEVICEADDRESS); - RAISE_EVENT(USB_DeviceEnumerationComplete); + EVENT_USB_DeviceEnumerationComplete(); USB_HostState = HOST_STATE_Addressed; break; @@ -192,14 +192,14 @@ void USB_Host_ProcessNextHostState(void) if ((ErrorCode != HOST_ENUMERROR_NoError) && (USB_HostState != HOST_STATE_Unattached)) { - RAISE_EVENT(USB_DeviceEnumerationFailed, ErrorCode, SubErrorCode); + EVENT_USB_DeviceEnumerationFailed(ErrorCode, SubErrorCode); USB_Host_VBUS_Auto_Off(); - RAISE_EVENT(USB_DeviceUnattached); + EVENT_USB_DeviceUnattached(); if (USB_IsConnected) - RAISE_EVENT(USB_Disconnect); + EVENT_USB_Disconnect(); USB_ResetInterface(); } @@ -210,14 +210,13 @@ uint8_t USB_Host_WaitMS(uint8_t MS) bool BusSuspended = USB_Host_IsBusSuspended(); uint8_t ErrorCode = HOST_WAITERROR_Successful; - USB_INT_Clear(USB_INT_HSOFI); USB_Host_ResumeBus(); while (MS) { - if (USB_INT_HasOccurred(USB_INT_HSOFI)) + if (FrameElapsed) { - USB_INT_Clear(USB_INT_HSOFI); + FrameElapsed = false; MS--; } @@ -260,9 +259,10 @@ static void USB_Host_ResetDevice(void) USB_Host_ResetBus(); while (!(USB_Host_IsBusResetComplete())); - USB_INT_Clear(USB_INT_HSOFI); USB_Host_ResumeBus(); + FrameElapsed = false; + for (uint8_t MSRem = 10; MSRem != 0; MSRem--) { /* Workaround for powerless-pull-up devices. After a USB bus reset, @@ -270,8 +270,10 @@ static void USB_Host_ResetDevice(void) looked for - if it is found within 10ms, the device is still present. */ - if (USB_INT_HasOccurred(USB_INT_HSOFI)) + if (FrameElapsed) { + FrameElapsed = false; + USB_INT_Clear(USB_INT_DDISCI); break; }