From: Dan Tran <[email protected]>

Populate ss_descriptors to support SuperSpeed connections. DFU is
control-only so no separate SS descriptor set is needed; reuse the
same descriptors across all speeds.

Signed-off-by: Dan Tran <[email protected]>
Signed-off-by: Thinh Nguyen <[email protected]>
---
 Changes in v3:
 - Remove the superspeed descriptor assignment from `dfu_bind`.

 Changes in v2:
 - Removed internal Reviewed-by tags

 drivers/usb/gadget/f_dfu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/gadget/f_dfu.c b/drivers/usb/gadget/f_dfu.c
index ca8b36e077bc..b1bdb865d3d7 100644
--- a/drivers/usb/gadget/f_dfu.c
+++ b/drivers/usb/gadget/f_dfu.c
@@ -227,6 +227,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu)
        f_dfu->usb_function.strings = dfu_strings;
        f_dfu->usb_function.hs_descriptors = f_dfu->function;
        f_dfu->usb_function.descriptors = f_dfu->function;
+       f_dfu->usb_function.ss_descriptors = f_dfu->function;
        f_dfu->dfu_state = DFU_STATE_dfuIDLE;
 }
 
@@ -235,6 +236,7 @@ static inline void to_runtime_mode(struct f_dfu *f_dfu)
        f_dfu->usb_function.strings = NULL;
        f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
        f_dfu->usb_function.descriptors = dfu_runtime_descs;
+       f_dfu->usb_function.ss_descriptors = dfu_runtime_descs;
 }
 
 static int handle_upload(struct usb_request *req, u16 len)
@@ -826,6 +828,7 @@ static int dfu_bind_config(struct usb_configuration *c)
        f_dfu->usb_function.name = "dfu";
        f_dfu->usb_function.hs_descriptors = dfu_runtime_descs;
        f_dfu->usb_function.descriptors = dfu_runtime_descs;
+       f_dfu->usb_function.ss_descriptors = dfu_runtime_descs;
        f_dfu->usb_function.bind = dfu_bind;
        f_dfu->usb_function.unbind = dfu_unbind;
        f_dfu->usb_function.set_alt = dfu_set_alt;
-- 
2.53.0

Reply via email to