forked from mfulz_github/qmk_firmware
Fixed error in the pipe unordered allocation algorithm for the AVR8 devices breaking compatibility with some devices.
This commit is contained in:
parent
04287b76c5
commit
fdb82cd1e8
|
@ -51,7 +51,7 @@
|
||||||
|
|
||||||
/** Decodes an Ethernet frame header and prints its contents to through the USART in a human readable format.
|
/** Decodes an Ethernet frame header and prints its contents to through the USART in a human readable format.
|
||||||
*
|
*
|
||||||
* \param[in] FrameINData Pointer to the start of an Ethernet frame data
|
* \param[in] InDataStart Pointer to the start of an Ethernet frame of data
|
||||||
*/
|
*/
|
||||||
void DecodeEthernetFrameHeader(void* InDataStart)
|
void DecodeEthernetFrameHeader(void* InDataStart)
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,7 +78,7 @@ bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Endpoint_DisableEndpoint();
|
Endpoint_DisableEndpoint();
|
||||||
UECFG1X &= (1 << ALLOC);
|
UECFG1X &= ~(1 << ALLOC);
|
||||||
|
|
||||||
Endpoint_EnableEndpoint();
|
Endpoint_EnableEndpoint();
|
||||||
UECFG0X = UECFG0XTemp;
|
UECFG0X = UECFG0XTemp;
|
||||||
|
|
|
@ -62,8 +62,6 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
|
||||||
uint8_t UPCFG0XTemp;
|
uint8_t UPCFG0XTemp;
|
||||||
uint8_t UPCFG1XTemp;
|
uint8_t UPCFG1XTemp;
|
||||||
uint8_t UPCFG2XTemp;
|
uint8_t UPCFG2XTemp;
|
||||||
uint8_t UPCONXTemp;
|
|
||||||
uint8_t UPINRQXTemp;
|
|
||||||
uint8_t UPIENXTemp;
|
uint8_t UPIENXTemp;
|
||||||
|
|
||||||
Pipe_SelectPipe(PNum);
|
Pipe_SelectPipe(PNum);
|
||||||
|
@ -73,8 +71,6 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
|
||||||
UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
|
UPCFG0XTemp = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
|
||||||
UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
|
UPCFG1XTemp = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
|
||||||
UPCFG2XTemp = 0;
|
UPCFG2XTemp = 0;
|
||||||
UPCONXTemp = ((1 << PEN) | (1 << INMODE));
|
|
||||||
UPINRQXTemp = 0;
|
|
||||||
UPIENXTemp = 0;
|
UPIENXTemp = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -82,27 +78,23 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
|
||||||
UPCFG0XTemp = UPCFG0X;
|
UPCFG0XTemp = UPCFG0X;
|
||||||
UPCFG1XTemp = UPCFG1X;
|
UPCFG1XTemp = UPCFG1X;
|
||||||
UPCFG2XTemp = UPCFG2X;
|
UPCFG2XTemp = UPCFG2X;
|
||||||
UPCONXTemp = UPCONX;
|
|
||||||
UPINRQXTemp = UPINRQX;
|
|
||||||
UPIENXTemp = UPIENX;
|
UPIENXTemp = UPIENX;
|
||||||
}
|
}
|
||||||
|
|
||||||
Pipe_SetInfiniteINRequests();
|
|
||||||
|
|
||||||
if (!(UPCFG1XTemp & (1 << ALLOC)))
|
if (!(UPCFG1XTemp & (1 << ALLOC)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Pipe_DisablePipe();
|
Pipe_DisablePipe();
|
||||||
UPCFG1X &= (1 << ALLOC);
|
UPCFG1X &= ~(1 << ALLOC);
|
||||||
|
|
||||||
Pipe_EnablePipe();
|
Pipe_EnablePipe();
|
||||||
UPCFG0X = UPCFG0XTemp;
|
UPCFG0X = UPCFG0XTemp;
|
||||||
UPCFG1X = UPCFG1XTemp;
|
UPCFG1X = UPCFG1XTemp;
|
||||||
UPCFG2X = UPCFG2XTemp;
|
UPCFG2X = UPCFG2XTemp;
|
||||||
UPCONX = UPCONXTemp;
|
|
||||||
UPINRQX = UPINRQXTemp;
|
|
||||||
UPIENX = UPIENXTemp;
|
UPIENX = UPIENXTemp;
|
||||||
|
|
||||||
|
Pipe_SetInfiniteINRequests();
|
||||||
|
|
||||||
if (!(Pipe_IsConfigured()))
|
if (!(Pipe_IsConfigured()))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
* - Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time
|
* - Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time
|
||||||
* option was not enabled on the AVR8s
|
* option was not enabled on the AVR8s
|
||||||
* - Fixed lack of C++ compatibility in some internal header files causing compile errors when using LUFA in C++ projects
|
* - Fixed lack of C++ compatibility in some internal header files causing compile errors when using LUFA in C++ projects
|
||||||
|
* - Fixed error in the pipe unordered allocation algorithm for the AVR8 devices breaking compatibility with some devices
|
||||||
* - Library Applications:
|
* - Library Applications:
|
||||||
* - Fixed incorrect signature in the CDC and DFU class bootloaders for the ATMEGA8U2
|
* - Fixed incorrect signature in the CDC and DFU class bootloaders for the ATMEGA8U2
|
||||||
* - Fixed KeyboardHost and KeyboardHostWithParser demos displaying incorrect values when numerical keys were pressed
|
* - Fixed KeyboardHost and KeyboardHostWithParser demos displaying incorrect values when numerical keys were pressed
|
||||||
|
|
Loading…
Reference in New Issue