From: Dean Camera Date: Sat, 12 Jun 2010 07:01:18 +0000 (+0000) Subject: Speed up calls to Pipe_IsPipeBound() by immediately skipping unconfigured pipes,... X-Git-Tag: LUFA-110528-BETA~398 X-Git-Url: http://git.linex4red.de/pub/USBasp.git/commitdiff_plain/75d440ace31c326dc80c84c3d346a425f43f1dd6 Speed up calls to Pipe_IsPipeBound() by immediately skipping unconfigured pipes, rather than performing token check first. --- diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.c b/LUFA/Drivers/USB/LowLevel/Endpoint.c index 15cb9d011..22579af6d 100644 --- a/LUFA/Drivers/USB/LowLevel/Endpoint.c +++ b/LUFA/Drivers/USB/LowLevel/Endpoint.c @@ -139,7 +139,7 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length #if !defined(NO_STREAM_CALLBACKS) , StreamCallbackPtr_t Callback #endif - ) + ) { uint8_t ErrorCode; diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.c b/LUFA/Drivers/USB/LowLevel/Pipe.c index 4bfcc21e2..8e817a279 100644 --- a/LUFA/Drivers/USB/LowLevel/Pipe.c +++ b/LUFA/Drivers/USB/LowLevel/Pipe.c @@ -79,13 +79,16 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress) { Pipe_SelectPipe(PNum); - uint8_t PipeToken = Pipe_GetPipeToken(); + if (!(Pipe_IsConfigured())) + continue; + + uint8_t PipeToken = Pipe_GetPipeToken(); bool PipeTokenCorrect = true; if (PipeToken != PIPE_TOKEN_SETUP) PipeTokenCorrect = (PipeToken == ((EndpointAddress & PIPE_EPDIR_MASK) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT)); - if (Pipe_IsConfigured() && PipeTokenCorrect && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK))) + if (PipeTokenCorrect && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK))) return true; } @@ -131,9 +134,9 @@ uint8_t Pipe_WaitUntilReady(void) uint8_t Pipe_Discard_Stream(uint16_t Length #if !defined(NO_STREAM_CALLBACKS) - , StreamCallbackPtr_t Callback + , StreamCallbackPtr_t Callback #endif - ) + ) { uint8_t ErrorCode;