mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
spi/imx: simplify error handling to free gpios
Simplify the error handling by moving the code to free gpios in one place. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
This commit is contained in:
parent
e290cf276b
commit
00ffc13f35
1 changed files with 3 additions and 8 deletions
|
@ -793,13 +793,8 @@ static int __devinit spi_imx_probe(struct platform_device *pdev)
|
|||
|
||||
ret = gpio_request(spi_imx->chipselect[i], DRIVER_NAME);
|
||||
if (ret) {
|
||||
while (i > 0) {
|
||||
i--;
|
||||
if (spi_imx->chipselect[i] >= 0)
|
||||
gpio_free(spi_imx->chipselect[i]);
|
||||
}
|
||||
dev_err(&pdev->dev, "can't get cs gpios\n");
|
||||
goto out_master_put;
|
||||
goto out_gpio_free;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -881,10 +876,10 @@ static int __devinit spi_imx_probe(struct platform_device *pdev)
|
|||
out_release_mem:
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
out_gpio_free:
|
||||
for (i = 0; i < master->num_chipselect; i++)
|
||||
while (--i >= 0) {
|
||||
if (spi_imx->chipselect[i] >= 0)
|
||||
gpio_free(spi_imx->chipselect[i]);
|
||||
out_master_put:
|
||||
}
|
||||
spi_master_put(master);
|
||||
kfree(master);
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
|
|
Loading…
Reference in a new issue