ASoC: samsung: Specify DMA channel names through custom DMA config 47/199147/3
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Thu, 14 Feb 2019 09:37:41 +0000 (10:37 +0100)
committerSylwester Nawrocki <s.nawrocki@samsung.com>
Mon, 4 Mar 2019 17:05:33 +0000 (18:05 +0100)
This is a part of conversion of Samsung platforms to use the custom DMA
config for specifying DMA channel names, in addition to passing custom
DMA device for the secondary CPU DAI's "PCM" component for some variants
of the I2S controller.

We also don't set the SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME any more
as setting it wouldn't allow to specify DMA channels through the custom
DMA config.

Change-Id: Ia7e4da88746788c6fd56e1781160328bdaa224b8
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/dmaengine.c
sound/soc/samsung/i2s.c
sound/soc/samsung/s3c2412-i2s.c
sound/soc/samsung/s3c24xx-i2s.c

index 84601fa9aa468c5dd26d4fca4f0ee74bd4552959..302871974cb362af95cf71c22004c889948f0e9e 100644 (file)
@@ -28,7 +28,6 @@ int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
                                       const char *tx, const char *rx,
                                       struct device *dma_dev)
 {
-       unsigned int flags = SND_DMAENGINE_PCM_FLAG_COMPAT;
        struct snd_dmaengine_pcm_config *pcm_conf;
 
        pcm_conf = devm_kzalloc(dev, sizeof(*pcm_conf), GFP_KERNEL);
@@ -39,14 +38,11 @@ int samsung_asoc_dma_platform_register(struct device *dev, dma_filter_fn filter,
        pcm_conf->compat_filter_fn = filter;
        pcm_conf->dma_dev = dma_dev;
 
-       if (dev->of_node) {
-               pcm_conf->chan_names[SNDRV_PCM_STREAM_PLAYBACK] = tx;
-               pcm_conf->chan_names[SNDRV_PCM_STREAM_CAPTURE] = rx;
-       } else {
-               flags |= SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME;
-       }
+       pcm_conf->chan_names[SNDRV_PCM_STREAM_PLAYBACK] = tx;
+       pcm_conf->chan_names[SNDRV_PCM_STREAM_CAPTURE] = rx;
 
-       return devm_snd_dmaengine_pcm_register(dev, pcm_conf, flags);
+       return devm_snd_dmaengine_pcm_register(dev, pcm_conf,
+                               SND_DMAENGINE_PCM_FLAG_COMPAT);
 }
 EXPORT_SYMBOL_GPL(samsung_asoc_dma_platform_register);
 
index 766a04933d092476430706d488804697d5d4a329..c446e073eb1249a73d998a1fbfaaaae9d9db825c 100644 (file)
@@ -1459,7 +1459,7 @@ static int samsung_i2s_probe(struct platform_device *pdev)
                pri_dai->drv->playback.channels_max = 6;
 
        ret = samsung_asoc_dma_platform_register(&pdev->dev, pri_dai->filter,
-                                                NULL, NULL, NULL);
+                                                "tx", "rx", NULL);
        if (ret < 0)
                goto err_disable_clk;
 
index 67dfa27ae321e499497a217268afc2b55b9e53fd..c08638b0e458350e847955e67fdd312f510e3dde 100644 (file)
@@ -177,7 +177,7 @@ static int s3c2412_iis_dev_probe(struct platform_device *pdev)
 
        ret = samsung_asoc_dma_platform_register(&pdev->dev,
                                                 pdata->dma_filter,
-                                                NULL, NULL, NULL);
+                                                "tx", "rx", NULL);
        if (ret) {
                pr_err("failed to register the DMA: %d\n", ret);
                return ret;
index ba0f2b94f8d4c0824b4f749391dde375265d2b64..a8026b640c9512d5a34c4f555a78d9d500c910be 100644 (file)
@@ -446,7 +446,7 @@ static int s3c24xx_iis_dev_probe(struct platform_device *pdev)
        s3c24xx_i2s_pcm_stereo_in.addr = res->start + S3C2410_IISFIFO;
 
        ret = samsung_asoc_dma_platform_register(&pdev->dev, NULL,
-                                                NULL, NULL, NULL);
+                                                "tx", "rx", NULL);
        if (ret) {
                dev_err(&pdev->dev, "Failed to register the DMA: %d\n", ret);
                return ret;