diff options
author | Dean Camera <[email protected]> | 2009-03-10 05:56:17 +0000 |
---|---|---|
committer | Dean Camera <[email protected]> | 2009-03-10 05:56:17 +0000 |
commit | 38039765346c7441208dbcb3fd3cf8f13b7ced58 (patch) | |
tree | aafe05db569ec7a2938b3e7cdbd63e4a5d6a054e /Demos/MouseFullInt/MouseFullInt.c | |
parent | 4a09da20989dfe0c41dc1272fa6dce1e11539c15 (diff) | |
download | qmk_firmware-38039765346c7441208dbcb3fd3cf8f13b7ced58.tar.gz qmk_firmware-38039765346c7441208dbcb3fd3cf8f13b7ced58.zip |
Fixed incorrect/missing control status stage transfers on demos, bootloaders and applications (thanks to Nate Lawson).
Diffstat (limited to 'Demos/MouseFullInt/MouseFullInt.c')
-rw-r--r-- | Demos/MouseFullInt/MouseFullInt.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Demos/MouseFullInt/MouseFullInt.c b/Demos/MouseFullInt/MouseFullInt.c index 98782b6cf9..7e69d81e7b 100644 --- a/Demos/MouseFullInt/MouseFullInt.c +++ b/Demos/MouseFullInt/MouseFullInt.c @@ -200,6 +200,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket) /* Send the flag to the host */
Endpoint_ClearSetupIN();
+
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupOUTReceived()));
+ Endpoint_ClearSetupOUT();
}
break;
@@ -214,7 +218,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket) /* Set or clear the flag depending on what the host indicates that the current Protocol should be */
UsingReportProtocol = (wValue != 0x0000);
- /* Send an empty packet to acknowedge the command */
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupINReady()));
Endpoint_ClearSetupIN();
}
@@ -230,7 +235,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket) /* Get idle period in MSB */
IdleCount = (wValue >> 8);
- /* Send an empty packet to acknowedge the command */
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupINReady()));
Endpoint_ClearSetupIN();
}
@@ -245,6 +251,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket) /* Send the flag to the host */
Endpoint_ClearSetupIN();
+
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupOUTReceived()));
+ Endpoint_ClearSetupOUT();
}
break;
|