Compare commits

...

3 commits

View file

@ -138,8 +138,9 @@ static void write_configuration_descriptor(int wLength)
{
usb_interface_t const * const *interfaces = usb_configure_interfaces();
size_t total_length = sizeof(usb_dc_configuration_t);
size_t interface_count = 0;
for(int i = 0; interfaces[i]; i++)
for(int i = 0; interfaces[i]; i++, interface_count++)
for(int k = 0; interfaces[i]->dc[k]; k++)
{
uint8_t const *dc = interfaces[i]->dc[k];
@ -149,6 +150,7 @@ static void write_configuration_descriptor(int wLength)
/* Write the configuration descriptor */
dc_configuration.wTotalLength = htole16(total_length);
dc_configuration.bNumInterfaces = interface_count;
dcp_write(&dc_configuration, dc_configuration.bLength);
/* For the first call, the host usually wants only this */
if(wLength <= dc_configuration.bLength) return;