From 8382f516fb5b62bfc77439d5776fa1c6e45bd2d0 Mon Sep 17 00:00:00 2001 From: Ray Chi Date: Thu, 13 May 2021 13:47:45 +0800 Subject: [PATCH] ANDROID: usb: gadget: f_accessory: update SS/SSP descriptors Currently, only HS descriptors will be updated with endpoint address during binding process. According to current max_speed in configfs, this patch will also update SS/SSP descriptors with endpoint address. Bug: 162562782 Signed-off-by: Ray Chi Change-Id: I67983ef47df7ac567ec1d3af80921c39c98a545d (cherry picked from commit 41fe558317e9ffdc07326e8ef9ca6ea596d9a518) (cherry picked from commit ba3ec687b701c60f3b9336e6549b94ed84d8fe77) --- drivers/usb/gadget/function/f_accessory.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c index 36f775790ed9..3510f6d39f0c 100644 --- a/drivers/usb/gadget/function/f_accessory.c +++ b/drivers/usb/gadget/function/f_accessory.c @@ -1125,12 +1125,22 @@ __acc_function_bind(struct usb_configuration *c, return ret; /* support high speed hardware */ - if (gadget_is_dualspeed(c->cdev->gadget)) { - acc_highspeed_in_desc.bEndpointAddress = - acc_fullspeed_in_desc.bEndpointAddress; - acc_highspeed_out_desc.bEndpointAddress = - acc_fullspeed_out_desc.bEndpointAddress; - } + acc_highspeed_in_desc.bEndpointAddress = + acc_fullspeed_in_desc.bEndpointAddress; + acc_highspeed_out_desc.bEndpointAddress = + acc_fullspeed_out_desc.bEndpointAddress; + + /* support super speed hardware */ + acc_superspeed_in_desc.bEndpointAddress = + acc_fullspeed_in_desc.bEndpointAddress; + acc_superspeed_out_desc.bEndpointAddress = + acc_fullspeed_out_desc.bEndpointAddress; + + /* support super speed plus hardware */ + acc_superspeedplus_in_desc.bEndpointAddress = + acc_fullspeed_in_desc.bEndpointAddress; + acc_superspeedplus_out_desc.bEndpointAddress = + acc_fullspeed_out_desc.bEndpointAddress; DBG(cdev, "%s speed %s: IN/%s, OUT/%s\n", gadget_is_dualspeed(c->cdev->gadget) ? "dual" : "full",