Lines Matching refs:sg_req

317 	struct tegra_dma_sg_req *sg_req;  in tegra_dma_sg_req_get()  local
322 sg_req = list_first_entry(&tdc->free_sg_req, typeof(*sg_req), in tegra_dma_sg_req_get()
324 list_del(&sg_req->node); in tegra_dma_sg_req_get()
326 return sg_req; in tegra_dma_sg_req_get()
330 sg_req = kzalloc(sizeof(*sg_req), GFP_NOWAIT); in tegra_dma_sg_req_get()
332 return sg_req; in tegra_dma_sg_req_get()
440 struct tegra_dma_sg_req *sg_req) in tegra_dma_start() argument
442 struct tegra_dma_channel_regs *ch_regs = &sg_req->ch_regs; in tegra_dma_start()
503 struct tegra_dma_sg_req *sg_req; in tdc_start_head_req() local
505 sg_req = list_first_entry(&tdc->pending_sg_req, typeof(*sg_req), node); in tdc_start_head_req()
506 tegra_dma_start(tdc, sg_req); in tdc_start_head_req()
507 sg_req->configured = true; in tdc_start_head_req()
508 sg_req->words_xferred = 0; in tdc_start_head_req()
526 struct tegra_dma_sg_req *sg_req, in get_current_xferred_count() argument
529 return sg_req->req_len - (status & TEGRA_APBDMA_STATUS_COUNT_MASK) - 4; in get_current_xferred_count()
840 struct tegra_dma_sg_req *sg_req) in tegra_dma_sg_bytes_xferred() argument
844 if (!list_is_first(&sg_req->node, &tdc->pending_sg_req)) in tegra_dma_sg_bytes_xferred()
856 return sg_req->req_len; in tegra_dma_sg_bytes_xferred()
858 wcount = get_current_xferred_count(tdc, sg_req, wcount); in tegra_dma_sg_bytes_xferred()
875 if (sg_req->words_xferred) in tegra_dma_sg_bytes_xferred()
876 wcount = sg_req->req_len - 4; in tegra_dma_sg_bytes_xferred()
878 } else if (wcount < sg_req->words_xferred) { in tegra_dma_sg_bytes_xferred()
890 wcount = sg_req->req_len - 4; in tegra_dma_sg_bytes_xferred()
892 sg_req->words_xferred = wcount; in tegra_dma_sg_bytes_xferred()
904 struct tegra_dma_sg_req *sg_req; in tegra_dma_tx_status() local
925 list_for_each_entry(sg_req, &tdc->pending_sg_req, node) { in tegra_dma_tx_status()
926 dma_desc = sg_req->dma_desc; in tegra_dma_tx_status()
928 bytes = tegra_dma_sg_bytes_xferred(tdc, sg_req); in tegra_dma_tx_status()
1055 struct tegra_dma_sg_req *sg_req = NULL; in tegra_dma_prep_slave_sg() local
1127 sg_req = tegra_dma_sg_req_get(tdc); in tegra_dma_prep_slave_sg()
1128 if (!sg_req) { in tegra_dma_prep_slave_sg()
1137 sg_req->ch_regs.apb_ptr = apb_ptr; in tegra_dma_prep_slave_sg()
1138 sg_req->ch_regs.ahb_ptr = mem; in tegra_dma_prep_slave_sg()
1139 sg_req->ch_regs.csr = csr; in tegra_dma_prep_slave_sg()
1140 tegra_dma_prep_wcount(tdc, &sg_req->ch_regs, len); in tegra_dma_prep_slave_sg()
1141 sg_req->ch_regs.apb_seq = apb_seq; in tegra_dma_prep_slave_sg()
1142 sg_req->ch_regs.ahb_seq = ahb_seq; in tegra_dma_prep_slave_sg()
1143 sg_req->configured = false; in tegra_dma_prep_slave_sg()
1144 sg_req->last_sg = false; in tegra_dma_prep_slave_sg()
1145 sg_req->dma_desc = dma_desc; in tegra_dma_prep_slave_sg()
1146 sg_req->req_len = len; in tegra_dma_prep_slave_sg()
1148 list_add_tail(&sg_req->node, &dma_desc->tx_list); in tegra_dma_prep_slave_sg()
1150 sg_req->last_sg = true; in tegra_dma_prep_slave_sg()
1180 struct tegra_dma_sg_req *sg_req = NULL; in tegra_dma_prep_dma_cyclic() local
1264 sg_req = tegra_dma_sg_req_get(tdc); in tegra_dma_prep_dma_cyclic()
1265 if (!sg_req) { in tegra_dma_prep_dma_cyclic()
1272 sg_req->ch_regs.apb_ptr = apb_ptr; in tegra_dma_prep_dma_cyclic()
1273 sg_req->ch_regs.ahb_ptr = mem; in tegra_dma_prep_dma_cyclic()
1274 sg_req->ch_regs.csr = csr; in tegra_dma_prep_dma_cyclic()
1275 tegra_dma_prep_wcount(tdc, &sg_req->ch_regs, len); in tegra_dma_prep_dma_cyclic()
1276 sg_req->ch_regs.apb_seq = apb_seq; in tegra_dma_prep_dma_cyclic()
1277 sg_req->ch_regs.ahb_seq = ahb_seq; in tegra_dma_prep_dma_cyclic()
1278 sg_req->configured = false; in tegra_dma_prep_dma_cyclic()
1279 sg_req->last_sg = false; in tegra_dma_prep_dma_cyclic()
1280 sg_req->dma_desc = dma_desc; in tegra_dma_prep_dma_cyclic()
1281 sg_req->req_len = len; in tegra_dma_prep_dma_cyclic()
1283 list_add_tail(&sg_req->node, &dma_desc->tx_list); in tegra_dma_prep_dma_cyclic()
1287 sg_req->last_sg = true; in tegra_dma_prep_dma_cyclic()
1322 struct tegra_dma_sg_req *sg_req; in tegra_dma_free_chan_resources() local
1349 sg_req = list_first_entry(&sg_req_list, typeof(*sg_req), node); in tegra_dma_free_chan_resources()
1350 list_del(&sg_req->node); in tegra_dma_free_chan_resources()
1351 kfree(sg_req); in tegra_dma_free_chan_resources()