forked from mirrors/linux
		
	spi: clps711x: Use devm_gpio_request()
This patch replaces gpio_request() with devm_ API. As a result this simplifies error path and eliminates "remove" function. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
		
							parent
							
								
									6ce4eac1f6
								
							
						
					
					
						commit
						989847967c
					
				
					 1 changed files with 2 additions and 20 deletions
				
			
		| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 *  CLPS711X SPI bus driver
 | 
					 *  CLPS711X SPI bus driver
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 *  Copyright (C) 2012 Alexander Shiyan <shc_work@mail.ru>
 | 
					 *  Copyright (C) 2012-2014 Alexander Shiyan <shc_work@mail.ru>
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This program is free software; you can redistribute it and/or modify
 | 
					 * This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
 * it under the terms of the GNU General Public License as published by
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
| 
						 | 
					@ -198,7 +198,7 @@ static int spi_clps711x_probe(struct platform_device *pdev)
 | 
				
			||||||
			ret = -EINVAL;
 | 
								ret = -EINVAL;
 | 
				
			||||||
			goto err_out;
 | 
								goto err_out;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (gpio_request(hw->chipselect[i], DRIVER_NAME)) {
 | 
							if (devm_gpio_request(&pdev->dev, hw->chipselect[i], NULL)) {
 | 
				
			||||||
			dev_err(&pdev->dev, "Can't get CS GPIO %i\n", i);
 | 
								dev_err(&pdev->dev, "Can't get CS GPIO %i\n", i);
 | 
				
			||||||
			ret = -EINVAL;
 | 
								ret = -EINVAL;
 | 
				
			||||||
			goto err_out;
 | 
								goto err_out;
 | 
				
			||||||
| 
						 | 
					@ -240,35 +240,17 @@ static int spi_clps711x_probe(struct platform_device *pdev)
 | 
				
			||||||
	dev_err(&pdev->dev, "Failed to register master\n");
 | 
						dev_err(&pdev->dev, "Failed to register master\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
err_out:
 | 
					err_out:
 | 
				
			||||||
	while (--i >= 0)
 | 
					 | 
				
			||||||
		if (gpio_is_valid(hw->chipselect[i]))
 | 
					 | 
				
			||||||
			gpio_free(hw->chipselect[i]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	spi_master_put(master);
 | 
						spi_master_put(master);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int spi_clps711x_remove(struct platform_device *pdev)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	int i;
 | 
					 | 
				
			||||||
	struct spi_master *master = platform_get_drvdata(pdev);
 | 
					 | 
				
			||||||
	struct spi_clps711x_data *hw = spi_master_get_devdata(master);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (i = 0; i < master->num_chipselect; i++)
 | 
					 | 
				
			||||||
		if (gpio_is_valid(hw->chipselect[i]))
 | 
					 | 
				
			||||||
			gpio_free(hw->chipselect[i]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static struct platform_driver clps711x_spi_driver = {
 | 
					static struct platform_driver clps711x_spi_driver = {
 | 
				
			||||||
	.driver	= {
 | 
						.driver	= {
 | 
				
			||||||
		.name	= DRIVER_NAME,
 | 
							.name	= DRIVER_NAME,
 | 
				
			||||||
		.owner	= THIS_MODULE,
 | 
							.owner	= THIS_MODULE,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	.probe	= spi_clps711x_probe,
 | 
						.probe	= spi_clps711x_probe,
 | 
				
			||||||
	.remove	= spi_clps711x_remove,
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
module_platform_driver(clps711x_spi_driver);
 | 
					module_platform_driver(clps711x_spi_driver);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue