]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - drivers/usb/dwc3/gadget.c
usb: dwc3: gadget: check for lack of TRBs a bit earlier
[mirror_ubuntu-hirsute-kernel.git] / drivers / usb / dwc3 / gadget.c
index f064f1549333dcd7dab10fd491e43cf31bac887e..a943f6e00fe1a3e332bf1aa015ec9d7ee7a77b9f 100644 (file)
@@ -1151,9 +1151,6 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep)
 
        BUILD_BUG_ON_NOT_POWER_OF_2(DWC3_TRB_NUM);
 
-       if (!dwc3_calc_trbs_left(dep))
-               return;
-
        /*
         * We can get in a situation where there's a request in the started list
         * but there weren't enough TRBs to fully kick it in the first time
@@ -1202,6 +1199,9 @@ static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep, u16 cmd_param)
        int                             ret;
        u32                             cmd;
 
+       if (!dwc3_calc_trbs_left(dep))
+               return 0;
+
        starting = !(dep->flags & DWC3_EP_BUSY);
 
        dwc3_prepare_trbs(dep);