Lines Matching defs:dmarx

271 	struct pl011_dmarx_data dmarx;
478 uap->dmarx.chan = chan;
480 uap->dmarx.auto_poll_rate = false;
484 uap->dmarx.auto_poll_rate = false;
485 uap->dmarx.poll_rate = plat->dma_rx_poll_rate;
492 uap->dmarx.auto_poll_rate = true;
493 uap->dmarx.poll_rate = 100;
497 uap->dmarx.poll_timeout =
500 uap->dmarx.poll_timeout = 3000;
502 uap->dmarx.auto_poll_rate = of_property_read_bool(
504 if (uap->dmarx.auto_poll_rate) {
509 uap->dmarx.poll_rate = x;
511 uap->dmarx.poll_rate = 100;
514 uap->dmarx.poll_timeout = x;
516 uap->dmarx.poll_timeout = 3000;
520 dma_chan_name(uap->dmarx.chan));
528 if (uap->dmarx.chan)
529 dma_release_channel(uap->dmarx.chan);
823 struct dma_chan *rxchan = uap->dmarx.chan;
824 struct pl011_dmarx_data *dmarx = &uap->dmarx;
832 dbuf = uap->dmarx.use_buf_b ?
833 &uap->dmarx.dbuf_b : &uap->dmarx.dbuf_a;
843 uap->dmarx.running = false;
851 dmarx->cookie = dmaengine_submit(desc);
856 uap->dmarx.running = true;
875 &uap->dmarx.dbuf_b : &uap->dmarx.dbuf_a;
879 struct pl011_dmarx_data *dmarx = &uap->dmarx;
882 if (uap->dmarx.poll_rate) {
884 dmataken = dbuf->len - dmarx->last_residue;
908 if (uap->dmarx.poll_rate)
909 dmarx->last_residue = dbuf->len;
942 struct pl011_dmarx_data *dmarx = &uap->dmarx;
943 struct dma_chan *rxchan = dmarx->chan;
944 struct pl011_dmabuf *dbuf = dmarx->use_buf_b ?
945 &dmarx->dbuf_b : &dmarx->dbuf_a;
958 dmarx->cookie, &state);
965 uap->dmarx.running = false;
976 pl011_dma_rx_chars(uap, pending, dmarx->use_buf_b, true);
979 dmarx->use_buf_b = !dmarx->use_buf_b;
991 struct pl011_dmarx_data *dmarx = &uap->dmarx;
992 struct dma_chan *rxchan = dmarx->chan;
993 bool lastbuf = dmarx->use_buf_b;
994 struct pl011_dmabuf *dbuf = dmarx->use_buf_b ?
995 &dmarx->dbuf_b : &dmarx->dbuf_a;
1012 rxchan->device->device_tx_status(rxchan, dmarx->cookie, &state);
1018 uap->dmarx.running = false;
1019 dmarx->use_buf_b = !lastbuf;
1058 struct uart_amba_port *uap = from_timer(uap, t, dmarx.timer);
1060 struct pl011_dmarx_data *dmarx = &uap->dmarx;
1061 struct dma_chan *rxchan = uap->dmarx.chan;
1069 dbuf = dmarx->use_buf_b ? &uap->dmarx.dbuf_b : &uap->dmarx.dbuf_a;
1070 rxchan->device->device_tx_status(rxchan, dmarx->cookie, &state);
1071 if (likely(state.residue < dmarx->last_residue)) {
1072 dmataken = dbuf->len - dmarx->last_residue;
1073 size = dmarx->last_residue - state.residue;
1077 dmarx->last_residue = state.residue;
1078 dmarx->last_jiffies = jiffies;
1086 if (jiffies_to_msecs(jiffies - dmarx->last_jiffies)
1087 > uap->dmarx.poll_timeout) {
1095 uap->dmarx.running = false;
1097 del_timer(&uap->dmarx.timer);
1099 mod_timer(&uap->dmarx.timer,
1100 jiffies + msecs_to_jiffies(uap->dmarx.poll_rate));
1127 if (!uap->dmarx.chan)
1131 ret = pl011_dmabuf_init(uap->dmarx.chan, &uap->dmarx.dbuf_a,
1139 ret = pl011_dmabuf_init(uap->dmarx.chan, &uap->dmarx.dbuf_b,
1144 pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_a,
1169 if (uap->dmarx.poll_rate) {
1170 timer_setup(&uap->dmarx.timer, pl011_dma_rx_poll, 0);
1171 mod_timer(&uap->dmarx.timer,
1173 msecs_to_jiffies(uap->dmarx.poll_rate));
1174 uap->dmarx.last_residue = PL011_DMA_BUFFER_SIZE;
1175 uap->dmarx.last_jiffies = jiffies;
1209 dmaengine_terminate_all(uap->dmarx.chan);
1211 pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_a, DMA_FROM_DEVICE);
1212 pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_b, DMA_FROM_DEVICE);
1213 if (uap->dmarx.poll_rate)
1214 del_timer_sync(&uap->dmarx.timer);
1226 return uap->using_rx_dma && uap->dmarx.running;
1438 if (uap->dmarx.poll_rate) {
1439 uap->dmarx.last_jiffies = jiffies;
1440 uap->dmarx.last_residue = PL011_DMA_BUFFER_SIZE;
1441 mod_timer(&uap->dmarx.timer,
1443 msecs_to_jiffies(uap->dmarx.poll_rate));
2064 if (uap->dmarx.auto_poll_rate)
2065 uap->dmarx.poll_rate = DIV_ROUND_UP(10000000, baud);