diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2011-07-29 08:12:00 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2011-07-29 08:12:00 +0000 |
commit | 40728fd20dc87eebab964ce8dc42db6df3d72a65 (patch) | |
tree | 1962ef2fc280a54747d0d28b0b85b517bb93f493 /LUFA/Drivers/USB | |
parent | 025742fca89e78d33f37b229c97607460a3a78d5 (diff) | |
download | lufa-40728fd20dc87eebab964ce8dc42db6df3d72a65.tar.gz lufa-40728fd20dc87eebab964ce8dc42db6df3d72a65.tar.bz2 lufa-40728fd20dc87eebab964ce8dc42db6df3d72a65.zip |
Remove redundant calls to USB_USBTask() in the Mass Storage Device Class driver when INTERRUPT_CONTROL_ENDPOINT is not used, as this is done inside the stream callbacks.
Fix implementations of Endpoint_SetEndpointDirection() and Endpoint_GetEndpointDirection() for the AVR8 architecture.
Diffstat (limited to 'LUFA/Drivers/USB')
-rw-r--r-- | LUFA/Drivers/USB/Class/Device/MassStorage.c | 20 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h | 4 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/USBController.h | 6 |
3 files changed, 5 insertions, 25 deletions
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.c b/LUFA/Drivers/USB/Class/Device/MassStorage.c index 4f1542ae9..45d011224 100644 --- a/LUFA/Drivers/USB/Class/Device/MassStorage.c +++ b/LUFA/Drivers/USB/Class/Device/MassStorage.c @@ -165,10 +165,6 @@ static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* const MSInte (sizeof(MS_CommandBlockWrapper_t) - 16), &BytesProcessed) == ENDPOINT_RWSTREAM_IncompleteTransfer) { - #if !defined(INTERRUPT_CONTROL_ENDPOINT) - USB_USBTask(); - #endif - if (MSInterfaceInfo->State.IsMassStoreReset) return false; } @@ -191,10 +187,6 @@ static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* const MSInte MSInterfaceInfo->State.CommandBlock.SCSICommandLength, &BytesProcessed) == ENDPOINT_RWSTREAM_IncompleteTransfer) { - #if !defined(INTERRUPT_CONTROL_ENDPOINT) - USB_USBTask(); - #endif - if (MSInterfaceInfo->State.IsMassStoreReset) return false; } @@ -210,10 +202,6 @@ static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* const MSInt while (Endpoint_IsStalled()) { - #if !defined(INTERRUPT_CONTROL_ENDPOINT) - USB_USBTask(); - #endif - if (MSInterfaceInfo->State.IsMassStoreReset) return; } @@ -222,10 +210,6 @@ static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* const MSInt while (Endpoint_IsStalled()) { - #if !defined(INTERRUPT_CONTROL_ENDPOINT) - USB_USBTask(); - #endif - if (MSInterfaceInfo->State.IsMassStoreReset) return; } @@ -235,10 +219,6 @@ static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* const MSInt sizeof(MS_CommandStatusWrapper_t), &BytesProcessed) == ENDPOINT_RWSTREAM_IncompleteTransfer) { - #if !defined(INTERRUPT_CONTROL_ENDPOINT) - USB_USBTask(); - #endif - if (MSInterfaceInfo->State.IsMassStoreReset) return; } diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h index d1bea6dfd..f14d4839b 100644 --- a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h +++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h @@ -587,7 +587,7 @@ static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; static inline uint8_t Endpoint_GetEndpointDirection(void) { - return (UECFG0X & ENDPOINT_DIR_IN); + return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT; } /** Sets the direction of the currently selected endpoint. @@ -597,7 +597,7 @@ static inline void Endpoint_SetEndpointDirection(const uint8_t DirectionMask) ATTR_ALWAYS_INLINE; static inline void Endpoint_SetEndpointDirection(const uint8_t DirectionMask) { - UECFG0X = ((UECFG0X & ~ENDPOINT_DIR_IN) | DirectionMask); + UECFG0X = ((UECFG0X & ~(1 << EPDIR)) | (DirectionMask ? (1 << EPDIR) : 0)); } /** Reads one byte from the currently selected endpoint's bank, for OUT direction endpoints. diff --git a/LUFA/Drivers/USB/Core/USBController.h b/LUFA/Drivers/USB/Core/USBController.h index 3190957c1..1c44c1676 100644 --- a/LUFA/Drivers/USB/Core/USBController.h +++ b/LUFA/Drivers/USB/Core/USBController.h @@ -68,17 +68,17 @@ /** Endpoint direction mask, for masking against endpoint addresses to retrieve the endpoint's * direction for comparing with the \c ENDPOINT_DIR_* masks. */ - #define ENDPOINT_DIR_MASK 0x80 + #define ENDPOINT_DIR_MASK 0x80 /** Endpoint address direction mask for an OUT direction (Host to Device) endpoint. This may be ORed with * the index of the address within a device to obtain the full endpoint address. */ - #define ENDPOINT_DIR_OUT 0x00 + #define ENDPOINT_DIR_OUT 0x00 /** Endpoint address direction mask for an IN direction (Device to Host) endpoint. This may be ORed with * the index of the address within a device to obtain the full endpoint address. */ - #define ENDPOINT_DIR_IN 0x80 + #define ENDPOINT_DIR_IN 0x80 //@} /** \name Endpoint/Pipe Type Masks */ |