Fixed CDCHost not clearing configured endpoints and resetting configured endpoints...
[pub/USBasp.git] / Demos / Host / CDCHost / ConfigDescriptor.c
index 9a23fc3..29afbfa 100644 (file)
@@ -95,6 +95,14 @@ uint8_t ProcessConfigurationDescriptor(void)
                        }\r
                        else\r
                        {\r
+                               /* Clear the found endpoints mask, since any already processed endpoints aren't in the CDC interface we need */\r
+                               FoundEndpoints = 0;\r
+\r
+                               /* Disable any already configured endpoints from the invalid CDC interfaces */\r
+                               Endpoint_DisableEndpoint(CDC_NOTIFICATIONPIPE);\r
+                               Endpoint_DisableEndpoint(CDC_DATAPIPE_IN);\r
+                               Endpoint_DisableEndpoint(CDC_DATAPIPE_OUT);\r
+                       \r
                                /* Get the next CDC control interface from the configuration descriptor (CDC class has two CDC interfaces) */\r
                                if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData, NextCDCControlInterface))\r
                                {\r