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