}
/* iterate through sgs and compute allocation size of structures */
- for_each_sg(sgl, sg, sg_len, i) {
- if (achan->slave.device_fc) {
+ if (achan->slave.device_fc) {
+ for_each_sg(sgl, sg, sg_len, i) {
box_count += DIV_ROUND_UP(sg_dma_len(sg) / burst,
ADM_MAX_ROWS);
if (sg_dma_len(sg) % burst)
single_count++;
- } else {
- single_count += DIV_ROUND_UP(sg_dma_len(sg),
- ADM_MAX_XFER);
}
+ } else {
+ single_count = sg_nents_for_dma(sgl, sg_len, ADM_MAX_XFER);
}
async_desc = kzalloc(sizeof(*async_desc), GFP_NOWAIT);