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

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
...@@ -1105,8 +1105,8 @@ void dwc3_gadget_exit(struct dwc3 *dwc); ...@@ -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, ...@@ -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)
......
...@@ -98,8 +98,7 @@ static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma, ...@@ -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) ...@@ -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;
} }
......
...@@ -238,16 +238,18 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param) ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment