• Home
  • Raw
  • Download

Lines Matching refs:rx

84 static void cppi_reset_rx(struct cppi_rx_stateram __iomem *rx)  in cppi_reset_rx()  argument
86 musb_writel(&rx->rx_skipbytes, 0, 0); in cppi_reset_rx()
87 musb_writel(&rx->rx_head, 0, 0); in cppi_reset_rx()
88 musb_writel(&rx->rx_sop, 0, 0); in cppi_reset_rx()
89 musb_writel(&rx->rx_current, 0, 0); in cppi_reset_rx()
90 musb_writel(&rx->rx_buf_current, 0, 0); in cppi_reset_rx()
91 musb_writel(&rx->rx_len_len, 0, 0); in cppi_reset_rx()
92 musb_writel(&rx->rx_cnt_cnt, 0, 0); in cppi_reset_rx()
163 for (i = 0; i < ARRAY_SIZE(controller->rx); i++) { in cppi_controller_start()
164 controller->rx[i].transmit = false; in cppi_controller_start()
165 controller->rx[i].index = i; in cppi_controller_start()
171 for (i = 0; i < ARRAY_SIZE(controller->rx); i++) in cppi_controller_start()
172 cppi_pool_init(controller, controller->rx + i); in cppi_controller_start()
188 for (i = 0; i < ARRAY_SIZE(controller->rx); i++) { in cppi_controller_start()
189 struct cppi_channel *rx_ch = controller->rx + i; in cppi_controller_start()
190 struct cppi_rx_stateram __iomem *rx; in cppi_controller_start() local
194 rx = tibase + DAVINCI_RXCPPI_STATERAM_OFFSET(i); in cppi_controller_start()
195 rx_ch->state_ram = rx; in cppi_controller_start()
196 cppi_reset_rx(rx); in cppi_controller_start()
241 for (i = 0; i < ARRAY_SIZE(controller->rx); i++) in cppi_controller_stop()
242 cppi_pool_free(controller->rx + i); in cppi_controller_stop()
305 if (index >= ARRAY_SIZE(controller->rx)) { in cppi_channel_allocate()
309 cppi_ch = controller->rx + index; in cppi_channel_allocate()
353 struct cppi_rx_stateram __iomem *rx = c->state_ram; in cppi_dump_rx() local
367 musb_readl(&rx->rx_skipbytes, 0), in cppi_dump_rx()
368 musb_readl(&rx->rx_head, 0), in cppi_dump_rx()
369 musb_readl(&rx->rx_sop, 0), in cppi_dump_rx()
370 musb_readl(&rx->rx_current, 0), in cppi_dump_rx()
372 musb_readl(&rx->rx_buf_current, 0), in cppi_dump_rx()
373 musb_readl(&rx->rx_len_len, 0), in cppi_dump_rx()
374 musb_readl(&rx->rx_cnt_cnt, 0), in cppi_dump_rx()
375 musb_readl(&rx->rx_complete, 0) in cppi_dump_rx()
438 static void cppi_dump_rxq(int level, const char *tag, struct cppi_channel *rx) in cppi_dump_rxq() argument
442 cppi_dump_rx(level, rx, tag); in cppi_dump_rxq()
443 if (rx->last_processed) in cppi_dump_rxq()
444 cppi_dump_rxbd("last", rx->last_processed); in cppi_dump_rxq()
445 for (bd = rx->head; bd; bd = bd->next) in cppi_dump_rxq()
453 static inline int cppi_autoreq_update(struct cppi_channel *rx, in cppi_autoreq_update() argument
464 val = tmp & ~((0x3) << (rx->index * 2)); in cppi_autoreq_update()
472 val |= ((0x3) << (rx->index * 2)); in cppi_autoreq_update()
476 val |= ((0x1) << (rx->index * 2)); in cppi_autoreq_update()
495 if (n_bds && rx->channel.actual_len) { in cppi_autoreq_update()
496 void __iomem *regs = rx->hw_ep->regs; in cppi_autoreq_update()
761 cppi_next_rx_segment(struct musb *musb, struct cppi_channel *rx, int onepacket) in cppi_next_rx_segment() argument
763 unsigned maxpacket = rx->maxpacket; in cppi_next_rx_segment()
764 dma_addr_t addr = rx->buf_dma + rx->offset; in cppi_next_rx_segment()
765 size_t length = rx->buf_len - rx->offset; in cppi_next_rx_segment()
771 struct cppi_rx_stateram __iomem *rx_ram = rx->state_ram; in cppi_next_rx_segment()
810 n_bds = cppi_autoreq_update(rx, tibase, onepacket, n_bds); in cppi_next_rx_segment()
812 cppi_rndis_update(rx, 1, musb->ctrl_base, is_rndis); in cppi_next_rx_segment()
818 rx->index, maxpacket, in cppi_next_rx_segment()
824 DAVINCI_RXCPPI_BUFCNT0_REG + (rx->index * 4)) in cppi_next_rx_segment()
827 rx->channel.actual_len, rx->buf_len); in cppi_next_rx_segment()
832 bd = cppi_bd_alloc(rx); in cppi_next_rx_segment()
833 rx->head = bd; in cppi_next_rx_segment()
840 bd = cppi_bd_alloc(rx); in cppi_next_rx_segment()
856 rx->offset += bd_len; in cppi_next_rx_segment()
867 WARNING("rx dma%d -- no BDs? need %d\n", rx->index, n_bds); in cppi_next_rx_segment()
870 WARNING("rx dma%d -- only %d of %d BDs\n", rx->index, i, n_bds); in cppi_next_rx_segment()
875 bd = rx->head; in cppi_next_rx_segment()
876 rx->tail = tail; in cppi_next_rx_segment()
886 for (d = rx->head; d; d = d->next) in cppi_next_rx_segment()
890 tail = rx->last_processed; in cppi_next_rx_segment()
896 core_rxirq_enable(tibase, rx->index + 1); in cppi_next_rx_segment()
911 DAVINCI_RXCPPI_BUFCNT0_REG + (rx->index * 4)) in cppi_next_rx_segment()
916 DAVINCI_RXCPPI_BUFCNT0_REG + (rx->index * 4), in cppi_next_rx_segment()
920 DAVINCI_RXCPPI_BUFCNT0_REG + (rx->index * 4), in cppi_next_rx_segment()
924 DAVINCI_RXCPPI_BUFCNT0_REG + (rx->index * 4)) in cppi_next_rx_segment()
928 rx->index, i, n_bds); in cppi_next_rx_segment()
930 DAVINCI_RXCPPI_BUFCNT0_REG + (rx->index * 4), in cppi_next_rx_segment()
934 cppi_dump_rx(4, rx, "/S"); in cppi_next_rx_segment()
1004 struct cppi_channel *rx = &cppi->rx[ch]; in cppi_rx_scan() local
1005 struct cppi_rx_stateram __iomem *state = rx->state_ram; in cppi_rx_scan()
1007 struct cppi_descriptor *last = rx->last_processed; in cppi_rx_scan()
1012 void __iomem *regs = rx->hw_ep->regs; in cppi_rx_scan()
1015 cppi_dump_rx(6, rx, "/K"); in cppi_rx_scan()
1017 bd = last ? last->next : rx->head; in cppi_rx_scan()
1036 rx->channel.actual_len); in cppi_rx_scan()
1056 rx->channel.actual_len); in cppi_rx_scan()
1075 rx->channel.actual_len += len; in cppi_rx_scan()
1077 cppi_bd_free(rx, last); in cppi_rx_scan()
1084 rx->last_processed = last; in cppi_rx_scan()
1090 if (safe2ack == 0 || safe2ack == rx->last_processed->dma) in cppi_rx_scan()
1093 cppi_bd_free(rx, last); in cppi_rx_scan()
1094 rx->last_processed = NULL; in cppi_rx_scan()
1099 WARN_ON(rx->head); in cppi_rx_scan()
1101 musb_ep_select(cppi->mregs, rx->index + 1); in cppi_rx_scan()
1105 rx->index, in cppi_rx_scan()
1106 rx->head, rx->tail, in cppi_rx_scan()
1107 rx->last_processed in cppi_rx_scan()
1109 rx->last_processed->dma in cppi_rx_scan()
1113 cppi_dump_rxq(4, "/what?", rx); in cppi_rx_scan()
1119 rx->head = bd; in cppi_rx_scan()
1124 csr = musb_readw(rx->hw_ep->regs, MUSB_RXCSR); in cppi_rx_scan()
1131 csr = musb_readw(rx->hw_ep->regs, MUSB_RXCSR); in cppi_rx_scan()
1134 rx->head = NULL; in cppi_rx_scan()
1135 rx->tail = NULL; in cppi_rx_scan()
1138 cppi_dump_rx(6, rx, completed ? "/completed" : "/cleaned"); in cppi_rx_scan()
1148 u32 rx, tx; in cppi_interrupt() local
1159 rx = musb_readl(tibase, DAVINCI_RXCPPI_MASKED_REG); in cppi_interrupt()
1161 if (!tx && !rx) { in cppi_interrupt()
1167 dev_dbg(musb->controller, "CPPI IRQ Tx%x Rx%x\n", tx, rx); in cppi_interrupt()
1260 for (index = 0; rx; rx = rx >> 1, index++) { in cppi_interrupt()
1262 if (rx & 1) { in cppi_interrupt()
1265 rx_ch = cppi->rx + index; in cppi_interrupt()