mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
mmc: sunxi: Use devm_mmc_alloc_host() helper
Use new function devm_mmc_alloc_host() to simplify the code. Cc: Chen-Yu Tsai <wens@csie.org> Cc: Jernej Skrabec <jernej.skrabec@gmail.com> Cc: Samuel Holland <samuel@sholland.org> Cc: linux-sunxi@lists.linux.dev Reviewed-by: Huacai Chen <chenhuacai@loongson.cn> Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn> Link: https://lore.kernel.org/r/ee7726b1ea37084258a5d8cec67cad12473152c2.1748933789.git.zhoubinbin@loongson.cn Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
4c2fc69f28
commit
5a8af27596
|
|
@ -1369,11 +1369,10 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
|
|||
struct mmc_host *mmc;
|
||||
int ret;
|
||||
|
||||
mmc = mmc_alloc_host(sizeof(struct sunxi_mmc_host), &pdev->dev);
|
||||
if (!mmc) {
|
||||
dev_err(&pdev->dev, "mmc alloc host failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
mmc = devm_mmc_alloc_host(&pdev->dev, sizeof(*host));
|
||||
if (!mmc)
|
||||
return dev_err_probe(&pdev->dev, -ENOMEM,
|
||||
"mmc alloc host failed\n");
|
||||
platform_set_drvdata(pdev, mmc);
|
||||
|
||||
host = mmc_priv(mmc);
|
||||
|
|
@ -1383,15 +1382,13 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
|
|||
|
||||
ret = sunxi_mmc_resource_request(host, pdev);
|
||||
if (ret)
|
||||
goto error_free_host;
|
||||
return ret;
|
||||
|
||||
host->sg_cpu = dma_alloc_coherent(&pdev->dev, PAGE_SIZE,
|
||||
&host->sg_dma, GFP_KERNEL);
|
||||
if (!host->sg_cpu) {
|
||||
dev_err(&pdev->dev, "Failed to allocate DMA descriptor mem\n");
|
||||
ret = -ENOMEM;
|
||||
goto error_free_host;
|
||||
}
|
||||
if (!host->sg_cpu)
|
||||
return dev_err_probe(&pdev->dev, -ENOMEM,
|
||||
"Failed to allocate DMA descriptor mem\n");
|
||||
|
||||
if (host->cfg->ccu_has_timings_switch) {
|
||||
/*
|
||||
|
|
@ -1481,8 +1478,6 @@ static int sunxi_mmc_probe(struct platform_device *pdev)
|
|||
|
||||
error_free_dma:
|
||||
dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma);
|
||||
error_free_host:
|
||||
mmc_free_host(mmc);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -1498,7 +1493,6 @@ static void sunxi_mmc_remove(struct platform_device *pdev)
|
|||
sunxi_mmc_disable(host);
|
||||
}
|
||||
dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma);
|
||||
mmc_free_host(mmc);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user