Commit a1042a42 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: amd: replace platform to component

Now platform can be replaced to component, let's do it.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: default avatarMukunda,Vijendar <vijendar.mukunda@amd.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 6dea9df8
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
#include <drm/amd_asic_type.h> #include <drm/amd_asic_type.h>
#include "acp.h" #include "acp.h"
#define DRV_NAME "acp_audio_dma"
#define PLAYBACK_MIN_NUM_PERIODS 2 #define PLAYBACK_MIN_NUM_PERIODS 2
#define PLAYBACK_MAX_NUM_PERIODS 2 #define PLAYBACK_MAX_NUM_PERIODS 2
#define PLAYBACK_MAX_PERIOD_SIZE 16384 #define PLAYBACK_MAX_PERIOD_SIZE 16384
...@@ -702,8 +704,8 @@ static int acp_dma_open(struct snd_pcm_substream *substream) ...@@ -702,8 +704,8 @@ static int acp_dma_open(struct snd_pcm_substream *substream)
int ret = 0; int ret = 0;
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_soc_pcm_runtime *prtd = substream->private_data; struct snd_soc_pcm_runtime *prtd = substream->private_data;
struct audio_drv_data *intr_data = dev_get_drvdata(prtd->platform->dev); struct snd_soc_component *component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
struct audio_drv_data *intr_data = dev_get_drvdata(component->dev);
struct audio_substream_data *adata = struct audio_substream_data *adata =
kzalloc(sizeof(struct audio_substream_data), GFP_KERNEL); kzalloc(sizeof(struct audio_substream_data), GFP_KERNEL);
if (adata == NULL) if (adata == NULL)
...@@ -730,7 +732,7 @@ static int acp_dma_open(struct snd_pcm_substream *substream) ...@@ -730,7 +732,7 @@ static int acp_dma_open(struct snd_pcm_substream *substream)
ret = snd_pcm_hw_constraint_integer(runtime, ret = snd_pcm_hw_constraint_integer(runtime,
SNDRV_PCM_HW_PARAM_PERIODS); SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0) { if (ret < 0) {
dev_err(prtd->platform->dev, "set integer constraint failed\n"); dev_err(component->dev, "set integer constraint failed\n");
kfree(adata); kfree(adata);
return ret; return ret;
} }
...@@ -778,7 +780,8 @@ static int acp_dma_hw_params(struct snd_pcm_substream *substream, ...@@ -778,7 +780,8 @@ static int acp_dma_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_runtime *runtime; struct snd_pcm_runtime *runtime;
struct audio_substream_data *rtd; struct audio_substream_data *rtd;
struct snd_soc_pcm_runtime *prtd = substream->private_data; struct snd_soc_pcm_runtime *prtd = substream->private_data;
struct audio_drv_data *adata = dev_get_drvdata(prtd->platform->dev); struct snd_soc_component *component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
struct audio_drv_data *adata = dev_get_drvdata(component->dev);
runtime = substream->runtime; runtime = substream->runtime;
rtd = runtime->private_data; rtd = runtime->private_data;
...@@ -907,6 +910,7 @@ static int acp_dma_trigger(struct snd_pcm_substream *substream, int cmd) ...@@ -907,6 +910,7 @@ static int acp_dma_trigger(struct snd_pcm_substream *substream, int cmd)
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_soc_pcm_runtime *prtd = substream->private_data; struct snd_soc_pcm_runtime *prtd = substream->private_data;
struct audio_substream_data *rtd = runtime->private_data; struct audio_substream_data *rtd = runtime->private_data;
struct snd_soc_component *component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
if (!rtd) if (!rtd)
return -EINVAL; return -EINVAL;
...@@ -924,7 +928,7 @@ static int acp_dma_trigger(struct snd_pcm_substream *substream, int cmd) ...@@ -924,7 +928,7 @@ static int acp_dma_trigger(struct snd_pcm_substream *substream, int cmd)
while (acp_reg_read(rtd->acp_mmio, mmACP_DMA_CH_STS) & while (acp_reg_read(rtd->acp_mmio, mmACP_DMA_CH_STS) &
BIT(SYSRAM_TO_ACP_CH_NUM)) { BIT(SYSRAM_TO_ACP_CH_NUM)) {
if (!loops--) { if (!loops--) {
dev_err(prtd->platform->dev, dev_err(component->dev,
"acp dma start timeout\n"); "acp dma start timeout\n");
return -ETIMEDOUT; return -ETIMEDOUT;
} }
...@@ -970,7 +974,8 @@ static int acp_dma_trigger(struct snd_pcm_substream *substream, int cmd) ...@@ -970,7 +974,8 @@ static int acp_dma_trigger(struct snd_pcm_substream *substream, int cmd)
static int acp_dma_new(struct snd_soc_pcm_runtime *rtd) static int acp_dma_new(struct snd_soc_pcm_runtime *rtd)
{ {
int ret; int ret;
struct audio_drv_data *adata = dev_get_drvdata(rtd->platform->dev); struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
struct audio_drv_data *adata = dev_get_drvdata(component->dev);
switch (adata->asic_type) { switch (adata->asic_type) {
case CHIP_STONEY: case CHIP_STONEY:
...@@ -987,7 +992,7 @@ static int acp_dma_new(struct snd_soc_pcm_runtime *rtd) ...@@ -987,7 +992,7 @@ static int acp_dma_new(struct snd_soc_pcm_runtime *rtd)
break; break;
} }
if (ret < 0) if (ret < 0)
dev_err(rtd->platform->dev, dev_err(component->dev,
"buffer preallocation failer error:%d\n", ret); "buffer preallocation failer error:%d\n", ret);
return ret; return ret;
} }
...@@ -998,7 +1003,8 @@ static int acp_dma_close(struct snd_pcm_substream *substream) ...@@ -998,7 +1003,8 @@ static int acp_dma_close(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct audio_substream_data *rtd = runtime->private_data; struct audio_substream_data *rtd = runtime->private_data;
struct snd_soc_pcm_runtime *prtd = substream->private_data; struct snd_soc_pcm_runtime *prtd = substream->private_data;
struct audio_drv_data *adata = dev_get_drvdata(prtd->platform->dev); struct snd_soc_component *component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
struct audio_drv_data *adata = dev_get_drvdata(component->dev);
kfree(rtd); kfree(rtd);
...@@ -1044,7 +1050,8 @@ static const struct snd_pcm_ops acp_dma_ops = { ...@@ -1044,7 +1050,8 @@ static const struct snd_pcm_ops acp_dma_ops = {
.prepare = acp_dma_prepare, .prepare = acp_dma_prepare,
}; };
static struct snd_soc_platform_driver acp_asoc_platform = { static struct snd_soc_component_driver acp_asoc_platform = {
.name = DRV_NAME,
.ops = &acp_dma_ops, .ops = &acp_dma_ops,
.pcm_new = acp_dma_new, .pcm_new = acp_dma_new,
}; };
...@@ -1102,7 +1109,8 @@ static int acp_audio_probe(struct platform_device *pdev) ...@@ -1102,7 +1109,8 @@ static int acp_audio_probe(struct platform_device *pdev)
return status; return status;
} }
status = snd_soc_register_platform(&pdev->dev, &acp_asoc_platform); status = devm_snd_soc_register_component(&pdev->dev,
&acp_asoc_platform, NULL, 0);
if (status != 0) { if (status != 0) {
dev_err(&pdev->dev, "Fail to register ALSA platform device\n"); dev_err(&pdev->dev, "Fail to register ALSA platform device\n");
return status; return status;
...@@ -1123,7 +1131,6 @@ static int acp_audio_remove(struct platform_device *pdev) ...@@ -1123,7 +1131,6 @@ static int acp_audio_remove(struct platform_device *pdev)
status = acp_deinit(adata->acp_mmio); status = acp_deinit(adata->acp_mmio);
if (status) if (status)
dev_err(&pdev->dev, "ACP Deinit failed status:%d\n", status); dev_err(&pdev->dev, "ACP Deinit failed status:%d\n", status);
snd_soc_unregister_platform(&pdev->dev);
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment