mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-18 06:08:31 +03:00
Fixed change usb config bug
In the standard atmel lib only one configuration was possible. On a GETDESCRIPTOR request the board would always return the full buffer with both configurations. The USB driver requests each configuration one after another, using the configuration index number. The atmel lib did not support more than one USB configuration.
This commit is contained in:
@@ -146,7 +146,7 @@ void AUDDSpeakerDriver_ConfigurationChangeHandler(uint8_t cfgnum)
|
||||
if (USBD_HAL_IsHighSpeed() && pDescriptors->pHsConfiguration)
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pHsConfiguration;
|
||||
else
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration;
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration[0];
|
||||
|
||||
AUDDSpeakerPhone_ParseInterfaces(pAudf,
|
||||
(USBGenericDescriptor*)pDesc,
|
||||
|
||||
@@ -301,7 +301,7 @@ void AUDDSpeakerPhoneDriver_ConfigurationChangeHandler(uint8_t cfgnum)
|
||||
if (USBD_HAL_IsHighSpeed() && pDescriptors->pHsConfiguration)
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pHsConfiguration;
|
||||
else
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration;
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration[0];
|
||||
|
||||
USBGenericDescriptor_Parse((USBGenericDescriptor*)pDesc, pDesc->wTotalLength,
|
||||
(USBDescriptorParseFunction)AUDDSpeakerPhone_Parse, pAudd);
|
||||
|
||||
@@ -92,7 +92,7 @@ static void SetConfiguration(USBDDriver *pDriver, uint8_t cfgnum)
|
||||
}
|
||||
else {
|
||||
|
||||
pConfiguration = pDriver->pDescriptors->pFsConfiguration;
|
||||
pConfiguration = pDriver->pDescriptors->pFsConfiguration[0];
|
||||
}
|
||||
|
||||
/* Set & save the desired configuration */
|
||||
@@ -154,7 +154,7 @@ static void GetDeviceStatus(const USBDDriver *pDriver)
|
||||
}
|
||||
else {
|
||||
|
||||
pConfiguration = pDriver->pDescriptors->pFsConfiguration;
|
||||
pConfiguration = pDriver->pDescriptors->pFsConfiguration[0];
|
||||
}
|
||||
|
||||
/* Check current configuration for power mode (if device is configured) */
|
||||
@@ -242,7 +242,7 @@ static void GetDescriptor(
|
||||
|
||||
TRACE_DEBUG("%s", "FS ");
|
||||
pDevice = pDriver->pDescriptors->pFsDevice;
|
||||
pConfiguration = pDriver->pDescriptors->pFsConfiguration;
|
||||
pConfiguration = pDriver->pDescriptors->pFsConfiguration[indexRDesc];
|
||||
pQualifier = pDriver->pDescriptors->pFsQualifier;
|
||||
pOtherSpeed = pDriver->pDescriptors->pFsOtherSpeed;
|
||||
}
|
||||
@@ -477,7 +477,7 @@ USBConfigurationDescriptor *USBDDriver_GetCfgDescriptors(
|
||||
if (USBD_HAL_IsHighSpeed() && pDescList->pHsConfiguration)
|
||||
pCfg = (USBConfigurationDescriptor *)pDescList->pHsConfiguration;
|
||||
else
|
||||
pCfg = (USBConfigurationDescriptor *)pDescList->pFsConfiguration;
|
||||
pCfg = (USBConfigurationDescriptor *)pDescList->pFsConfiguration[0];
|
||||
|
||||
return pCfg;
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ void HIDDKeyboardDriver_ConfigurationChangedHandler(uint8_t cfgnum)
|
||||
if (USBD_HAL_IsHighSpeed() && pDescriptors->pHsConfiguration)
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pHsConfiguration;
|
||||
else
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration;
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration[0];
|
||||
HIDDKeyboard_ConfigureFunction((USBGenericDescriptor*)pDesc,
|
||||
pDesc->wTotalLength);
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ static uint8_t HIDDTransferDriver_GetDescriptor(uint8_t type,
|
||||
else {
|
||||
|
||||
pConfiguration =
|
||||
pHidd->pUsbd->pDescriptors->pFsConfiguration;
|
||||
pHidd->pUsbd->pDescriptors->pFsConfiguration[0];
|
||||
}
|
||||
|
||||
/* Parse the device configuration to get the HID descriptor */
|
||||
@@ -280,7 +280,7 @@ void HIDDTransferDriver_ConfigurationChangedHandler(uint8_t cfgnum)
|
||||
if (USBD_HAL_IsHighSpeed() && pDescriptors->pHsConfiguration)
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pHsConfiguration;
|
||||
else
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration;
|
||||
pDesc = (USBConfigurationDescriptor*)pDescriptors->pFsConfiguration[0];
|
||||
HIDDFunction_ParseInterface(pHidd,
|
||||
(USBGenericDescriptor*)pDesc,
|
||||
pDesc->wTotalLength);
|
||||
|
||||
Reference in New Issue
Block a user