Thread (12 messages) 12 messages, 3 authors, 2020-10-07

Re: [PATCH v3 2/3] dmaengine: add peripheral configuration

From: Vinod Koul <vkoul@kernel.org>
Date: 2020-10-07 11:28:14
Also in: dmaengine, linux-arm-msm, lkml

Hi Peter,

On 02-10-20, 11:48, Peter Ujfalusi wrote:
It depends which is best for the use case.
I see the metadata useful when you need to send different
metadata/configuration with each transfer.
It can be also useful when you need it seldom, but for your use case and
setup the dma_slave_config extended with

enum dmaengine_peripheral peripheral_type;
void *peripheral_config;

would be a bit more explicit.

I would then deal with the peripheral config in this way:
when the DMA driver's device_config is called, I would take the
parameters and set a flag that the config needs to be processed as it
has changed.
In the next prep_slave_sg() then I would prepare the TREs with the
config and clear the flag that the next transfer does not need the
configuration anymore.

In this way each dmaengine_slave_config() will trigger at the next
prep_slave_sg time configuration update for the peripheral to be
included in the TREs.
The set_config would be internal to the DMA driver, clients just need to
update the configuration when they need to and everything is taken care of.
Ok I am going to drop the dmaengine_peripheral and make
peripheral_config as as you proposed.

So will add following to dma_slave_config:
        void *peripheral_config;

Driver can define the config they would like and use.

We can eventually look at common implementations and try to unify once
we have more users

-- 
~Vinod
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help