Commit 0c9f110574bdde21ac62b948272a90f6e72b94d8

Authored by Mark Brown
1 parent 8858d21891

ASoC: Complete initialisation before registering Samsung PCM DAI

Otherwise there's a race where the DAI might get used without everything
having been set up.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>

Showing 1 changed file with 6 additions and 6 deletions Side-by-side Diff

sound/soc/samsung/pcm.c
... ... @@ -570,12 +570,6 @@
570 570 }
571 571 clk_enable(pcm->pclk);
572 572  
573   - ret = snd_soc_register_dai(&pdev->dev, &s3c_pcm_dai[pdev->id]);
574   - if (ret != 0) {
575   - dev_err(&pdev->dev, "failed to get pcm_clock\n");
576   - goto err5;
577   - }
578   -
579 573 s3c_pcm_stereo_in[pdev->id].dma_addr = mem_res->start
580 574 + S3C_PCM_RXFIFO;
581 575 s3c_pcm_stereo_out[pdev->id].dma_addr = mem_res->start
... ... @@ -586,6 +580,12 @@
586 580  
587 581 pcm->dma_capture = &s3c_pcm_stereo_in[pdev->id];
588 582 pcm->dma_playback = &s3c_pcm_stereo_out[pdev->id];
  583 +
  584 + ret = snd_soc_register_dai(&pdev->dev, &s3c_pcm_dai[pdev->id]);
  585 + if (ret != 0) {
  586 + dev_err(&pdev->dev, "failed to get register DAI: %d\n", ret);
  587 + goto err5;
  588 + }
589 589  
590 590 return 0;
591 591