From mboxrd@z Thu Jan 1 00:00:00 1970 From: robert.jarzmik@free.fr (Robert Jarzmik) Date: Thu, 05 Apr 2018 08:51:13 +0200 Subject: [PATCH 14/15] ARM: pxa: change SSP devices allocation In-Reply-To: (Arnd Bergmann's message of "Tue, 3 Apr 2018 17:53:25 +0200") References: <20180402142656.26815-1-robert.jarzmik@free.fr> <20180402142656.26815-15-robert.jarzmik@free.fr> <87lge4485x.fsf@belgarion.home> Message-ID: <87zi2i2ljy.fsf@belgarion.home> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Arnd Bergmann writes: > I'm still unable to follow through that code, but I understand now that > the device you pass to dma_request_slave_channel() is not the one > we'd like it to be here. > > Where exactly does that call to dma_request_chan() happen? Is this > the one in dmaengine_pcm_new()? Could we perhaps put a > pointer to the SSP device into snd_dmaengine_dai_dma_data? This is a sample stack I captured with an added WARN_ON(1), triggered by a userland "aplay Sultans_Of_Swing.wav" :) [ 299.216743] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [ 299.223986] [] (show_stack) from [] (dump_stack+0x20/0x28) [ 299.231321] [] (dump_stack) from [] (__warn+0xf0/0x11c) [ 299.238183] [] (__warn) from [] (warn_slowpath_null+0x4c/0x58) [ 299.245234] [] (warn_slowpath_null) from [] (dma_request_chan+0x40/0x228) [ 299.252550] [] (dma_request_chan) from [] (dma_request_slave_channel+0x18/0x24) [ 299.259855] [] (dma_request_slave_channel) from [] (__pxa2xx_pcm_open+0xf4/0x110) [ 299.266789] [] (__pxa2xx_pcm_open) from [] (soc_pcm_open+0xf8/0x9c8) [ 299.273932] [] (soc_pcm_open) from [] (snd_pcm_open_substream+0x9c/0x134) [ 299.281290] [] (snd_pcm_open_substream) from [] (snd_pcm_open+0xbc/0x22c) [ 299.288255] [] (snd_pcm_open) from [] (snd_pcm_playback_open+0x50/0x88) [ 299.295468] [] (snd_pcm_playback_open) from [] (snd_open+0x124/0x144) [ 299.302897] [] (snd_open) from [] (chrdev_open+0x1a0/0x1f0) [ 299.310296] [] (chrdev_open) from [] (do_dentry_open.constprop.0+0x1d4/0x31c) [ 299.317345] [] (do_dentry_open.constprop.0) from [] (vfs_open+0x7c/0x80) [ 299.324597] [] (vfs_open) from [] (path_openat+0xbe8/0xf90) [ 299.332003] [] (path_openat) from [] (do_filp_open+0x80/0xe4) [ 299.339044] [] (do_filp_open) from [] (do_sys_open+0x148/0x1f8) [ 299.346225] [] (do_sys_open) from [] (SyS_open+0x2c/0x30) [ 299.353505] [] (SyS_open) from [] (ret_fast_syscall+0x0/0x28) Cheers. -- Robert