Lines Matching refs:mep
23 static int ep_fifo_alloc(struct mtu3_ep *mep, u32 seg_size) in ep_fifo_alloc() argument
25 struct mtu3_fifo_info *fifo = mep->fifo; in ep_fifo_alloc()
34 mep->fifo_seg_size = num_bits * MTU3_EP_FIFO_UNIT; in ep_fifo_alloc()
35 num_bits = num_bits * (mep->slot + 1); in ep_fifo_alloc()
42 mep->fifo_size = num_bits * MTU3_EP_FIFO_UNIT; in ep_fifo_alloc()
43 mep->fifo_addr = fifo->base + MTU3_EP_FIFO_UNIT * start_bit; in ep_fifo_alloc()
45 dev_dbg(mep->mtu->dev, "%s fifo:%#x/%#x, start_bit: %d\n", in ep_fifo_alloc()
46 __func__, mep->fifo_seg_size, mep->fifo_size, start_bit); in ep_fifo_alloc()
48 return mep->fifo_addr; in ep_fifo_alloc()
51 static void ep_fifo_free(struct mtu3_ep *mep) in ep_fifo_free() argument
53 struct mtu3_fifo_info *fifo = mep->fifo; in ep_fifo_free()
54 u32 addr = mep->fifo_addr; in ep_fifo_free()
55 u32 bits = mep->fifo_size / MTU3_EP_FIFO_UNIT; in ep_fifo_free()
63 mep->fifo_size = 0; in ep_fifo_free()
64 mep->fifo_seg_size = 0; in ep_fifo_free()
66 dev_dbg(mep->mtu->dev, "%s size:%#x/%#x, start_bit: %d\n", in ep_fifo_free()
67 __func__, mep->fifo_seg_size, mep->fifo_size, start_bit); in ep_fifo_free()
206 static void mtu3_ep_reset(struct mtu3_ep *mep) in mtu3_ep_reset() argument
208 struct mtu3 *mtu = mep->mtu; in mtu3_ep_reset()
209 u32 rst_bit = EP_RST(mep->is_in, mep->epnum); in mtu3_ep_reset()
216 void mtu3_ep_stall_set(struct mtu3_ep *mep, bool set) in mtu3_ep_stall_set() argument
218 struct mtu3 *mtu = mep->mtu; in mtu3_ep_stall_set()
220 u8 epnum = mep->epnum; in mtu3_ep_stall_set()
223 if (mep->is_in) { /* TX */ in mtu3_ep_stall_set()
240 mtu3_ep_reset(mep); in mtu3_ep_stall_set()
241 mep->flags &= ~MTU3_EP_STALL; in mtu3_ep_stall_set()
243 mep->flags |= MTU3_EP_STALL; in mtu3_ep_stall_set()
246 dev_dbg(mtu->dev, "%s: %s\n", mep->name, in mtu3_ep_stall_set()
301 int mtu3_config_ep(struct mtu3 *mtu, struct mtu3_ep *mep, in mtu3_config_ep() argument
306 int epnum = mep->epnum; in mtu3_config_ep()
311 fifo_addr = ep_fifo_alloc(mep, mep->maxp); in mtu3_config_ep()
313 dev_err(mtu->dev, "alloc ep fifo failed(%d)\n", mep->maxp); in mtu3_config_ep()
316 fifo_sgsz = ilog2(mep->fifo_seg_size); in mtu3_config_ep()
318 mep->fifo_seg_size, mep->fifo_size); in mtu3_config_ep()
320 if (mep->is_in) { in mtu3_config_ep()
321 csr0 = TX_TXMAXPKTSZ(mep->maxp); in mtu3_config_ep()
325 csr1 = TX_SS_BURST(burst) | TX_SLOT(mep->slot); in mtu3_config_ep()
331 switch (mep->type) { in mtu3_config_ep()
357 csr0 = RX_RXMAXPKTSZ(mep->maxp); in mtu3_config_ep()
361 csr1 = RX_SS_BURST(burst) | RX_SLOT(mep->slot); in mtu3_config_ep()
367 switch (mep->type) { in mtu3_config_ep()
396 __func__, mep->name, mep->fifo_addr, mep->fifo_size, in mtu3_config_ep()
397 fifo_sgsz, mep->fifo_seg_size); in mtu3_config_ep()
403 void mtu3_deconfig_ep(struct mtu3 *mtu, struct mtu3_ep *mep) in mtu3_deconfig_ep() argument
406 int epnum = mep->epnum; in mtu3_deconfig_ep()
408 if (mep->is_in) { in mtu3_deconfig_ep()
420 mtu3_ep_reset(mep); in mtu3_deconfig_ep()
421 ep_fifo_free(mep); in mtu3_deconfig_ep()
423 dev_dbg(mtu->dev, "%s: %s\n", __func__, mep->name); in mtu3_deconfig_ep()
526 struct mtu3_ep *mep = mtu->in_eps + i; in mtu3_mem_alloc() local
528 mep->fifo = &mtu->tx_fifo; in mtu3_mem_alloc()
529 mep = mtu->out_eps + i; in mtu3_mem_alloc()
530 mep->fifo = &mtu->rx_fifo; in mtu3_mem_alloc()