Thread (8 messages) 8 messages, 3 authors, 2018-05-11

[v2,2/2] dmaengine: sprd: Add Spreadtrum DMA configuration

From: Vinod Koul <hidden>
Date: 2018-05-11 12:05:03
Also in: lkml

On 11-05-18, 19:58, Baolin Wang wrote:
On 11 May 2018 at 19:53, Vinod Koul [off-list ref] wrote:
quoted
quoted
quoted
quoted
+/*
+ * struct sprd_dma_config - DMA configuration structure
+ * @cfg: dma slave channel runtime config
+ * @src_addr: the source physical address
+ * @dst_addr: the destination physical address
+ * @block_len: specify one block transfer length
+ * @transcation_len: specify one transcation transfer length
+ * @src_step: source transfer step
+ * @dst_step: destination transfer step
+ * @wrap_ptr: wrap pointer address, once the transfer address reaches the
+ * 'wrap_ptr', the next transfer address will jump to the 'wrap_to' address.
+ * @wrap_to: wrap jump to address
+ * @req_mode: specify the DMA request mode
+ * @int_mode: specify the DMA interrupt type
+ */
+struct sprd_dma_config {
+     struct dma_slave_config cfg;
+     phys_addr_t src_addr;
+     phys_addr_t dst_addr;
these are already in cfg so why duplicate, same for few more here.
We save them in 'struct sprd_dma_config' as one parameter for
sprd_dma_config(), otherwise we need add 2 more parameters (src and
dst) for sprd_dma_config().
I am not sure I follow...

I meant you can use sprd_dma_config.cfg->src_addr/dst_addr and remove src_addr &
dst_addr in the sprd_dma_config. It duplicate..
But we can not set values if dir == DMA_MEM_TO_DEV, since they
represent the device address, right?
sprd_dma_config.cfg->src_addr = sg_dma_address(sg);
Ah right and that is another issue to fix then :) we should not store addresses
you get for prep_ calls. They are supposed to be stored in the descriptor.
Current approach is not correct.

You can get different prepare calls  (i think fixing this will remove 1 sg
limitation).. and use the argument values and store in respective descriptors.
Pls do see the other driver examples..
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help