You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge remote-tracking branch 'asoc/topic/component' into asoc-next
This commit is contained in:
@@ -95,14 +95,6 @@ struct snd_soc_dai_driver;
|
||||
struct snd_soc_dai;
|
||||
struct snd_ac97_bus_ops;
|
||||
|
||||
/* Digital Audio Interface registration */
|
||||
int snd_soc_register_dai(struct device *dev,
|
||||
struct snd_soc_dai_driver *dai_drv);
|
||||
void snd_soc_unregister_dai(struct device *dev);
|
||||
int snd_soc_register_dais(struct device *dev,
|
||||
struct snd_soc_dai_driver *dai_drv, size_t count);
|
||||
void snd_soc_unregister_dais(struct device *dev, size_t count);
|
||||
|
||||
/* Digital Audio Interface clocking API.*/
|
||||
int snd_soc_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id,
|
||||
unsigned int freq, int dir);
|
||||
|
||||
@@ -324,6 +324,8 @@ struct snd_soc_dai_link;
|
||||
struct snd_soc_platform_driver;
|
||||
struct snd_soc_codec;
|
||||
struct snd_soc_codec_driver;
|
||||
struct snd_soc_component;
|
||||
struct snd_soc_component_driver;
|
||||
struct soc_enum;
|
||||
struct snd_soc_jack;
|
||||
struct snd_soc_jack_zone;
|
||||
@@ -377,6 +379,10 @@ int snd_soc_register_codec(struct device *dev,
|
||||
const struct snd_soc_codec_driver *codec_drv,
|
||||
struct snd_soc_dai_driver *dai_drv, int num_dai);
|
||||
void snd_soc_unregister_codec(struct device *dev);
|
||||
int snd_soc_register_component(struct device *dev,
|
||||
const struct snd_soc_component_driver *cmpnt_drv,
|
||||
struct snd_soc_dai_driver *dai_drv, int num_dai);
|
||||
void snd_soc_unregister_component(struct device *dev);
|
||||
int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,
|
||||
unsigned int reg);
|
||||
int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
|
||||
@@ -841,6 +847,20 @@ struct snd_soc_platform {
|
||||
#endif
|
||||
};
|
||||
|
||||
struct snd_soc_component_driver {
|
||||
const char *name;
|
||||
};
|
||||
|
||||
struct snd_soc_component {
|
||||
const char *name;
|
||||
int id;
|
||||
int num_dai;
|
||||
struct device *dev;
|
||||
struct list_head list;
|
||||
|
||||
const struct snd_soc_component_driver *driver;
|
||||
};
|
||||
|
||||
struct snd_soc_dai_link {
|
||||
/* config - must be set by machine driver */
|
||||
const char *name; /* Codec name */
|
||||
|
||||
@@ -750,13 +750,18 @@ static struct snd_soc_dai_driver atmel_ssc_dai = {
|
||||
.ops = &atmel_ssc_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver atmel_ssc_component = {
|
||||
.name = "atmel-ssc",
|
||||
};
|
||||
|
||||
static int asoc_ssc_init(struct device *dev)
|
||||
{
|
||||
struct platform_device *pdev = to_platform_device(dev);
|
||||
struct ssc_device *ssc = platform_get_drvdata(pdev);
|
||||
int ret;
|
||||
|
||||
ret = snd_soc_register_dai(dev, &atmel_ssc_dai);
|
||||
ret = snd_soc_register_component(dev, &atmel_ssc_component,
|
||||
&atmel_ssc_dai, 1);
|
||||
if (ret) {
|
||||
dev_err(dev, "Could not register DAI: %d\n", ret);
|
||||
goto err;
|
||||
@@ -775,7 +780,7 @@ static int asoc_ssc_init(struct device *dev)
|
||||
return 0;
|
||||
|
||||
err_unregister_dai:
|
||||
snd_soc_unregister_dai(dev);
|
||||
snd_soc_unregister_component(dev);
|
||||
err:
|
||||
return ret;
|
||||
}
|
||||
@@ -790,7 +795,7 @@ static void asoc_ssc_exit(struct device *dev)
|
||||
else
|
||||
atmel_pcm_pdc_platform_unregister(dev);
|
||||
|
||||
snd_soc_unregister_dai(dev);
|
||||
snd_soc_unregister_component(dev);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -223,6 +223,10 @@ static struct snd_soc_dai_driver au1xac97c_dai_driver = {
|
||||
.ops = &alchemy_ac97c_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver au1xac97c_component = {
|
||||
.name = "au1xac97c",
|
||||
};
|
||||
|
||||
static int au1xac97c_drvprobe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
@@ -268,7 +272,8 @@ static int au1xac97c_drvprobe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, ctx);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &au1xac97c_dai_driver);
|
||||
ret = snd_soc_register_component(&pdev->dev, &au1xac97c_component,
|
||||
&au1xac97c_dai_driver, 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -280,7 +285,7 @@ static int au1xac97c_drvremove(struct platform_device *pdev)
|
||||
{
|
||||
struct au1xpsc_audio_data *ctx = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
WR(ctx, AC97_ENABLE, EN_D); /* clock off, disable */
|
||||
|
||||
|
||||
@@ -225,6 +225,10 @@ static struct snd_soc_dai_driver au1xi2s_dai_driver = {
|
||||
.ops = &au1xi2s_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver au1xi2s_component = {
|
||||
.name = "au1xi2s",
|
||||
};
|
||||
|
||||
static int au1xi2s_drvprobe(struct platform_device *pdev)
|
||||
{
|
||||
struct resource *iores, *dmares;
|
||||
@@ -260,14 +264,15 @@ static int au1xi2s_drvprobe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, ctx);
|
||||
|
||||
return snd_soc_register_dai(&pdev->dev, &au1xi2s_dai_driver);
|
||||
return snd_soc_register_component(&pdev->dev, &au1xi2s_component,
|
||||
&au1xi2s_dai_driver, 1);
|
||||
}
|
||||
|
||||
static int au1xi2s_drvremove(struct platform_device *pdev)
|
||||
{
|
||||
struct au1xpsc_audio_data *ctx = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
WR(ctx, I2S_ENABLE, EN_D); /* clock off, disable */
|
||||
|
||||
|
||||
@@ -361,6 +361,10 @@ static const struct snd_soc_dai_driver au1xpsc_ac97_dai_template = {
|
||||
.ops = &au1xpsc_ac97_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver au1xpsc_ac97_component = {
|
||||
.name = "au1xpsc-ac97",
|
||||
};
|
||||
|
||||
static int au1xpsc_ac97_drvprobe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
@@ -419,7 +423,8 @@ static int au1xpsc_ac97_drvprobe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, wd);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &wd->dai_drv);
|
||||
ret = snd_soc_register_component(&pdev->dev, &au1xpsc_ac97_component,
|
||||
&wd->dai_drv, 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -431,7 +436,7 @@ static int au1xpsc_ac97_drvremove(struct platform_device *pdev)
|
||||
{
|
||||
struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
/* disable PSC completely */
|
||||
au_writel(0, AC97_CFG(wd));
|
||||
|
||||
@@ -288,6 +288,10 @@ static const struct snd_soc_dai_driver au1xpsc_i2s_dai_template = {
|
||||
.ops = &au1xpsc_i2s_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver au1xpsc_i2s_component = {
|
||||
.name = "au1xpsc-i2s",
|
||||
};
|
||||
|
||||
static int au1xpsc_i2s_drvprobe(struct platform_device *pdev)
|
||||
{
|
||||
struct resource *iores, *dmares;
|
||||
@@ -350,14 +354,15 @@ static int au1xpsc_i2s_drvprobe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, wd);
|
||||
|
||||
return snd_soc_register_dai(&pdev->dev, &wd->dai_drv);
|
||||
return snd_soc_register_component(&pdev->dev, &au1xpsc_i2s_component,
|
||||
&wd->dai_drv, 1);
|
||||
}
|
||||
|
||||
static int au1xpsc_i2s_drvremove(struct platform_device *pdev)
|
||||
{
|
||||
struct au1xpsc_audio_data *wd = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
au_writel(0, I2S_CFG(wd));
|
||||
au_sync();
|
||||
|
||||
@@ -282,6 +282,10 @@ static struct snd_soc_dai_driver bfin_ac97_dai = {
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE, },
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver bfin_ac97_component = {
|
||||
.name = "bfin-ac97",
|
||||
};
|
||||
|
||||
static int asoc_bfin_ac97_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport_handle;
|
||||
@@ -331,7 +335,8 @@ static int asoc_bfin_ac97_probe(struct platform_device *pdev)
|
||||
goto sport_config_err;
|
||||
}
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &bfin_ac97_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &bfin_ac97_component,
|
||||
&bfin_ac97_dai, 1);
|
||||
if (ret) {
|
||||
pr_err("Failed to register DAI: %d\n", ret);
|
||||
goto sport_config_err;
|
||||
@@ -356,7 +361,7 @@ static int asoc_bfin_ac97_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport_handle = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
sport_done(sport_handle);
|
||||
#ifdef CONFIG_SND_BF5XX_HAVE_COLD_RESET
|
||||
gpio_free(CONFIG_SND_BF5XX_RESET_GPIO_NUM);
|
||||
|
||||
@@ -245,6 +245,10 @@ static struct snd_soc_dai_driver bf5xx_i2s_dai = {
|
||||
.ops = &bf5xx_i2s_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver bf5xx_i2s_component = {
|
||||
.name = "bf5xx-i2s",
|
||||
};
|
||||
|
||||
static int bf5xx_i2s_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport_handle;
|
||||
@@ -257,7 +261,8 @@ static int bf5xx_i2s_probe(struct platform_device *pdev)
|
||||
return -ENODEV;
|
||||
|
||||
/* register with the ASoC layers */
|
||||
ret = snd_soc_register_dai(&pdev->dev, &bf5xx_i2s_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &bf5xx_i2s_component,
|
||||
&bf5xx_i2s_dai, 1);
|
||||
if (ret) {
|
||||
pr_err("Failed to register DAI: %d\n", ret);
|
||||
sport_done(sport_handle);
|
||||
@@ -273,7 +278,7 @@ static int bf5xx_i2s_remove(struct platform_device *pdev)
|
||||
|
||||
pr_debug("%s enter\n", __func__);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
sport_done(sport_handle);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -249,6 +249,10 @@ static struct snd_soc_dai_driver bf5xx_tdm_dai = {
|
||||
.ops = &bf5xx_tdm_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver bf5xx_tdm_component = {
|
||||
.name = "bf5xx-tdm",
|
||||
};
|
||||
|
||||
static int bfin_tdm_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport_handle;
|
||||
@@ -282,7 +286,8 @@ static int bfin_tdm_probe(struct platform_device *pdev)
|
||||
goto sport_config_err;
|
||||
}
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &bf5xx_tdm_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &bf5xx_tdm_component,
|
||||
&bf5xx_tdm_dai, 1);
|
||||
if (ret) {
|
||||
pr_err("Failed to register DAI: %d\n", ret);
|
||||
goto sport_config_err;
|
||||
@@ -299,7 +304,7 @@ static int bfin_tdm_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport_handle = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
sport_done(sport_handle);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -186,6 +186,10 @@ static struct snd_soc_dai_driver bfin_i2s_dai = {
|
||||
.ops = &bfin_i2s_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver bfin_i2s_component = {
|
||||
.name = "bfin-i2s",
|
||||
};
|
||||
|
||||
static int bfin_i2s_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport;
|
||||
@@ -197,7 +201,8 @@ static int bfin_i2s_probe(struct platform_device *pdev)
|
||||
return -ENODEV;
|
||||
|
||||
/* register with the ASoC layers */
|
||||
ret = snd_soc_register_dai(dev, &bfin_i2s_dai);
|
||||
ret = snd_soc_register_component(dev, &bfin_i2s_component,
|
||||
&bfin_i2s_dai, 1);
|
||||
if (ret) {
|
||||
dev_err(dev, "Failed to register DAI: %d\n", ret);
|
||||
sport_delete(sport);
|
||||
@@ -212,7 +217,7 @@ static int bfin_i2s_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct sport_device *sport = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
sport_delete(sport);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -353,6 +353,10 @@ static struct snd_soc_dai_driver ep93xx_ac97_dai = {
|
||||
.ops = &ep93xx_ac97_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver ep93xx_ac97_component = {
|
||||
.name = "ep93xx-ac97",
|
||||
};
|
||||
|
||||
static int ep93xx_ac97_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct ep93xx_ac97_info *info;
|
||||
@@ -390,7 +394,8 @@ static int ep93xx_ac97_probe(struct platform_device *pdev)
|
||||
ep93xx_ac97_info = info;
|
||||
platform_set_drvdata(pdev, info);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &ep93xx_ac97_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &ep93xx_ac97_component,
|
||||
&ep93xx_ac97_dai, 1);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
@@ -407,7 +412,7 @@ static int ep93xx_ac97_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct ep93xx_ac97_info *info = platform_get_drvdata(pdev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
/* disable the AC97 controller */
|
||||
ep93xx_ac97_write_reg(info, AC97GCR, 0);
|
||||
|
||||
@@ -366,6 +366,10 @@ static struct snd_soc_dai_driver ep93xx_i2s_dai = {
|
||||
.ops = &ep93xx_i2s_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver ep93xx_i2s_component = {
|
||||
.name = "ep93xx-i2s",
|
||||
};
|
||||
|
||||
static int ep93xx_i2s_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct ep93xx_i2s_info *info;
|
||||
@@ -405,7 +409,8 @@ static int ep93xx_i2s_probe(struct platform_device *pdev)
|
||||
dev_set_drvdata(&pdev->dev, info);
|
||||
info->dma_params = ep93xx_i2s_dma_params;
|
||||
|
||||
err = snd_soc_register_dai(&pdev->dev, &ep93xx_i2s_dai);
|
||||
err = snd_soc_register_component(&pdev->dev, &ep93xx_i2s_component,
|
||||
&ep93xx_i2s_dai, 1);
|
||||
if (err)
|
||||
goto fail_put_lrclk;
|
||||
|
||||
@@ -426,7 +431,7 @@ static int ep93xx_i2s_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct ep93xx_i2s_info *info = dev_get_drvdata(&pdev->dev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
dev_set_drvdata(&pdev->dev, NULL);
|
||||
clk_put(info->lrclk);
|
||||
clk_put(info->sclk);
|
||||
|
||||
@@ -645,6 +645,10 @@ static struct snd_soc_dai_driver davinci_i2s_dai = {
|
||||
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver davinci_i2s_component = {
|
||||
.name = "davinci-i2s",
|
||||
};
|
||||
|
||||
static int davinci_i2s_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct snd_platform_data *pdata = pdev->dev.platform_data;
|
||||
@@ -727,20 +731,21 @@ static int davinci_i2s_probe(struct platform_device *pdev)
|
||||
|
||||
dev_set_drvdata(&pdev->dev, dev);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &davinci_i2s_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &davinci_i2s_component,
|
||||
&davinci_i2s_dai, 1);
|
||||
if (ret != 0)
|
||||
goto err_release_clk;
|
||||
|
||||
ret = davinci_soc_platform_register(&pdev->dev);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "register PCM failed: %d\n", ret);
|
||||
goto err_unregister_dai;
|
||||
goto err_unregister_component;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_unregister_dai:
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
err_unregister_component:
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
err_release_clk:
|
||||
clk_disable(dev->clk);
|
||||
clk_put(dev->clk);
|
||||
@@ -751,7 +756,7 @@ static int davinci_i2s_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct davinci_mcbsp_dev *dev = dev_get_drvdata(&pdev->dev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
davinci_soc_platform_unregister(&pdev->dev);
|
||||
|
||||
clk_disable(dev->clk);
|
||||
|
||||
@@ -962,6 +962,10 @@ static struct snd_soc_dai_driver davinci_mcasp_dai[] = {
|
||||
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver davinci_mcasp_component = {
|
||||
.name = "davinci-mcasp",
|
||||
};
|
||||
|
||||
static const struct of_device_id mcasp_dt_ids[] = {
|
||||
{
|
||||
.compatible = "ti,dm646x-mcasp-audio",
|
||||
@@ -1170,7 +1174,8 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
|
||||
|
||||
dma_data->channel = res->start;
|
||||
dev_set_drvdata(&pdev->dev, dev);
|
||||
ret = snd_soc_register_dai(&pdev->dev, &davinci_mcasp_dai[pdata->op_mode]);
|
||||
ret = snd_soc_register_component(&pdev->dev, &davinci_mcasp_component,
|
||||
&davinci_mcasp_dai[pdata->op_mode], 1);
|
||||
|
||||
if (ret != 0)
|
||||
goto err_release_clk;
|
||||
@@ -1178,13 +1183,13 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
|
||||
ret = davinci_soc_platform_register(&pdev->dev);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "register PCM failed: %d\n", ret);
|
||||
goto err_unregister_dai;
|
||||
goto err_unregister_component;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
err_unregister_dai:
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
err_unregister_component:
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
err_release_clk:
|
||||
pm_runtime_put_sync(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
@@ -1194,7 +1199,7 @@ err_release_clk:
|
||||
static int davinci_mcasp_remove(struct platform_device *pdev)
|
||||
{
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
davinci_soc_platform_unregister(&pdev->dev);
|
||||
|
||||
pm_runtime_put_sync(&pdev->dev);
|
||||
|
||||
@@ -204,6 +204,10 @@ static struct snd_soc_dai_driver davinci_vcif_dai = {
|
||||
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver davinci_vcif_component = {
|
||||
.name = "davinci-vcif",
|
||||
};
|
||||
|
||||
static int davinci_vcif_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct davinci_vc *davinci_vc = pdev->dev.platform_data;
|
||||
@@ -234,7 +238,8 @@ static int davinci_vcif_probe(struct platform_device *pdev)
|
||||
|
||||
dev_set_drvdata(&pdev->dev, davinci_vcif_dev);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &davinci_vcif_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &davinci_vcif_component,
|
||||
&davinci_vcif_dai, 1);
|
||||
if (ret != 0) {
|
||||
dev_err(&pdev->dev, "could not register dai\n");
|
||||
return ret;
|
||||
@@ -243,7 +248,7 @@ static int davinci_vcif_probe(struct platform_device *pdev)
|
||||
ret = davinci_soc_platform_register(&pdev->dev);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "register PCM failed: %d\n", ret);
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -252,7 +257,7 @@ static int davinci_vcif_probe(struct platform_device *pdev)
|
||||
|
||||
static int davinci_vcif_remove(struct platform_device *pdev)
|
||||
{
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
davinci_soc_platform_unregister(&pdev->dev);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -297,6 +297,10 @@ static struct snd_soc_dai_ops dw_i2s_dai_ops = {
|
||||
.trigger = dw_i2s_trigger,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver dw_i2s_component = {
|
||||
.name = "dw-i2s",
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
static int dw_i2s_suspend(struct snd_soc_dai *dai)
|
||||
@@ -413,7 +417,8 @@ static int dw_i2s_probe(struct platform_device *pdev)
|
||||
|
||||
dev->dev = &pdev->dev;
|
||||
dev_set_drvdata(&pdev->dev, dev);
|
||||
ret = snd_soc_register_dai(&pdev->dev, dw_i2s_dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &dw_i2s_component,
|
||||
dw_i2s_dai, 1);
|
||||
if (ret != 0) {
|
||||
dev_err(&pdev->dev, "not able to register dai\n");
|
||||
goto err_set_drvdata;
|
||||
@@ -434,7 +439,7 @@ static int dw_i2s_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct dw_i2s_dev *dev = dev_get_drvdata(&pdev->dev);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
dev_set_drvdata(&pdev->dev, NULL);
|
||||
|
||||
clk_put(dev->clk);
|
||||
|
||||
@@ -574,6 +574,10 @@ static struct snd_soc_dai_driver fsl_ssi_dai_template = {
|
||||
.ops = &fsl_ssi_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver fsl_ssi_component = {
|
||||
.name = "fsl-ssi",
|
||||
};
|
||||
|
||||
/* Show the statistics of a flag only if its interrupt is enabled. The
|
||||
* compiler will optimze this code to a no-op if the interrupt is not
|
||||
* enabled.
|
||||
@@ -782,7 +786,8 @@ static int fsl_ssi_probe(struct platform_device *pdev)
|
||||
/* Register with ASoC */
|
||||
dev_set_drvdata(&pdev->dev, ssi_private);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, &ssi_private->cpu_dai_drv);
|
||||
ret = snd_soc_register_component(&pdev->dev, &fsl_ssi_component,
|
||||
&ssi_private->cpu_dai_drv, 1);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "failed to register DAI: %d\n", ret);
|
||||
goto error_dev;
|
||||
@@ -835,7 +840,7 @@ done:
|
||||
error_dai:
|
||||
if (ssi_private->ssi_on_imx)
|
||||
platform_device_unregister(ssi_private->imx_pcm_pdev);
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
error_dev:
|
||||
dev_set_drvdata(&pdev->dev, NULL);
|
||||
@@ -873,7 +878,7 @@ static int fsl_ssi_remove(struct platform_device *pdev)
|
||||
clk_disable_unprepare(ssi_private->clk);
|
||||
clk_put(ssi_private->clk);
|
||||
}
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
device_remove_file(&pdev->dev, &ssi_private->dev_attr);
|
||||
|
||||
free_irq(ssi_private->irq, ssi_private);
|
||||
|
||||
@@ -413,6 +413,10 @@ static struct snd_soc_dai_driver imx_ac97_dai = {
|
||||
.ops = &imx_ssi_pcm_dai_ops,
|
||||
};
|
||||
|
||||
static const struct snd_soc_component_driver imx_component = {
|
||||
.name = DRV_NAME,
|
||||
};
|
||||
|
||||
static void setup_channel_to_ac97(struct imx_ssi *imx_ssi)
|
||||
{
|
||||
void __iomem *base = imx_ssi->base;
|
||||
@@ -591,7 +595,8 @@ static int imx_ssi_probe(struct platform_device *pdev)
|
||||
|
||||
platform_set_drvdata(pdev, ssi);
|
||||
|
||||
ret = snd_soc_register_dai(&pdev->dev, dai);
|
||||
ret = snd_soc_register_component(&pdev->dev, &imx_component,
|
||||
dai, 1);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "register DAI failed\n");
|
||||
goto failed_register;
|
||||
@@ -632,7 +637,7 @@ failed_pdev_alloc:
|
||||
failed_pdev_fiq_add:
|
||||
platform_device_put(ssi->soc_platform_pdev_fiq);
|
||||
failed_pdev_fiq_alloc:
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
failed_register:
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
failed_get_resource:
|
||||
@@ -650,7 +655,7 @@ static int imx_ssi_remove(struct platform_device *pdev)
|
||||
platform_device_unregister(ssi->soc_platform_pdev);
|
||||
platform_device_unregister(ssi->soc_platform_pdev_fiq);
|
||||
|
||||
snd_soc_unregister_dai(&pdev->dev);
|
||||
snd_soc_unregister_component(&pdev->dev);
|
||||
|
||||
if (ssi->flags & IMX_SSI_USE_AC97)
|
||||
ac97_ssi = NULL;
|
||||
|
||||
@@ -270,6 +270,9 @@ static struct snd_soc_dai_driver psc_ac97_dai[] = {
|
||||
.ops = &psc_ac97_digital_ops,
|
||||
} };
|
||||
|
||||
static const struct snd_soc_component_driver psc_ac97_component = {
|
||||
.name = DRV_NAME,
|
||||
};
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
@@ -287,7 +290,8 @@ static int psc_ac97_of_probe(struct platform_device *op)
|
||||
if (rc != 0)
|
||||
return rc;
|
||||
|
||||
rc = snd_soc_register_dais(&op->dev, psc_ac97_dai, ARRAY_SIZE(psc_ac97_dai));
|
||||
rc = snd_soc_register_component(&op->dev, &psc_ac97_component,
|
||||
psc_ac97_dai, ARRAY_SIZE(psc_ac97_dai));
|
||||
if (rc != 0) {
|
||||
dev_err(&op->dev, "Failed to register DAI\n");
|
||||
return rc;
|
||||
@@ -313,7 +317,7 @@ static int psc_ac97_of_probe(struct platform_device *op)
|
||||
static int psc_ac97_of_remove(struct platform_device *op)
|
||||
{
|
||||
mpc5200_audio_dma_destroy(op);
|
||||
snd_soc_unregister_dais(&op->dev, ARRAY_SIZE(psc_ac97_dai));
|
||||
snd_soc_unregister_component(&op->dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user