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

Commit 2cd4718d authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: dwc3: gadget: pass dep as argument to endpoint command



In all call sites of dwc3_send_gadget_ep_cmd() we
already had a valid dep pointer, so instead of
passing dwc and dep->number, which would be used to
fetch the same pointer we already had, just pass dep
directly.

In other words, we're changing:

	struct dwc3_ep *dep = dwc[dep->number];

to just passing struct dwc3_ep *dep as argument.

Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 4e99472b
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -1105,8 +1105,8 @@ void dwc3_gadget_exit(struct dwc3 *dwc);
int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode);
int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode);
int dwc3_gadget_get_link_state(struct dwc3 *dwc);
int dwc3_gadget_get_link_state(struct dwc3 *dwc);
int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state);
int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state);
int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
		unsigned cmd, struct dwc3_gadget_ep_cmd_params *params);
		struct dwc3_gadget_ep_cmd_params *params);
int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param);
int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param);
#else
#else
static inline int dwc3_gadget_init(struct dwc3 *dwc)
static inline int dwc3_gadget_init(struct dwc3 *dwc)
@@ -1121,8 +1121,8 @@ static inline int dwc3_gadget_set_link_state(struct dwc3 *dwc,
		enum dwc3_link_state state)
		enum dwc3_link_state state)
{ return 0; }
{ return 0; }


static inline int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
static inline int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
		unsigned cmd, struct dwc3_gadget_ep_cmd_params *params)
		struct dwc3_gadget_ep_cmd_params *params)
{ return 0; }
{ return 0; }
static inline int dwc3_send_gadget_generic_command(struct dwc3 *dwc,
static inline int dwc3_send_gadget_generic_command(struct dwc3 *dwc,
		int cmd, u32 param)
		int cmd, u32 param)
+2 −3
Original line number Original line Diff line number Diff line
@@ -98,8 +98,7 @@ static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma,


	trace_dwc3_prepare_trb(dep, trb);
	trace_dwc3_prepare_trb(dep, trb);


	ret = dwc3_send_gadget_ep_cmd(dwc, dep->number,
	ret = dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_STARTTRANSFER, &params);
			DWC3_DEPCMD_STARTTRANSFER, &params);
	if (ret < 0) {
	if (ret < 0) {
		dwc3_trace(trace_dwc3_ep0, "%s STARTTRANSFER failed",
		dwc3_trace(trace_dwc3_ep0, "%s STARTTRANSFER failed",
				dep->name);
				dep->name);
@@ -1058,7 +1057,7 @@ static void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
	cmd |= DWC3_DEPCMD_CMDIOC;
	cmd |= DWC3_DEPCMD_CMDIOC;
	cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
	cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
	memset(&params, 0, sizeof(params));
	memset(&params, 0, sizeof(params));
	ret = dwc3_send_gadget_ep_cmd(dwc, dep->number, cmd, &params);
	ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
	WARN_ON_ONCE(ret);
	WARN_ON_ONCE(ret);
	dep->resource_index = 0;
	dep->resource_index = 0;
}
}
+15 −13
Original line number Original line Diff line number Diff line
@@ -238,16 +238,18 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param)


static int __dwc3_gadget_wakeup(struct dwc3 *dwc);
static int __dwc3_gadget_wakeup(struct dwc3 *dwc);


int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
		unsigned cmd, struct dwc3_gadget_ep_cmd_params *params)
		struct dwc3_gadget_ep_cmd_params *params)
{
{
	struct dwc3_ep		*dep = dwc->eps[ep];
	struct dwc3		*dwc = dep->dwc;
	u32			timeout = 500;
	u32			timeout = 500;
	u32			reg;
	u32			reg;


	int			susphy = false;
	int			susphy = false;
	int			ret = -EINVAL;
	int			ret = -EINVAL;


	unsigned		ep = dep->number;

	trace_dwc3_gadget_ep_cmd(dep, cmd, params);
	trace_dwc3_gadget_ep_cmd(dep, cmd, params);


	/*
	/*
@@ -364,7 +366,7 @@ static int dwc3_send_clear_stall_ep_cmd(struct dwc3_ep *dep)


	memset(&params, 0, sizeof(params));
	memset(&params, 0, sizeof(params));


	return dwc3_send_gadget_ep_cmd(dwc, dep->number, cmd, &params);
	return dwc3_send_gadget_ep_cmd(dep, cmd, &params);
}
}


static dma_addr_t dwc3_trb_dma_offset(struct dwc3_ep *dep,
static dma_addr_t dwc3_trb_dma_offset(struct dwc3_ep *dep,
@@ -452,7 +454,7 @@ static int dwc3_gadget_start_config(struct dwc3 *dwc, struct dwc3_ep *dep)
	memset(&params, 0x00, sizeof(params));
	memset(&params, 0x00, sizeof(params));
	cmd = DWC3_DEPCMD_DEPSTARTCFG;
	cmd = DWC3_DEPCMD_DEPSTARTCFG;


	ret = dwc3_send_gadget_ep_cmd(dwc, 0, cmd, &params);
	ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
	if (ret)
	if (ret)
		return ret;
		return ret;


@@ -528,8 +530,7 @@ static int dwc3_gadget_set_ep_config(struct dwc3 *dwc, struct dwc3_ep *dep,
		dep->interval = 1 << (desc->bInterval - 1);
		dep->interval = 1 << (desc->bInterval - 1);
	}
	}


	return dwc3_send_gadget_ep_cmd(dwc, dep->number,
	return dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETEPCONFIG, &params);
			DWC3_DEPCMD_SETEPCONFIG, &params);
}
}


static int dwc3_gadget_set_xfer_resource(struct dwc3 *dwc, struct dwc3_ep *dep)
static int dwc3_gadget_set_xfer_resource(struct dwc3 *dwc, struct dwc3_ep *dep)
@@ -540,8 +541,8 @@ static int dwc3_gadget_set_xfer_resource(struct dwc3 *dwc, struct dwc3_ep *dep)


	params.param0 = DWC3_DEPXFERCFG_NUM_XFER_RES(1);
	params.param0 = DWC3_DEPXFERCFG_NUM_XFER_RES(1);


	return dwc3_send_gadget_ep_cmd(dwc, dep->number,
	return dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETTRANSFRESOURCE,
			DWC3_DEPCMD_SETTRANSFRESOURCE, &params);
			&params);
}
}


/**
/**
@@ -1008,7 +1009,7 @@ static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep, u16 cmd_param)
	}
	}


	cmd |= DWC3_DEPCMD_PARAM(cmd_param);
	cmd |= DWC3_DEPCMD_PARAM(cmd_param);
	ret = dwc3_send_gadget_ep_cmd(dwc, dep->number, cmd, &params);
	ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
	if (ret < 0) {
	if (ret < 0) {
		/*
		/*
		 * FIXME we need to iterate over the list of requests
		 * FIXME we need to iterate over the list of requests
@@ -1311,14 +1312,15 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol)
			return -EAGAIN;
			return -EAGAIN;
		}
		}


		ret = dwc3_send_gadget_ep_cmd(dwc, dep->number,
		ret = dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_SETSTALL,
			DWC3_DEPCMD_SETSTALL, &params);
				&params);
		if (ret)
		if (ret)
			dev_err(dwc->dev, "failed to set STALL on %s\n",
			dev_err(dwc->dev, "failed to set STALL on %s\n",
					dep->name);
					dep->name);
		else
		else
			dep->flags |= DWC3_EP_STALL;
			dep->flags |= DWC3_EP_STALL;
	} else {
	} else {

		ret = dwc3_send_clear_stall_ep_cmd(dep);
		ret = dwc3_send_clear_stall_ep_cmd(dep);
		if (ret)
		if (ret)
			dev_err(dwc->dev, "failed to clear STALL on %s\n",
			dev_err(dwc->dev, "failed to clear STALL on %s\n",
@@ -2271,7 +2273,7 @@ static void dwc3_stop_active_transfer(struct dwc3 *dwc, u32 epnum, bool force)
	cmd |= DWC3_DEPCMD_CMDIOC;
	cmd |= DWC3_DEPCMD_CMDIOC;
	cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
	cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
	memset(&params, 0, sizeof(params));
	memset(&params, 0, sizeof(params));
	ret = dwc3_send_gadget_ep_cmd(dwc, dep->number, cmd, &params);
	ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
	WARN_ON_ONCE(ret);
	WARN_ON_ONCE(ret);
	dep->resource_index = 0;
	dep->resource_index = 0;
	dep->flags &= ~DWC3_EP_BUSY;
	dep->flags &= ~DWC3_EP_BUSY;