[01/22] ASoC: dmaengine: Improve of_node test in dmaengine_pcm_request_chan_of()
diff mbox series

Message ID 20190207170028.720-2-s.nawrocki@samsung.com
State Accepted
Commit 51256d348c9af1bf544a4432abc1d5f2fd3ef34b
Headers show
Series
  • [01/22] ASoC: dmaengine: Improve of_node test in dmaengine_pcm_request_chan_of()
Related show

Commit Message

Sylwester Nawrocki Feb. 7, 2019, 5 p.m. UTC
Currently when of_node of the "PCM" device is null
dmaengine_pcm_request_chan_of() function will bail out, including cases
when custom DMA device is intended to be used.  To have the channels
properly requested when custom DMA device is provided extend the of_node
test to also consider dma_dev->of_node.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
---
 sound/soc/soc-generic-dmaengine-pcm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Krzysztof Kozlowski Feb. 11, 2019, 1:29 p.m. UTC | #1
On Thu, 7 Feb 2019 at 18:00, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote:
>
> Currently when of_node of the "PCM" device is null
> dmaengine_pcm_request_chan_of() function will bail out, including cases
> when custom DMA device is intended to be used.  To have the channels
> properly requested when custom DMA device is provided extend the of_node
> test to also consider dma_dev->of_node.
>
> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
> ---
>  sound/soc/soc-generic-dmaengine-pcm.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Acked-by: Krzysztof Kozlowski <krzk@kernel.org>

Best regards,
Krzysztof

Patch
diff mbox series

diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
index 30e791a53352..6d7638c1233d 100644
--- a/sound/soc/soc-generic-dmaengine-pcm.c
+++ b/sound/soc/soc-generic-dmaengine-pcm.c
@@ -415,7 +415,8 @@  static int dmaengine_pcm_request_chan_of(struct dmaengine_pcm *pcm,
 
 	if ((pcm->flags & (SND_DMAENGINE_PCM_FLAG_NO_DT |
 			   SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME)) ||
-	    !dev->of_node)
+	     (!dev->of_node && !(config && config->dma_dev &&
+				config->dma_dev->of_node)))
 		return 0;
 
 	if (config && config->dma_dev) {