just so we can start using a more solid endpoint
matching system.

Signed-off-by: Felipe Balbi <ba...@ti.com>
---
 drivers/usb/dwc3/gadget.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 5452c0f..d687c3a 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1655,6 +1655,18 @@ static int dwc3_gadget_init_hw_endpoints(struct dwc3 
*dwc,
                if (epnum == 0 || epnum == 1) {
                        dep->endpoint.maxpacket = 512;
                        dep->endpoint.maxburst = 1;
+                       dep->endpoint.has_control = true;
+
+                       /*
+                        * REVISIT here we lie a bit to gadget framework,
+                        * because gadget framework expects to see a single
+                        * USB Endpoint zero, and we want the driver to manage
+                        * HW endpoints, we must tell gadget framework that
+                        * HW Endpoint zero supports both directions.
+                        */
+                       dep->endpoint.has_dir_in = true;
+                       dep->endpoint.has_dir_out = true;
+
                        dep->endpoint.ops = &dwc3_gadget_ep0_ops;
                        if (!epnum)
                                dwc->gadget.ep0 = &dep->endpoint;
@@ -1663,6 +1675,13 @@ static int dwc3_gadget_init_hw_endpoints(struct dwc3 
*dwc,
 
                        dep->endpoint.maxpacket = 1024;
                        dep->endpoint.max_streams = 15;
+
+                       dep->endpoint.has_bulk = true;
+                       dep->endpoint.has_interrupt = true;
+                       dep->endpoint.has_isochronous = true;
+                       dep->endpoint.has_dir_in = !!direction;
+                       dep->endpoint.has_dir_out = !direction;
+
                        dep->endpoint.ops = &dwc3_gadget_ep_ops;
                        list_add_tail(&dep->endpoint.ep_list,
                                        &dwc->gadget.ep_list);
-- 
1.8.4.1.559.gdb9bdfb

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to