]> www.infradead.org Git - users/hch/misc.git/commitdiff
usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Wed, 11 Dec 2024 00:32:01 +0000 (00:32 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Dec 2024 07:56:06 +0000 (08:56 +0100)
Match usb endpoint using fullspeed endpoint descriptor to make sure the
wMaxPacketSize for fullspeed descriptors is automatically configured.

Fixes: c52661d60f63 ("usb-gadget: Initial merge of target module for UASP + BOT")
Cc: stable@vger.kernel.org
Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/e4507bc824aed6e7c7f5a718392ab6a7c1480a7f.1733876548.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_tcm.c

index f996878e1aeaf9f9203cd307af34798214c41aac..b35e0446d467c2f698fa3db25035f59da62b457c 100644 (file)
@@ -1966,43 +1966,39 @@ static int tcm_bind(struct usb_configuration *c, struct usb_function *f)
        bot_intf_desc.bInterfaceNumber = iface;
        uasp_intf_desc.bInterfaceNumber = iface;
        fu->iface = iface;
-       ep = usb_ep_autoconfig_ss(gadget, &uasp_ss_bi_desc,
-                       &uasp_bi_ep_comp_desc);
+       ep = usb_ep_autoconfig(gadget, &uasp_fs_bi_desc);
        if (!ep)
                goto ep_fail;
 
        fu->ep_in = ep;
 
-       ep = usb_ep_autoconfig_ss(gadget, &uasp_ss_bo_desc,
-                       &uasp_bo_ep_comp_desc);
+       ep = usb_ep_autoconfig(gadget, &uasp_fs_bo_desc);
        if (!ep)
                goto ep_fail;
        fu->ep_out = ep;
 
-       ep = usb_ep_autoconfig_ss(gadget, &uasp_ss_status_desc,
-                       &uasp_status_in_ep_comp_desc);
+       ep = usb_ep_autoconfig(gadget, &uasp_fs_status_desc);
        if (!ep)
                goto ep_fail;
        fu->ep_status = ep;
 
-       ep = usb_ep_autoconfig_ss(gadget, &uasp_ss_cmd_desc,
-                       &uasp_cmd_comp_desc);
+       ep = usb_ep_autoconfig(gadget, &uasp_fs_cmd_desc);
        if (!ep)
                goto ep_fail;
        fu->ep_cmd = ep;
 
        /* Assume endpoint addresses are the same for both speeds */
-       uasp_bi_desc.bEndpointAddress = uasp_ss_bi_desc.bEndpointAddress;
-       uasp_bo_desc.bEndpointAddress = uasp_ss_bo_desc.bEndpointAddress;
+       uasp_bi_desc.bEndpointAddress = uasp_fs_bi_desc.bEndpointAddress;
+       uasp_bo_desc.bEndpointAddress = uasp_fs_bo_desc.bEndpointAddress;
        uasp_status_desc.bEndpointAddress =
-               uasp_ss_status_desc.bEndpointAddress;
-       uasp_cmd_desc.bEndpointAddress = uasp_ss_cmd_desc.bEndpointAddress;
-
-       uasp_fs_bi_desc.bEndpointAddress = uasp_ss_bi_desc.bEndpointAddress;
-       uasp_fs_bo_desc.bEndpointAddress = uasp_ss_bo_desc.bEndpointAddress;
-       uasp_fs_status_desc.bEndpointAddress =
-               uasp_ss_status_desc.bEndpointAddress;
-       uasp_fs_cmd_desc.bEndpointAddress = uasp_ss_cmd_desc.bEndpointAddress;
+               uasp_fs_status_desc.bEndpointAddress;
+       uasp_cmd_desc.bEndpointAddress = uasp_fs_cmd_desc.bEndpointAddress;
+
+       uasp_ss_bi_desc.bEndpointAddress = uasp_fs_bi_desc.bEndpointAddress;
+       uasp_ss_bo_desc.bEndpointAddress = uasp_fs_bo_desc.bEndpointAddress;
+       uasp_ss_status_desc.bEndpointAddress =
+               uasp_fs_status_desc.bEndpointAddress;
+       uasp_ss_cmd_desc.bEndpointAddress = uasp_fs_cmd_desc.bEndpointAddress;
 
        ret = usb_assign_descriptors(f, uasp_fs_function_desc,
                        uasp_hs_function_desc, uasp_ss_function_desc,