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
 | 
			
		||||
 *
 | 
			
		||||
 *  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
 | 
			
		||||
 * 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;
 | 
			
		||||
			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);
 | 
			
		||||
			ret = -EINVAL;
 | 
			
		||||
			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");
 | 
			
		||||
 | 
			
		||||
err_out:
 | 
			
		||||
	while (--i >= 0)
 | 
			
		||||
		if (gpio_is_valid(hw->chipselect[i]))
 | 
			
		||||
			gpio_free(hw->chipselect[i]);
 | 
			
		||||
 | 
			
		||||
	spi_master_put(master);
 | 
			
		||||
 | 
			
		||||
	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 = {
 | 
			
		||||
	.driver	= {
 | 
			
		||||
		.name	= DRIVER_NAME,
 | 
			
		||||
		.owner	= THIS_MODULE,
 | 
			
		||||
	},
 | 
			
		||||
	.probe	= spi_clps711x_probe,
 | 
			
		||||
	.remove	= spi_clps711x_remove,
 | 
			
		||||
};
 | 
			
		||||
module_platform_driver(clps711x_spi_driver);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue