i2c: simtec: Convert to use devm_* APIs
PATCH 1/1 i2c: simtec: Convert to use devm_* APIs
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>
--- drivers/i2c/busses/i2c-simtec.c | 52 +++++------------------------------------ 1 file changed, 6 insertions(+), 46 deletions(-)
drivers/i2c/busses/i2c-simtec.c +6 -46
@@ -25,7 +25,6 @@#include <linux/i2c-algo-bit.h> struct simtec_i2c_data { -struct resource *ioarea;void __iomem *reg;struct i2c_adapter adap;struct i2c_algo_bit_data bit;
@@ -69,37 +68,18 @@ static int simtec_i2c_probe(struct platform_device *dev) {struct simtec_i2c_data *pd;struct resource *res; -int size; -int ret; - pd =kzalloc (sizeof (struct simtec_i2c_data ),GFP_KERNEL ); + pd =devm_kzalloc (&dev->dev,sizeof (struct simtec_i2c_data ), +GFP_KERNEL );if (pd ==NULL )return -ENOMEM ;platform_set_drvdata (dev, pd); res =platform_get_resource (dev,IORESOURCE_MEM ,0 ); -if (res ==NULL ) { -dev_err (&dev->dev,"cannot find IO resource\n" ); - ret = -ENOENT ; - goto err; - } - - size =resource_size (res); - - pd->ioarea =request_mem_region (res->start, size, dev->name); -if (pd->ioarea ==NULL ) { -dev_err (&dev->dev,"cannot request IO\n" ); - ret = -ENXIO ; - goto err; - } - - pd->reg =ioremap (res->start, size); -if (pd->reg ==NULL ) { -dev_err (&dev->dev,"cannot map IO\n" ); - ret = -ENXIO ; - goto err_res; - } + pd->reg =devm_ioremap_resource (&dev->dev, res); +if (IS_ERR (pd->reg)) +return PTR_ERR (pd->reg);/* setup the private data */
@@ -117,22 +97,7 @@ static int simtec_i2c_probe(struct platform_device *dev) pd->bit.timeout =HZ ; pd->bit.udelay =20 ; - ret =i2c_bit_add_bus (&pd->adap); -if (ret) - goto err_all; - -return 0 ; - - err_all: -iounmap (pd->reg); - - err_res: -release_resource (pd->ioarea); -kfree (pd->ioarea); - - err: -kfree (pd); -return ret; +return i2c_bit_add_bus (&pd->adap); }static int simtec_i2c_remove (struct platform_device *dev)
@@ -141,11 +106,6 @@ static int simtec_i2c_remove(struct platform_device *dev)i2c_del_adapter (&pd->adap); -iounmap (pd->reg); -release_resource (pd->ioarea); -kfree (pd->ioarea); -kfree (pd); -return 0 ; }
Signature · 1 line
2.5.0
Quoted 3 lines · Axel Lin
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>
Thanks! Were you able to test it on hardware?
2016-04-13 5:48 GMT+08:00 Wolfram Sang <[email protected]>:
Quoted 7 lines · Axel Lin
Quoted 3 lines
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>Thanks! Were you able to test it on hardware?
I don't have this h/w, so I cannot test it.
Axel
Quoted 9 lines · Axel Lin
2016-04-13 5:48 GMT+08:00 Wolfram Sang <[email protected]>:
Quoted 7 lines · Axel Lin
Quoted 3 lines
Use devm_* APIs to simplify the code a bit.
Signed-off-by Axel Lin <[email protected]>Thanks! Were you able to test it on hardware?
I don't have this h/w, so I cannot test it.
OK, so I'll rate this as RFT.