Fixed CDCHost not clearing configured endpoints and resetting configured endpoints mask when a partially enumerated invalid CDC interface is skipped.
This commit is contained in:
parent
32f0f605ef
commit
fabfdd454a
3 changed files with 14 additions and 4 deletions
|
@ -95,6 +95,14 @@ uint8_t ProcessConfigurationDescriptor(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
/* Clear the found endpoints mask, since any already processed endpoints aren't in the CDC interface we need */
|
||||
FoundEndpoints = 0;
|
||||
|
||||
/* Disable any already configured endpoints from the invalid CDC interfaces */
|
||||
Endpoint_DisableEndpoint(CDC_NOTIFICATIONPIPE);
|
||||
Endpoint_DisableEndpoint(CDC_DATAPIPE_IN);
|
||||
Endpoint_DisableEndpoint(CDC_DATAPIPE_OUT);
|
||||
|
||||
/* Get the next CDC control interface from the configuration descriptor (CDC class has two CDC interfaces) */
|
||||
if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData, NextCDCControlInterface))
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue