Commit fcb4ed74 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Mark Brown
Browse files

spi: rspi: Add missing clk_disable() calls in error and cleanup paths

parent 13ea3300
Loading
Loading
Loading
Loading
+7 −4
Original line number Original line Diff line number Diff line
@@ -925,6 +925,7 @@ static int rspi_remove(struct platform_device *pdev)
	struct rspi_data *rspi = platform_get_drvdata(pdev);
	struct rspi_data *rspi = platform_get_drvdata(pdev);


	rspi_release_dma(rspi);
	rspi_release_dma(rspi);
	clk_disable(rspi->clk);


	return 0;
	return 0;
}
}
@@ -999,28 +1000,30 @@ static int rspi_probe(struct platform_device *pdev)
			       dev_name(&pdev->dev), rspi);
			       dev_name(&pdev->dev), rspi);
	if (ret < 0) {
	if (ret < 0) {
		dev_err(&pdev->dev, "request_irq error\n");
		dev_err(&pdev->dev, "request_irq error\n");
		goto error1;
		goto error2;
	}
	}


	rspi->irq = irq;
	rspi->irq = irq;
	ret = rspi_request_dma(rspi, pdev);
	ret = rspi_request_dma(rspi, pdev);
	if (ret < 0) {
	if (ret < 0) {
		dev_err(&pdev->dev, "rspi_request_dma failed.\n");
		dev_err(&pdev->dev, "rspi_request_dma failed.\n");
		goto error2;
		goto error3;
	}
	}


	ret = devm_spi_register_master(&pdev->dev, master);
	ret = devm_spi_register_master(&pdev->dev, master);
	if (ret < 0) {
	if (ret < 0) {
		dev_err(&pdev->dev, "spi_register_master error.\n");
		dev_err(&pdev->dev, "spi_register_master error.\n");
		goto error2;
		goto error3;
	}
	}


	dev_info(&pdev->dev, "probed\n");
	dev_info(&pdev->dev, "probed\n");


	return 0;
	return 0;


error2:
error3:
	rspi_release_dma(rspi);
	rspi_release_dma(rspi);
error2:
	clk_disable(rspi->clk);
error1:
error1:
	spi_master_put(master);
	spi_master_put(master);