Re: [RFD RESEND] dmaengine: add new sleepy alloc descriptor and slave sg APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 02 Mar 2017 10:33:21 Vinod Koul wrote:
> On Fri, Feb 24, 2017 at 11:56:54AM +0100, Lars-Peter Clausen wrote:
> > On 02/24/2017 01:13 AM, Vinod Koul wrote:
> > > There have been discussions on need for change of dmaengine API for
> > > a) allow sleepy invocation of the prepare descriptor so that drivers can
> > > do the runtime pm (maybe move into core as well)
> > > b) split the prepare operation to allocate and new prepare methods
> > > 
> > > TBD: Should the new prepare be atomic or not
> > > TBD: Should we move the pm calls to core
> > > TBA: Documentation and wrappers for these calls
> > 
> > I'm not convinced by this approach. You only know how much memory you need
> > to allocate once you know what the content of the DMA descriptor is. E.g.
> > depending on the length of the transfer the transfer might need to be
> > split into multiple internal segments. So you'd still have to do a alloc
> > operation in the device_desc_prep_slave_sg() callback.
> 
> Yes a good point. One of the things I would like to see here is the split of
> descriptors based on length supported by the device, so driver gets N
> prepare operations.
> 
> > For PM I'd much rather have explicit PM operations which signal intent to
> > use the DMA channel. E.g. dmaengine_channel_pm_{get,put}() or something
> > similar. For audio these could for example be called when the PCM device
> > is opened/closed.
> 
> The PM is merely a trigger here, the aim is broader redesign of the
> DMAengine API as we discussed in KS

I was going to mention that. PM support is needed, but on top of that the 
ability to reuse descriptors would be a good to have by itself.

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux