Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1d0cd47 authored by Jingoo Han's avatar Jingoo Han Committed by Mark Brown
Browse files

spi: mpc512x: Use devm_*() functions



Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 6ce4eac1
Loading
Loading
Loading
Loading
+5 −13
Original line number Original line Diff line number Diff line
@@ -504,7 +504,7 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
	master->cleanup = mpc512x_psc_spi_cleanup;
	master->cleanup = mpc512x_psc_spi_cleanup;
	master->dev.of_node = dev->of_node;
	master->dev.of_node = dev->of_node;


	tempp = ioremap(regaddr, size);
	tempp = devm_ioremap(dev, regaddr, size);
	if (!tempp) {
	if (!tempp) {
		dev_err(dev, "could not ioremap I/O port range\n");
		dev_err(dev, "could not ioremap I/O port range\n");
		ret = -EFAULT;
		ret = -EFAULT;
@@ -513,8 +513,7 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
	mps->psc = tempp;
	mps->psc = tempp;
	mps->fifo =
	mps->fifo =
		(struct mpc512x_psc_fifo *)(tempp + sizeof(struct mpc52xx_psc));
		(struct mpc512x_psc_fifo *)(tempp + sizeof(struct mpc52xx_psc));

	ret = devm_request_irq(dev, mps->irq, mpc512x_psc_spi_isr, IRQF_SHARED,
	ret = request_irq(mps->irq, mpc512x_psc_spi_isr, IRQF_SHARED,
				"mpc512x-psc-spi", mps);
				"mpc512x-psc-spi", mps);
	if (ret)
	if (ret)
		goto free_master;
		goto free_master;
@@ -525,11 +524,11 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,
	clk = devm_clk_get(dev, clk_name);
	clk = devm_clk_get(dev, clk_name);
	if (IS_ERR(clk)) {
	if (IS_ERR(clk)) {
		ret = PTR_ERR(clk);
		ret = PTR_ERR(clk);
		goto free_irq;
		goto free_master;
	}
	}
	ret = clk_prepare_enable(clk);
	ret = clk_prepare_enable(clk);
	if (ret)
	if (ret)
		goto free_irq;
		goto free_master;
	mps->clk_mclk = clk;
	mps->clk_mclk = clk;
	mps->mclk_rate = clk_get_rate(clk);
	mps->mclk_rate = clk_get_rate(clk);


@@ -545,11 +544,7 @@ static int mpc512x_psc_spi_do_probe(struct device *dev, u32 regaddr,


free_clock:
free_clock:
	clk_disable_unprepare(mps->clk_mclk);
	clk_disable_unprepare(mps->clk_mclk);
free_irq:
	free_irq(mps->irq, mps);
free_master:
free_master:
	if (mps->psc)
		iounmap(mps->psc);
	spi_master_put(master);
	spi_master_put(master);


	return ret;
	return ret;
@@ -561,9 +556,6 @@ static int mpc512x_psc_spi_do_remove(struct device *dev)
	struct mpc512x_psc_spi *mps = spi_master_get_devdata(master);
	struct mpc512x_psc_spi *mps = spi_master_get_devdata(master);


	clk_disable_unprepare(mps->clk_mclk);
	clk_disable_unprepare(mps->clk_mclk);
	free_irq(mps->irq, mps);
	if (mps->psc)
		iounmap(mps->psc);


	return 0;
	return 0;
}
}