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

From: Peter Ujfalusi
Date: Wed Oct 07 2020 - 07:49:47 EST


Hi Vinod,

On 07/10/2020 14.28, Vinod Koul wrote:
> 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

Sound good to me!

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki