|
|
@@ -145,15 +145,25 @@ static const struct snd_dmaengine_pcm_config ux500_dmaengine_pcm_config = {
|
|
|
.prepare_slave_config = ux500_pcm_prepare_slave_config,
|
|
|
};
|
|
|
|
|
|
+static const struct snd_dmaengine_pcm_config ux500_dmaengine_of_pcm_config = {
|
|
|
+ .compat_request_channel = ux500_pcm_request_chan,
|
|
|
+ .prepare_slave_config = ux500_pcm_prepare_slave_config,
|
|
|
+};
|
|
|
+
|
|
|
int ux500_pcm_register_platform(struct platform_device *pdev)
|
|
|
{
|
|
|
+ const struct snd_dmaengine_pcm_config *pcm_config;
|
|
|
+ struct device_node *np = pdev->dev.of_node;
|
|
|
int ret;
|
|
|
|
|
|
- ret = snd_dmaengine_pcm_register(&pdev->dev,
|
|
|
- &ux500_dmaengine_pcm_config,
|
|
|
- SND_DMAENGINE_PCM_FLAG_NO_RESIDUE |
|
|
|
- SND_DMAENGINE_PCM_FLAG_COMPAT |
|
|
|
- SND_DMAENGINE_PCM_FLAG_NO_DT);
|
|
|
+ if (np)
|
|
|
+ pcm_config = &ux500_dmaengine_of_pcm_config;
|
|
|
+ else
|
|
|
+ pcm_config = &ux500_dmaengine_pcm_config;
|
|
|
+
|
|
|
+ ret = snd_dmaengine_pcm_register(&pdev->dev, pcm_config,
|
|
|
+ SND_DMAENGINE_PCM_FLAG_NO_RESIDUE |
|
|
|
+ SND_DMAENGINE_PCM_FLAG_COMPAT);
|
|
|
if (ret < 0) {
|
|
|
dev_err(&pdev->dev,
|
|
|
"%s: ERROR: Failed to register platform '%s' (%d)!\n",
|