Lines Matching refs:unmap
36 do_async_xor(struct dma_chan *chan, struct dmaengine_unmap_data *unmap, in do_async_xor() argument
45 int src_cnt = unmap->to_cnt; in do_async_xor()
47 dma_addr_t dma_dest = unmap->addr[unmap->to_cnt]; in do_async_xor()
48 dma_addr_t *src_list = unmap->addr; in do_async_xor()
76 if (src_list > unmap->addr) in do_async_xor()
79 xor_src_cnt, unmap->len, in do_async_xor()
90 xor_src_cnt, unmap->len, in do_async_xor()
95 dma_set_unmap(tx, unmap); in do_async_xor()
180 struct dmaengine_unmap_data *unmap = NULL; in async_xor() local
185 unmap = dmaengine_get_unmap_data(device->dev, src_cnt+1, GFP_NOIO); in async_xor()
187 if (unmap && is_dma_xor_aligned(device, offset, 0, len)) { in async_xor()
194 unmap->len = len; in async_xor()
198 unmap->to_cnt++; in async_xor()
199 unmap->addr[j++] = dma_map_page(device->dev, src_list[i], in async_xor()
204 unmap->addr[j] = dma_map_page(device->dev, dest, offset, len, in async_xor()
206 unmap->bidi_cnt = 1; in async_xor()
208 tx = do_async_xor(chan, unmap, submit); in async_xor()
209 dmaengine_unmap_put(unmap); in async_xor()
212 dmaengine_unmap_put(unmap); in async_xor()
276 struct dmaengine_unmap_data *unmap = NULL; in async_xor_val() local
281 unmap = dmaengine_get_unmap_data(device->dev, src_cnt, GFP_NOIO); in async_xor_val()
283 if (unmap && src_cnt <= device->max_xor && in async_xor_val()
296 unmap->addr[i] = dma_map_page(device->dev, src_list[i], in async_xor_val()
298 unmap->to_cnt++; in async_xor_val()
300 unmap->len = len; in async_xor_val()
302 tx = device->device_prep_dma_xor_val(chan, unmap->addr, src_cnt, in async_xor_val()
311 unmap->addr, src_cnt, len, result, in async_xor_val()
315 dma_set_unmap(tx, unmap); in async_xor_val()
337 dmaengine_unmap_put(unmap); in async_xor_val()