dma40: combine duplicated code in log_sg_to_dev
Acked-by: Per Forlin <per.forlin@stericsson.com> Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
committed by
Dan Williams
parent
1c4b0927fe
commit
e24b36bdf8
@@ -385,40 +385,34 @@ int d40_log_sg_to_dev(struct scatterlist *sg,
|
|||||||
struct d40_log_lli *lli_dst = lli->dst;
|
struct d40_log_lli *lli_dst = lli->dst;
|
||||||
|
|
||||||
for_each_sg(sg, current_sg, sg_len, i) {
|
for_each_sg(sg, current_sg, sg_len, i) {
|
||||||
total_size += sg_dma_len(current_sg);
|
dma_addr_t sg_addr = sg_dma_address(current_sg);
|
||||||
|
unsigned int len = sg_dma_len(current_sg);
|
||||||
|
dma_addr_t src;
|
||||||
|
dma_addr_t dst;
|
||||||
|
|
||||||
|
total_size += len;
|
||||||
|
|
||||||
if (direction == DMA_TO_DEVICE) {
|
if (direction == DMA_TO_DEVICE) {
|
||||||
lli_src =
|
src = sg_addr;
|
||||||
d40_log_buf_to_lli(lli_src,
|
dst = dev_addr;
|
||||||
sg_dma_address(current_sg),
|
|
||||||
sg_dma_len(current_sg),
|
|
||||||
lcsp->lcsp1, src_data_width,
|
|
||||||
dst_data_width,
|
|
||||||
true);
|
|
||||||
lli_dst =
|
|
||||||
d40_log_buf_to_lli(lli_dst,
|
|
||||||
dev_addr,
|
|
||||||
sg_dma_len(current_sg),
|
|
||||||
lcsp->lcsp3, dst_data_width,
|
|
||||||
src_data_width,
|
|
||||||
false);
|
|
||||||
} else {
|
} else {
|
||||||
lli_dst =
|
src = dev_addr;
|
||||||
d40_log_buf_to_lli(lli_dst,
|
dst = sg_addr;
|
||||||
sg_dma_address(current_sg),
|
|
||||||
sg_dma_len(current_sg),
|
|
||||||
lcsp->lcsp3, dst_data_width,
|
|
||||||
src_data_width,
|
|
||||||
true);
|
|
||||||
lli_src =
|
|
||||||
d40_log_buf_to_lli(lli_src,
|
|
||||||
dev_addr,
|
|
||||||
sg_dma_len(current_sg),
|
|
||||||
lcsp->lcsp1, src_data_width,
|
|
||||||
dst_data_width,
|
|
||||||
false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lli_src = d40_log_buf_to_lli(lli_src, src, len,
|
||||||
|
lcsp->lcsp1,
|
||||||
|
src_data_width,
|
||||||
|
dst_data_width,
|
||||||
|
src == sg_addr);
|
||||||
|
|
||||||
|
lli_dst = d40_log_buf_to_lli(lli_dst, dst, len,
|
||||||
|
lcsp->lcsp3,
|
||||||
|
dst_data_width,
|
||||||
|
src_data_width,
|
||||||
|
dst == sg_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return total_size;
|
return total_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user