X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/6a10d6b465be27db090d760dc0fbe722c94e4344..710d48a48aa3ab5f1c446c9ec04854aceb0820b6:/LUFA/Drivers/USB/LowLevel/DevChapter9.c diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.c b/LUFA/Drivers/USB/LowLevel/DevChapter9.c index 9ea3f417c..19d72983b 100644 --- a/LUFA/Drivers/USB/LowLevel/DevChapter9.c +++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.c @@ -28,7 +28,8 @@ this software. */ -#include "USBMode.h" +#include "../HighLevel/USBMode.h" + #if defined(USB_CAN_BE_DEVICE) #define INCLUDE_FROM_DEVCHAPTER9_C @@ -55,7 +56,7 @@ void USB_Device_ProcessControlPacket(void) } break; -#if !defined(NO_CLEARSET_FEATURE_REQUEST) +#if !defined(FEATURELESS_CONTROL_ONLY_DEVICE) case REQ_ClearFeature: case REQ_SetFeature: if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_ENDPOINT)) @@ -104,10 +105,10 @@ void USB_Device_ProcessControlPacket(void) if (!(RequestHandled)) RAISE_EVENT(USB_UnhandledControlPacket, bRequest, bmRequestType); - if (Endpoint_IsSetupReceived()) + if (Endpoint_IsSETUPReceived()) { Endpoint_StallTransaction(); - Endpoint_ClearSetupReceived(); + Endpoint_ClearControlSETUP(); } } @@ -115,13 +116,13 @@ static void USB_Device_SetAddress(void) { uint8_t wValue_LSB = Endpoint_Read_Byte(); - Endpoint_ClearSetupReceived(); + Endpoint_ClearControlSETUP(); - while (!(Endpoint_IsSetupINReady())); + while (!(Endpoint_IsINReady())); - Endpoint_ClearSetupIN(); + Endpoint_ClearControlIN(); - while (!(Endpoint_IsSetupINReady())); + while (!(Endpoint_IsINReady())); UDADDR = ((1 << ADDEN) | (wValue_LSB & 0x7F)); @@ -151,11 +152,11 @@ static void USB_Device_SetConfiguration(void) return; } - Endpoint_ClearSetupReceived(); + Endpoint_ClearControlSETUP(); USB_ConfigurationNumber = wValue_LSB; - Endpoint_ClearSetupIN(); + Endpoint_ClearControlIN(); if (!(AlreadyConfigured) && USB_ConfigurationNumber) RAISE_EVENT(USB_DeviceEnumerationComplete); @@ -165,14 +166,14 @@ static void USB_Device_SetConfiguration(void) void USB_Device_GetConfiguration(void) { - Endpoint_ClearSetupReceived(); + Endpoint_ClearControlSETUP(); Endpoint_Write_Byte(USB_ConfigurationNumber); - Endpoint_ClearSetupIN(); + Endpoint_ClearControlIN(); - while (!(Endpoint_IsSetupOUTReceived())); - Endpoint_ClearSetupOUT(); + while (!(Endpoint_IsOUTReceived())); + Endpoint_ClearControlOUT(); } static void USB_Device_GetDescriptor(void) @@ -189,18 +190,18 @@ static void USB_Device_GetDescriptor(void) if ((DescriptorSize = USB_GetDescriptor(wValue, wIndex, &DescriptorPointer)) == NO_DESCRIPTOR) return; - Endpoint_ClearSetupReceived(); + Endpoint_ClearControlSETUP(); if (wLength > DescriptorSize) wLength = DescriptorSize; while (wLength) { - while (!(Endpoint_IsSetupINReady())) + while (!(Endpoint_IsINReady())) { - if (Endpoint_IsSetupOUTReceived()) + if (Endpoint_IsOUTReceived()) { - Endpoint_ClearSetupOUT(); + Endpoint_ClearControlOUT(); return; } } @@ -219,17 +220,17 @@ static void USB_Device_GetDescriptor(void) } SendZLP = (Endpoint_BytesInEndpoint() == USB_ControlEndpointSize); - Endpoint_ClearSetupIN(); + Endpoint_ClearControlIN(); } if (SendZLP) { - while (!(Endpoint_IsSetupINReady())); - Endpoint_ClearSetupIN(); + while (!(Endpoint_IsINReady())); + Endpoint_ClearControlIN(); } - while (!(Endpoint_IsSetupOUTReceived())); - Endpoint_ClearSetupOUT(); + while (!(Endpoint_IsOUTReceived())); + Endpoint_ClearControlOUT(); } static void USB_Device_GetStatus(const uint8_t bmRequestType) @@ -238,7 +239,9 @@ static void USB_Device_GetStatus(const uint8_t bmRequestType) Endpoint_Discard_Word(); +#if !defined(FEATURELESS_CONTROL_ONLY_DEVICE) uint8_t wIndex_LSB = Endpoint_Read_Byte(); +#endif switch (bmRequestType) { @@ -250,25 +253,28 @@ static void USB_Device_GetStatus(const uint8_t bmRequestType) CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED; break; +#if !defined(FEATURELESS_CONTROL_ONLY_DEVICE) case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_ENDPOINT): Endpoint_SelectEndpoint(wIndex_LSB); CurrentStatus = Endpoint_IsStalled(); break; +#endif } Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP); - Endpoint_ClearSetupReceived(); + Endpoint_ClearControlSETUP(); + Endpoint_Write_Word_LE(CurrentStatus); - Endpoint_ClearSetupIN(); + Endpoint_ClearControlIN(); - while (!(Endpoint_IsSetupOUTReceived())); - Endpoint_ClearSetupOUT(); + while (!(Endpoint_IsOUTReceived())); + Endpoint_ClearControlOUT(); } -#if !defined(NO_CLEARSET_FEATURE_REQUEST) +#if !defined(FEATURELESS_CONTROL_ONLY_DEVICE) static void USB_Device_ClearSetFeature(const uint8_t bRequest, const uint8_t bmRequestType) { uint16_t wValue = Endpoint_Read_Word_LE(); @@ -300,8 +306,8 @@ static void USB_Device_ClearSetFeature(const uint8_t bRequest, const uint8_t bmR } Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP); - Endpoint_ClearSetupReceived(); - Endpoint_ClearSetupIN(); + Endpoint_ClearControlSETUP(); + Endpoint_ClearControlIN(); } }