diff options
Diffstat (limited to 'kernel/sound/soc/spear')
-rw-r--r-- | kernel/sound/soc/spear/Kconfig | 2 | ||||
-rw-r--r-- | kernel/sound/soc/spear/spdif_in.c | 20 | ||||
-rw-r--r-- | kernel/sound/soc/spear/spear_pcm.c | 2 |
3 files changed, 7 insertions, 17 deletions
diff --git a/kernel/sound/soc/spear/Kconfig b/kernel/sound/soc/spear/Kconfig index 0a5305349..4fb91412e 100644 --- a/kernel/sound/soc/spear/Kconfig +++ b/kernel/sound/soc/spear/Kconfig @@ -1,6 +1,6 @@ config SND_SPEAR_SOC tristate - select SND_DMAENGINE_PCM + select SND_SOC_GENERIC_DMAENGINE_PCM config SND_SPEAR_SPDIF_OUT tristate diff --git a/kernel/sound/soc/spear/spdif_in.c b/kernel/sound/soc/spear/spdif_in.c index a4028601d..977a078eb 100644 --- a/kernel/sound/soc/spear/spdif_in.c +++ b/kernel/sound/soc/spear/spdif_in.c @@ -203,35 +203,25 @@ static int spdif_in_probe(struct platform_device *pdev) struct spdif_in_dev *host; struct spear_spdif_platform_data *pdata; struct resource *res, *res_fifo; + void __iomem *io_base; int ret; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) - return -EINVAL; + io_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(io_base)) + return PTR_ERR(io_base); res_fifo = platform_get_resource(pdev, IORESOURCE_IO, 0); if (!res_fifo) return -EINVAL; - if (!devm_request_mem_region(&pdev->dev, res->start, - resource_size(res), pdev->name)) { - dev_warn(&pdev->dev, "Failed to get memory resourse\n"); - return -ENOENT; - } - host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); if (!host) { dev_warn(&pdev->dev, "kzalloc fail\n"); return -ENOMEM; } - host->io_base = devm_ioremap(&pdev->dev, res->start, - resource_size(res)); - if (!host->io_base) { - dev_warn(&pdev->dev, "ioremap failed\n"); - return -ENOMEM; - } - + host->io_base = io_base; host->irq = platform_get_irq(pdev, 0); if (host->irq < 0) return -EINVAL; diff --git a/kernel/sound/soc/spear/spear_pcm.c b/kernel/sound/soc/spear/spear_pcm.c index a7dc3c56f..e8476da15 100644 --- a/kernel/sound/soc/spear/spear_pcm.c +++ b/kernel/sound/soc/spear/spear_pcm.c @@ -44,7 +44,7 @@ int devm_spear_pcm_platform_register(struct device *dev, *config = spear_dmaengine_pcm_config; config->compat_filter_fn = filter; - return snd_dmaengine_pcm_register(dev, config, + return devm_snd_dmaengine_pcm_register(dev, config, SND_DMAENGINE_PCM_FLAG_NO_DT | SND_DMAENGINE_PCM_FLAG_COMPAT); } |