Skip to content

Commit

Permalink
usb: dwc3: gadget: combine return points into a single one
Browse files Browse the repository at this point in the history
Upstream Linux commit c0ca324d09a0.

dwc3_send_gadget_ep_cmd() had three return
points. That becomes a pain to track when we need to
debug something or if we need to add more code
before returning.

Let's combine all three return points into a single
one just by introducing a local 'ret' variable.

Signed-off-by: Felipe Balbi <[email protected]>
Signed-off-by: Alexander Sverdlin <[email protected]>
Reviewed-by: Mattijs Korpershoek <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mattijs Korpershoek <[email protected]>
  • Loading branch information
Felipe Balbi authored and makohoek committed May 16, 2024
1 parent 371b379 commit 1339550
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions drivers/usb/dwc3/gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
{
u32 timeout = 500;
u32 reg;
int ret = -EINVAL;

dwc3_writel(dwc->regs, DWC3_DEPCMDPAR0(ep), params->param0);
dwc3_writel(dwc->regs, DWC3_DEPCMDPAR1(ep), params->param1);
Expand All @@ -312,19 +313,24 @@ int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
if (!(reg & DWC3_DEPCMD_CMDACT)) {
dev_vdbg(dwc->dev, "Command Complete --> %d\n",
DWC3_DEPCMD_STATUS(reg));
return 0;
ret = 0;
break;
}

/*
* We can't sleep here, because it is also called from
* interrupt context.
*/
timeout--;
if (!timeout)
return -ETIMEDOUT;
if (!timeout) {
ret = -ETIMEDOUT;
break;
}

udelay(1);
} while (1);

return ret;
}

static dma_addr_t dwc3_trb_dma_offset(struct dwc3_ep *dep,
Expand Down

0 comments on commit 1339550

Please sign in to comment.