On Tue, Aug 20, 2024 at 04:58:30PM +0200, Pierre-Louis Bossart wrote:
On 8/20/24 13:53, Mark Brown wrote:
As far as the regmap core is concerned, yes - with SPI we do wind up with ordering but that's because the SPI sync API is a thin wrapper around the SPI async API rather than anything regmap does.
ok. I am struggling a bit to adjust the plumbing that was obviously defined for SPI.
The regmap async_write() doesn't have any wait, but there's a notifier that needs to be called by *something* that waits. I think the SPI layer has a set of kthreads but in our case we could just rely on a a workqueue after 1ms or something and do the wait then for the DMAs to complete and finally call the notifier to wake-up the regmap stuff.
From the regmap point of view the expectation is that when the caller wants to know that all the I/Os have actually happened it should call regmap_async_complete() which will do the actual blocking. regmap itself won't autonomously wait for anything, it's up to the caller to do that (presumably it will at some point care).