mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
Match usb endpoint using fullspeed endpoint descriptor to make sure the
wMaxPacketSize for fullspeed descriptors is automatically configured.
Fixes: c52661d60f ("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>
This commit is contained in:
parent
3b99708990
commit
25224c1f07
1 changed files with 13 additions and 17 deletions
|
|
@ -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_status_desc.bEndpointAddress;
|
||||
uasp_cmd_desc.bEndpointAddress = uasp_fs_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_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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue