forked from Minki/linux
ASoC: amd: replace platform to component
Now platform can be replaced to component, let's do it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Tested-by: Mukunda,Vijendar <vijendar.mukunda@amd.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6dea9df84a
commit
a1042a42bc
@ -23,6 +23,8 @@
|
||||
#include <drm/amd_asic_type.h>
|
||||
#include "acp.h"
|
||||
|
||||
#define DRV_NAME "acp_audio_dma"
|
||||
|
||||
#define PLAYBACK_MIN_NUM_PERIODS 2
|
||||
#define PLAYBACK_MAX_NUM_PERIODS 2
|
||||
#define PLAYBACK_MAX_PERIOD_SIZE 16384
|
||||
@ -702,8 +704,8 @@ static int acp_dma_open(struct snd_pcm_substream *substream)
|
||||
int ret = 0;
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
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 =
|
||||
kzalloc(sizeof(struct audio_substream_data), GFP_KERNEL);
|
||||
if (adata == NULL)
|
||||
@ -730,7 +732,7 @@ static int acp_dma_open(struct snd_pcm_substream *substream)
|
||||
ret = snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
if (ret < 0) {
|
||||
dev_err(prtd->platform->dev, "set integer constraint failed\n");
|
||||
dev_err(component->dev, "set integer constraint failed\n");
|
||||
kfree(adata);
|
||||
return ret;
|
||||
}
|
||||
@ -778,7 +780,8 @@ static int acp_dma_hw_params(struct snd_pcm_substream *substream,
|
||||
struct snd_pcm_runtime *runtime;
|
||||
struct audio_substream_data *rtd;
|
||||
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;
|
||||
rtd = runtime->private_data;
|
||||
@ -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_soc_pcm_runtime *prtd = substream->private_data;
|
||||
struct audio_substream_data *rtd = runtime->private_data;
|
||||
struct snd_soc_component *component = snd_soc_rtdcom_lookup(prtd, DRV_NAME);
|
||||
|
||||
if (!rtd)
|
||||
return -EINVAL;
|
||||
@ -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) &
|
||||
BIT(SYSRAM_TO_ACP_CH_NUM)) {
|
||||
if (!loops--) {
|
||||
dev_err(prtd->platform->dev,
|
||||
dev_err(component->dev,
|
||||
"acp dma start timeout\n");
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
@ -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)
|
||||
{
|
||||
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) {
|
||||
case CHIP_STONEY:
|
||||
@ -987,7 +992,7 @@ static int acp_dma_new(struct snd_soc_pcm_runtime *rtd)
|
||||
break;
|
||||
}
|
||||
if (ret < 0)
|
||||
dev_err(rtd->platform->dev,
|
||||
dev_err(component->dev,
|
||||
"buffer preallocation failer error:%d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
@ -998,7 +1003,8 @@ static int acp_dma_close(struct snd_pcm_substream *substream)
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
struct audio_substream_data *rtd = runtime->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);
|
||||
|
||||
@ -1044,7 +1050,8 @@ static const struct snd_pcm_ops acp_dma_ops = {
|
||||
.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,
|
||||
.pcm_new = acp_dma_new,
|
||||
};
|
||||
@ -1102,7 +1109,8 @@ static int acp_audio_probe(struct platform_device *pdev)
|
||||
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) {
|
||||
dev_err(&pdev->dev, "Fail to register ALSA platform device\n");
|
||||
return status;
|
||||
@ -1123,7 +1131,6 @@ static int acp_audio_remove(struct platform_device *pdev)
|
||||
status = acp_deinit(adata->acp_mmio);
|
||||
if (status)
|
||||
dev_err(&pdev->dev, "ACP Deinit failed status:%d\n", status);
|
||||
snd_soc_unregister_platform(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user