]> git.ipfire.org Git - thirdparty/kernel/stable.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>
Fri, 21 Feb 2025 12:49:43 +0000 (13:49 +0100)
commit 25224c1f07d31c261d04dfbc705a7a0f314a825d upstream.

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 daaf1a62f72664d224932a3ee47c444aa1805695..b30ae3f7e4fc5f1ddbe0bceddf520b8e0f262fef 100644 (file)
@@ -1998,43 +1998,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,