Le 22/05/24 - 07:52, Takashi Iwai a écrit :
> On Tue, 21 May 2024 20:32:59 +0200,
> Mark Brown wrote:
> >
> > On Tue, May 21, 2024 at 10:31:12AM +0200, Louis Chauvet wrote:
> >
> > > To address this DMA issue, I have created a patch [1] that guarantees the
> > > completion of the DMA transfer upon the return of xdma_synchronize. This
> > > means xdma_synchronize now sleeps, but looking at other drivers around it
> > > appears expected to be able to do so.
> >
> > You need to set the nonatomic flag for the PCM to allow this, the
> > default is that triggers run in atomic context.
>
> Right, that's a most straightforward solution. It implies that the
> period updates must be in non-atomic, i.e. use a threaded irq handler
> in most cases.
>
> If the synchronization is needed for assuring the hardware stop, there
> is an alternative with PCM sync_stop callback, too. The callback is
> called at each time after a stream gets stopped before the next action
> (that is, either prepare, hw_params or close). It's only for
> stopping, and there is no similar way for sync of a stream start,
> though.
>
>
> thanks,
>
> Takashi
>
Hi!
Thank you for your prompt responses!
I have currently implemented the solution with sync_stop, as it is
precisely what I need to do, and it works perfectly.
As I may need to backport this driver up to 4.19, sync_stop was not yet
available, so I will look into the threaded IRQ solution, which sounds
promising.
Thank you both very much!
Best regards,
Louis Chauvet
--
Louis Chauvet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]