AppConfigHeaders: Merge in latest trunk.

pull/1469/head
Dean Camera 13 years ago
commit 18d91ece3b

@ -64,6 +64,7 @@
* - Fixed possible deadlock in the CDC device driver if the USB connection is dropped while the CDC_REQ_SetLineEncoding control request is being processed by * - Fixed possible deadlock in the CDC device driver if the USB connection is dropped while the CDC_REQ_SetLineEncoding control request is being processed by
* the stack (thanks to Jonathan Hudgins) * the stack (thanks to Jonathan Hudgins)
* - Fixed broken MIDI host driver MIDI_Host_ReceiveEventPacket() function due to not unfreezing the MIDI data IN pipe before use (thanks to Michael Brown) * - Fixed broken MIDI host driver MIDI_Host_ReceiveEventPacket() function due to not unfreezing the MIDI data IN pipe before use (thanks to Michael Brown)
* - Fixed swapped Little Endian/Big Endian endpoint and pipe write code for the UC3 devices (thanks to Andrew Chu)
* - Library Applications: * - Library Applications:
* - Fixed error in the AVRISP-MKII programmer when ISP mode is used at 64KHz (thanks to Ben R. Porter) * - Fixed error in the AVRISP-MKII programmer when ISP mode is used at 64KHz (thanks to Ben R. Porter)
* - Fixed AVRISP-MKII programmer project failing to compile for the U4 chips when VTARGET_ADC_CHANNEL is defined to an invalid channel and NO_VTARGET_DETECT is * - Fixed AVRISP-MKII programmer project failing to compile for the U4 chips when VTARGET_ADC_CHANNEL is defined to an invalid channel and NO_VTARGET_DETECT is

@ -406,8 +406,7 @@ static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* const RNDI
{ {
case OID_GEN_CURRENT_PACKET_FILTER: case OID_GEN_CURRENT_PACKET_FILTER:
RNDISInterfaceInfo->State.CurrPacketFilter = le32_to_cpu(*((uint32_t*)SetData)); RNDISInterfaceInfo->State.CurrPacketFilter = le32_to_cpu(*((uint32_t*)SetData));
RNDISInterfaceInfo->State.CurrRNDISState = le32_to_cpu((RNDISInterfaceInfo->State.CurrPacketFilter) ? RNDISInterfaceInfo->State.CurrRNDISState = (RNDISInterfaceInfo->State.CurrPacketFilter) ? RNDIS_Data_Initialized : RNDIS_Initialized;
RNDIS_Data_Initialized : RNDIS_Data_Initialized);
return true; return true;
case OID_802_3_MULTICAST_LIST: case OID_802_3_MULTICAST_LIST:

@ -605,8 +605,8 @@
static inline void Endpoint_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE; static inline void Endpoint_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_16_LE(const uint16_t Data) static inline void Endpoint_Write_16_LE(const uint16_t Data)
{ {
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF); *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
} }
/** Writes two bytes to the currently selected endpoint's bank in big endian format, for IN /** Writes two bytes to the currently selected endpoint's bank in big endian format, for IN
@ -619,8 +619,8 @@
static inline void Endpoint_Write_16_BE(const uint16_t Data) ATTR_ALWAYS_INLINE; static inline void Endpoint_Write_16_BE(const uint16_t Data) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_16_BE(const uint16_t Data) static inline void Endpoint_Write_16_BE(const uint16_t Data)
{ {
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8); *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
} }
/** Discards two bytes from the currently selected endpoint's bank, for OUT direction endpoints. /** Discards two bytes from the currently selected endpoint's bank, for OUT direction endpoints.
@ -684,10 +684,10 @@
static inline void Endpoint_Write_32_LE(const uint32_t Data) ATTR_ALWAYS_INLINE; static inline void Endpoint_Write_32_LE(const uint32_t Data) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_32_LE(const uint32_t Data) static inline void Endpoint_Write_32_LE(const uint32_t Data)
{ {
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF); *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24);
} }
/** Writes four bytes to the currently selected endpoint's bank in big endian format, for IN /** Writes four bytes to the currently selected endpoint's bank in big endian format, for IN
@ -700,10 +700,10 @@
static inline void Endpoint_Write_32_BE(const uint32_t Data) ATTR_ALWAYS_INLINE; static inline void Endpoint_Write_32_BE(const uint32_t Data) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_32_BE(const uint32_t Data) static inline void Endpoint_Write_32_BE(const uint32_t Data)
{ {
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24); *(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 24);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 16);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data >> 8);
*(USB_Endpoint_FIFOPos[USB_Endpoint_SelectedEndpoint]++) = (Data & 0xFF);
} }
/** Discards four bytes from the currently selected endpoint's bank, for OUT direction endpoints. /** Discards four bytes from the currently selected endpoint's bank, for OUT direction endpoints.

@ -515,6 +515,7 @@
static inline void Pipe_ClearSETUP(void) static inline void Pipe_ClearSETUP(void)
{ {
(&AVR32_USBB.UPSTA0CLR)[USB_Pipe_SelectedPipe].txstpic = true; (&AVR32_USBB.UPSTA0CLR)[USB_Pipe_SelectedPipe].txstpic = true;
(&AVR32_USBB.UPCON0CLR)[USB_Pipe_SelectedPipe].fifoconc = true;
USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[USB_Pipe_SelectedPipe * PIPE_HSB_ADDRESS_SPACE_SIZE]; USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe] = &AVR32_USBB_SLAVE[USB_Pipe_SelectedPipe * PIPE_HSB_ADDRESS_SPACE_SIZE];
} }
@ -676,8 +677,8 @@
static inline void Pipe_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE; static inline void Pipe_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_16_LE(const uint16_t Data) static inline void Pipe_Write_16_LE(const uint16_t Data)
{ {
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF); *(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
} }
/** Writes two bytes to the currently selected pipe's bank in big endian format, for IN /** Writes two bytes to the currently selected pipe's bank in big endian format, for IN
@ -690,8 +691,8 @@
static inline void Pipe_Write_16_BE(const uint16_t Data) ATTR_ALWAYS_INLINE; static inline void Pipe_Write_16_BE(const uint16_t Data) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_16_BE(const uint16_t Data) static inline void Pipe_Write_16_BE(const uint16_t Data)
{ {
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8); *(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF);
} }
/** Discards two bytes from the currently selected pipe's bank, for OUT direction pipes. /** Discards two bytes from the currently selected pipe's bank, for OUT direction pipes.
@ -755,10 +756,10 @@
static inline void Pipe_Write_32_LE(const uint32_t Data) ATTR_ALWAYS_INLINE; static inline void Pipe_Write_32_LE(const uint32_t Data) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_32_LE(const uint32_t Data) static inline void Pipe_Write_32_LE(const uint32_t Data)
{ {
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 24);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 16);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF); *(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 16);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 24);
} }
/** Writes four bytes to the currently selected pipe's bank in big endian format, for IN /** Writes four bytes to the currently selected pipe's bank in big endian format, for IN
@ -771,10 +772,10 @@
static inline void Pipe_Write_32_BE(const uint32_t Data) ATTR_ALWAYS_INLINE; static inline void Pipe_Write_32_BE(const uint32_t Data) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_32_BE(const uint32_t Data) static inline void Pipe_Write_32_BE(const uint32_t Data)
{ {
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 16);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 24); *(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 24);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 16);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data >> 8);
*(USB_Pipe_FIFOPos[USB_Pipe_SelectedPipe]++) = (Data & 0xFF);
} }
/** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes. /** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.

@ -138,7 +138,7 @@ void USB_ResetInterface(void)
else if (USB_CurrentMode == USB_MODE_Host) else if (USB_CurrentMode == USB_MODE_Host)
{ {
#if defined(INVERTED_VBUS_ENABLE_LINE) #if defined(INVERTED_VBUS_ENABLE_LINE)
AVR32_USBB.USBCON.vbuspol = true; AVR32_USBB.USBCON.vbuspo = true;
#endif #endif
#if defined(USB_CAN_BE_HOST) #if defined(USB_CAN_BE_HOST)

@ -274,7 +274,10 @@
static inline uint16_t Endpoint_BytesInEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; static inline uint16_t Endpoint_BytesInEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline uint16_t Endpoint_BytesInEndpoint(void) static inline uint16_t Endpoint_BytesInEndpoint(void)
{ {
return USB_Endpoint_SelectedFIFO->Position; if (USB_Endpoint_SelectedEndpoint & ENDPOINT_DIR_IN)
return USB_Endpoint_SelectedFIFO->Position;
else
return (USB_Endpoint_SelectedFIFO->Length - USB_Endpoint_SelectedFIFO->Position);
} }
/** Get the endpoint address of the currently selected endpoint. This is typically used to save /** Get the endpoint address of the currently selected endpoint. This is typically used to save

Loading…
Cancel
Save