summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@foss.st.com>2021-11-04 15:13:33 +0100
committerPatrick DELAUNAY <patrick.delaunay@foss.st.com>2021-11-05 11:28:59 +0200
commit216c1223c2c65bd1c119a28b9406f70a9ee7b063 (patch)
tree59d5ed256d00ade4b3f2cd0cf37e64c892bd1ad9 /include
parent025f5ef201a39ba7285f368139e690bbd7a44653 (diff)
downloadarm-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.h2
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 */