diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-11-04 15:13:33 +0100 |
---|---|---|
committer | Patrick DELAUNAY <patrick.delaunay@foss.st.com> | 2021-11-05 11:28:59 +0200 |
commit | 216c1223c2c65bd1c119a28b9406f70a9ee7b063 (patch) | |
tree | 59d5ed256d00ade4b3f2cd0cf37e64c892bd1ad9 /include | |
parent | 025f5ef201a39ba7285f368139e690bbd7a44653 (diff) | |
download | arm-trusted-firmware-216c1223c2c65bd1c119a28b9406f70a9ee7b063.tar.gz |
fix(drivers/usb): add a optional ops get_other_speed_config_desc
Correctly handle USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION request
in USB driver and support a different result than
USB_DESC_TYPE_CONFIGURATION with the new optional ops
get_other_speed_config_desc().
The support of this descriptor is optionnal and is only
required when high-speed capable device which can operate at its
other possible speed.
This patch allows to remove the pbuf update in usb_core_get_desc()
and solves an issue on USB re-enumeration on STM32MP15 platform
as the result of get_config_desc() is a const array.
This issue is not see on normal use-case, as the USB enumeration
is only done in ROM code and TF-A reuse the same USB descritors.
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Change-Id: I8edcc1e45065ab4e45d48f4bc37b49120674fdb0
Diffstat (limited to 'include')
-rw-r--r-- | include/drivers/usb_device.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/drivers/usb_device.h b/include/drivers/usb_device.h index e21e3155d..8fdb6ae13 100644 --- a/include/drivers/usb_device.h +++ b/include/drivers/usb_device.h @@ -166,6 +166,8 @@ struct usb_desc { uint8_t *(*get_usr_desc)(uint8_t index, uint16_t *length); uint8_t *(*get_config_desc)(uint16_t *length); uint8_t *(*get_device_qualifier_desc)(uint16_t *length); + /* optional: high speed capable device operating at its other speed */ + uint8_t *(*get_other_speed_config_desc)(uint16_t *length); }; /* USB Device handle structure */ |