Commit c6aa07ac authored by Binbin Zhou's avatar Binbin Zhou Committed by Ulf Hansson
Browse files

mmc: mxcmmc: Use devm_mmc_alloc_host() helper



Use new function devm_mmc_alloc_host() to simplify the code.

Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Reviewed-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
Signed-off-by: default avatarBinbin Zhou <zhoubinbin@loongson.cn>
Link: https://lore.kernel.org/r/eb21038ebc81bd0ba9dab4843dce57e4f431fac0.1748933789.git.zhoubinbin@loongson.cn


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 2a52d0c7
Loading
Loading
Loading
Loading
+10 −21
Original line number Diff line number Diff line
@@ -1005,23 +1005,21 @@ static int mxcmci_probe(struct platform_device *pdev)
	if (irq < 0)
		return irq;

	mmc = mmc_alloc_host(sizeof(*host), &pdev->dev);
	mmc = devm_mmc_alloc_host(&pdev->dev, sizeof(*host));
	if (!mmc)
		return -ENOMEM;

	host = mmc_priv(mmc);

	host->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
	if (IS_ERR(host->base)) {
		ret = PTR_ERR(host->base);
		goto out_free;
	}
	if (IS_ERR(host->base))
		return PTR_ERR(host->base);

	host->phys_base = res->start;

	ret = mmc_of_parse(mmc);
	if (ret)
		goto out_free;
		return ret;
	mmc->ops = &mxcmci_ops;

	/* For devicetree parsing, the bus width is read from devicetree */
@@ -1054,7 +1052,7 @@ static int mxcmci_probe(struct platform_device *pdev)

	ret = mmc_regulator_get_supply(mmc);
	if (ret)
		goto out_free;
		return ret;

	if (!mmc->ocr_avail) {
		if (pdata && pdata->ocr_avail)
@@ -1070,20 +1068,16 @@ static int mxcmci_probe(struct platform_device *pdev)
		host->default_irq_mask = 0;

	host->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
	if (IS_ERR(host->clk_ipg)) {
		ret = PTR_ERR(host->clk_ipg);
		goto out_free;
	}
	if (IS_ERR(host->clk_ipg))
		return PTR_ERR(host->clk_ipg);

	host->clk_per = devm_clk_get(&pdev->dev, "per");
	if (IS_ERR(host->clk_per)) {
		ret = PTR_ERR(host->clk_per);
		goto out_free;
	}
	if (IS_ERR(host->clk_per))
		return PTR_ERR(host->clk_per);

	ret = clk_prepare_enable(host->clk_per);
	if (ret)
		goto out_free;
		return ret;

	ret = clk_prepare_enable(host->clk_ipg);
	if (ret)
@@ -1169,9 +1163,6 @@ static int mxcmci_probe(struct platform_device *pdev)
out_clk_per_put:
	clk_disable_unprepare(host->clk_per);

out_free:
	mmc_free_host(mmc);

	return ret;
}

@@ -1190,8 +1181,6 @@ static void mxcmci_remove(struct platform_device *pdev)

	clk_disable_unprepare(host->clk_per);
	clk_disable_unprepare(host->clk_ipg);

	mmc_free_host(mmc);
}

static int mxcmci_suspend(struct device *dev)