diff options
Diffstat (limited to 'sound/soc/stm/stm32_sai_sub.c')
| -rw-r--r-- | sound/soc/stm/stm32_sai_sub.c | 18 | 
1 files changed, 10 insertions, 8 deletions
| diff --git a/sound/soc/stm/stm32_sai_sub.c b/sound/soc/stm/stm32_sai_sub.c index 30bcd5d3a32a..10eb4b8e8e7e 100644 --- a/sound/soc/stm/stm32_sai_sub.c +++ b/sound/soc/stm/stm32_sai_sub.c @@ -1543,20 +1543,20 @@ static int stm32_sai_sub_probe(struct platform_device *pdev)  		return ret;  	} -	ret = devm_snd_soc_register_component(&pdev->dev, &stm32_component, -					      &sai->cpu_dai_drv, 1); +	ret = snd_dmaengine_pcm_register(&pdev->dev, conf, 0); +	if (ret) { +		dev_err(&pdev->dev, "Could not register pcm dma\n"); +		return ret; +	} + +	ret = snd_soc_register_component(&pdev->dev, &stm32_component, +					 &sai->cpu_dai_drv, 1);  	if (ret)  		return ret;  	if (STM_SAI_PROTOCOL_IS_SPDIF(sai))  		conf = &stm32_sai_pcm_config_spdif; -	ret = devm_snd_dmaengine_pcm_register(&pdev->dev, conf, 0); -	if (ret) { -		dev_err(&pdev->dev, "Could not register pcm dma\n"); -		return ret; -	} -  	return 0;  } @@ -1565,6 +1565,8 @@ static int stm32_sai_sub_remove(struct platform_device *pdev)  	struct stm32_sai_sub_data *sai = dev_get_drvdata(&pdev->dev);  	clk_unprepare(sai->pdata->pclk); +	snd_dmaengine_pcm_unregister(&pdev->dev); +	snd_soc_unregister_component(&pdev->dev);  	return 0;  } |