aboutsummaryrefslogtreecommitdiffstats
path: root/Bootloaders/Printer
diff options
context:
space:
mode:
Diffstat (limited to 'Bootloaders/Printer')
-rw-r--r--Bootloaders/Printer/BootloaderPrinter.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/Bootloaders/Printer/BootloaderPrinter.c b/Bootloaders/Printer/BootloaderPrinter.c
index 9a6a8c27f..c459e031a 100644
--- a/Bootloaders/Printer/BootloaderPrinter.c
+++ b/Bootloaders/Printer/BootloaderPrinter.c
@@ -380,6 +380,13 @@ void EVENT_USB_Device_ControlRequest(void)
"CLS:PRINTER";
Endpoint_ClearSETUP();
+
+ while (!(Endpoint_IsINReady()))
+ {
+ if (USB_DeviceState == DEVICE_STATE_Unattached)
+ return;
+ }
+
Endpoint_Write_16_BE(sizeof(PrinterIDString));
Endpoint_Write_Control_Stream_LE(PrinterIDString, strlen(PrinterIDString));
Endpoint_ClearStatusStage();
@@ -390,6 +397,13 @@ void EVENT_USB_Device_ControlRequest(void)
if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
{
Endpoint_ClearSETUP();
+
+ while (!(Endpoint_IsINReady()))
+ {
+ if (USB_DeviceState == DEVICE_STATE_Unattached)
+ return;
+ }
+
Endpoint_Write_8(PRNT_PORTSTATUS_NOTERROR | PRNT_PORTSTATUS_SELECT);
Endpoint_ClearStatusStage();
}