On 10/15/21 1:24 AM, Sameer Pujar wrote: > > > On 10/13/2021 8:00 PM, Pierre-Louis Bossart wrote: >> In preparation for more changes, add two new helpers to gradually >> modify the DPCM locks. >> >> Since DPCM functions are not used from interrupt handlers, we can only >> use the lock_irq case. >> >> While most of the uses of DPCM are internal to soc-pcm.c, some drivers >> in soc/fsl and soc/sh do make use of DPCM-related loops that will >> require protection, adding EXPORT_SYMBOL_GPL() is needed for those >> drivers. >> >> The stream argument is unused in this patch but will be enabled in >> follow-up patches. >> >> Signed-off-by: Pierre-Louis Bossart >> <pierre-louis.bossart@xxxxxxxxxxxxxxx> >> --- >> include/sound/soc-dpcm.h | 3 +++ >> sound/soc/soc-pcm.c | 42 +++++++++++++++++++++++----------------- >> 2 files changed, 27 insertions(+), 18 deletions(-) > > 1. Till this patch and with DEBUG_LOCKDEP config enabled, I see Did you mean "with this patch included", yes? > following warning: > "WARNING: CPU: 0 PID: 0 at kernel/locking/irqflag-debug.c:10 > warn_bogus_irq_restore+0x30/0x40" > > However test passed though. Interestingly it was seen only for the > first time I ran a 2x1 mixer test. > > 2. Also after I load sound modules and card gets registered, I see some > hw_param() calls for FE and BE. This seems harmless at this point, but > is getting problematic with subsequent patches. This was not happening > earier. This patch doesn't change any of the flow, it just adds a wrapper in preparation for the transition to the FE pcm lock. The only change is that we use spin_lock_irq instead of the irqsave/restore version, but that was also Takashi's recommendation. the test results would suggest that on Tegra DPCM functions are used from an interrupt context?