Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fe886cd authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: dwc3: gadget: single return point on generic commands



Just like we did for endpoint commands, let's use a
single return point for generic commands as
well. This aids readability.

Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 0933df15
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -207,6 +207,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param)
{
	u32		timeout = 500;
	int		ret = 0;
	u32		reg;

	trace_dwc3_gadget_generic_cmd(cmd, param);
@@ -221,22 +222,20 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param)
					"Command Complete --> %d",
					DWC3_DGCMD_STATUS(reg));
			if (DWC3_DGCMD_STATUS(reg))
				return -EINVAL;
			return 0;
				ret = -EINVAL;
			break;
		}

		/*
		 * We can't sleep here, because it's also called from
		 * interrupt context.
		 */
		timeout--;
		udelay(1);
	} while (timeout--);

	if (!timeout) {
		dwc3_trace(trace_dwc3_gadget,
				"Command Timed Out");
			return -ETIMEDOUT;
		ret = -ETIMEDOUT;
	}
		udelay(1);
	} while (1);

	return ret;
}

static int __dwc3_gadget_wakeup(struct dwc3 *dwc);