projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix control request hang in Printer device class driver (thanks to Juergen Borleis).
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
Class
/
Device
/
PrinterClassDevice.c
diff --git
a/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
b/LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
index
fd3454b
..
940aacf
100644
(file)
--- a/
LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
+++ b/
LUFA/Drivers/USB/Class/Device/PrinterClassDevice.c
@@
-1,13
+1,13
@@
/*
LUFA Library
/*
LUFA Library
- Copyright (C) Dean Camera, 201
4
.
+ Copyright (C) Dean Camera, 201
9
.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 201
4
Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 201
9
Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@
-59,7
+59,7
@@
void PRNT_Device_ProcessControlRequest(USB_ClassInfo_PRNT_Device_t* const PRNTIn
}
uint16_t IEEEStringLen = strlen(PRNTInterfaceInfo->Config.IEEE1284String);
}
uint16_t IEEEStringLen = strlen(PRNTInterfaceInfo->Config.IEEE1284String);
- Endpoint_Write_16_BE(IEEEStringLen);
+ Endpoint_Write_16_BE(IEEEStringLen
+ sizeof(uint16_t)
);
Endpoint_Write_Control_Stream_LE(PRNTInterfaceInfo->Config.IEEE1284String, IEEEStringLen);
Endpoint_ClearStatusStage();
}
Endpoint_Write_Control_Stream_LE(PRNTInterfaceInfo->Config.IEEE1284String, IEEEStringLen);
Endpoint_ClearStatusStage();
}
@@
-77,6
+77,8
@@
void PRNT_Device_ProcessControlRequest(USB_ClassInfo_PRNT_Device_t* const PRNTIn
}
Endpoint_Write_8(PRNTInterfaceInfo->State.PortStatus);
}
Endpoint_Write_8(PRNTInterfaceInfo->State.PortStatus);
+ Endpoint_ClearIN();
+
Endpoint_ClearStatusStage();
}
Endpoint_ClearStatusStage();
}
@@
-305,7
+307,7
@@
static int PRNT_Device_getchar_Blocking(FILE* Stream)
}
#endif
}
#endif
-void PRNT_Device_Event_Stub(
void
)
+void PRNT_Device_Event_Stub(
USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo
)
{
}
{
}