regulator: max8997: Convert ot use devm_kzalloc
PATCH 1/2 regulator: max8997: Convert ot use devm_kzalloc
Also simplify the error handling to start unwind from the place regulator_register fails.
No need to check rdev[i] is NULL or not before calling regulator_unregister. regulator_unregister is safe if rdev is NULL,
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/max8997.c | 40 +++++++++++++++------------------------- 1 files changed, 15 insertions(+), 25 deletions(-)
drivers/regulator/max8997.c +15 -25
@@ -962,16 +962,15 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)return -ENODEV ; } - max8997 =kzalloc (sizeof (struct max8997_data ),GFP_KERNEL ); + max8997 =devm_kzalloc (&pdev->dev,sizeof (struct max8997_data ), +GFP_KERNEL );if (!max8997)return -ENOMEM ; size =sizeof (struct regulator_dev *) * pdata->num_regulators; - max8997->rdev =kzalloc (size,GFP_KERNEL ); -if (!max8997->rdev) { -kfree (max8997); + max8997->rdev =devm_kzalloc (&pdev->dev, size,GFP_KERNEL ); +if (!max8997->rdev)return -ENOMEM ; - } rdev = max8997->rdev; max8997->dev = &pdev->dev;
@@ -995,7 +994,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev) pdata->buck1_voltage[i] /1000 + buck1245_voltage_map_desc.step);if (ret <0 ) - goto err_alloc; + goto err_out; max8997->buck2_vol[i] = ret = max8997_get_voltage_proper_val(
@@ -1004,7 +1003,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev) pdata->buck2_voltage[i] /1000 + buck1245_voltage_map_desc.step);if (ret <0 ) - goto err_alloc; + goto err_out; max8997->buck5_vol[i] = ret = max8997_get_voltage_proper_val(
@@ -1013,7 +1012,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev) pdata->buck5_voltage[i] /1000 + buck1245_voltage_map_desc.step);if (ret <0 ) - goto err_alloc; + goto err_out;if (max_buck1 < max8997->buck1_vol[i]) max_buck1 = max8997->buck1_vol[i];
@@ -1046,7 +1045,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev) !gpio_is_valid(pdata->buck125_gpios[2])) {dev_err (&pdev->dev,"GPIO NOT VALID\n" ); ret = -EINVAL ; - goto err_alloc; + goto err_out; } ret = gpio_request(pdata->buck125_gpios[0],
@@ -1055,7 +1054,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)dev_warn (&pdev->dev,"Duplicated gpio request" " on SET1\n" ); else if (ret) - goto err_alloc; + goto err_out; else gpio1set = true;
@@ -1067,7 +1066,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)else if (ret) {if (gpio1set)gpio_free (pdata->buck125_gpios[0 ]); - goto err_alloc; + goto err_out; }else gpio2set = true;
@@ -1081,7 +1080,7 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)gpio_free (pdata->buck125_gpios[0 ]);if (gpio2set)gpio_free (pdata->buck125_gpios[1 ]); - goto err_alloc; + goto err_out; } gpio_direction_output(pdata->buck125_gpios[0],
@@ -1150,13 +1149,9 @@ static __devinit int max8997_pmic_probe(struct platform_device *pdev)return 0 ; err: -for (i =0 ; i < max8997->num_regulators; i++) -if (rdev[i]) -regulator_unregister (rdev[i]); -err_alloc: -kfree (max8997->rdev); -kfree (max8997); - +while (--i >=0 ) +regulator_unregister (rdev[i]); +err_out:return ret; }
@@ -1167,12 +1162,7 @@ static int __devexit max8997_pmic_remove(struct platform_device *pdev)int i;for (i =0 ; i < max8997->num_regulators; i++) -if (rdev[i]) -regulator_unregister (rdev[i]); - -kfree (max8997->rdev); -kfree (max8997); - +regulator_unregister (rdev[i]);return 0 ; }
Signature · 1 line
1.7.5.4
PATCH 2/2 regulator: max8998: Convert ot use devm_kzalloc
Also simplify the error handling to start unwind from the place regulator_register fails.
No need to check rdev[i] is NULL or not before calling regulator_unregister. regulator_unregister is safe if rdev is NULL,
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/max8998.c | 45 ++++++++++++++++-------------------------- 1 files changed, 17 insertions(+), 28 deletions(-)
drivers/regulator/max8998.c +17 -28
@@ -719,16 +719,15 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)return -ENODEV ; } - max8998 =kzalloc (sizeof (struct max8998_data ),GFP_KERNEL ); + max8998 =devm_kzalloc (&pdev->dev,sizeof (struct max8998_data ), +GFP_KERNEL );if (!max8998)return -ENOMEM ; size =sizeof (struct regulator_dev *) * pdata->num_regulators; - max8998->rdev =kzalloc (size,GFP_KERNEL ); -if (!max8998->rdev) { -kfree (max8998); + max8998->rdev =devm_kzalloc (&pdev->dev, size,GFP_KERNEL ); +if (!max8998->rdev)return -ENOMEM ; - } rdev = max8998->rdev; max8998->dev = &pdev->dev;
@@ -752,14 +751,14 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)printk (KERN_ERR "MAX8998 SET1 GPIO defined as 0 !\n" );WARN_ON (!pdata->buck1_set1); ret = -EIO ; - goto err_free_mem; + goto err_out; }/* Check if SET2 is not equal to 0 */ if (!pdata->buck1_set2) {printk (KERN_ERR "MAX8998 SET2 GPIO defined as 0 !\n" );WARN_ON (!pdata->buck1_set2); ret = -EIO ; - goto err_free_mem; + goto err_out; }gpio_request (pdata->buck1_set1,"MAX8998 BUCK1_SET1" );
@@ -779,7 +778,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev) max8998->buck1_vol[0 ] = i; ret =max8998_write_reg (i2c,MAX8998_REG_BUCK1_VOLTAGE1 , i);if (ret) - goto err_free_mem; + goto err_out;/* Set predefined value for BUCK1 register 2 */ i =0 ;
@@ -791,7 +790,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev) max8998->buck1_vol[1 ] = i; ret =max8998_write_reg (i2c,MAX8998_REG_BUCK1_VOLTAGE2 , i);if (ret) - goto err_free_mem; + goto err_out;/* Set predefined value for BUCK1 register 3 */ i =0 ;
@@ -803,7 +802,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev) max8998->buck1_vol[2 ] = i; ret =max8998_write_reg (i2c,MAX8998_REG_BUCK1_VOLTAGE3 , i);if (ret) - goto err_free_mem; + goto err_out;/* Set predefined value for BUCK1 register 4 */ i =0 ;
@@ -815,7 +814,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev) max8998->buck1_vol[3 ] = i; ret =max8998_write_reg (i2c,MAX8998_REG_BUCK1_VOLTAGE4 , i);if (ret) - goto err_free_mem; + goto err_out; }
@@ -825,7 +824,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)printk (KERN_ERR "MAX8998 SET3 GPIO defined as 0 !\n" );WARN_ON (!pdata->buck2_set3); ret = -EIO ; - goto err_free_mem; + goto err_out; }gpio_request (pdata->buck2_set3,"MAX8998 BUCK2_SET3" ); gpio_direction_output(pdata->buck2_set3,
@@ -840,7 +839,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev) max8998->buck2_vol[0 ] = i; ret =max8998_write_reg (i2c,MAX8998_REG_BUCK2_VOLTAGE1 , i);if (ret) - goto err_free_mem; + goto err_out;/* BUCK2 register 2 */ i =0 ;
@@ -851,7 +850,7 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev) max8998->buck2_vol[1 ] = i; ret =max8998_write_reg (i2c,MAX8998_REG_BUCK2_VOLTAGE2 , i);if (ret) - goto err_free_mem; + goto err_out; }for (i =0 ; i < pdata->num_regulators; i++) {
@@ -881,14 +880,9 @@ static __devinit int max8998_pmic_probe(struct platform_device *pdev)return 0 ; err: -for (i =0 ; i < max8998->num_regulators; i++) -if (rdev[i]) -regulator_unregister (rdev[i]); - -err_free_mem: -kfree (max8998->rdev); -kfree (max8998); - +while (--i >=0 ) +regulator_unregister (rdev[i]); +err_out:return ret; }
@@ -899,12 +893,7 @@ static int __devexit max8998_pmic_remove(struct platform_device *pdev)int i;for (i =0 ; i < max8998->num_regulators; i++) -if (rdev[i]) -regulator_unregister (rdev[i]); - -kfree (max8998->rdev); -kfree (max8998); - +regulator_unregister (rdev[i]);return 0 ; }
Signature · 1 line
1.7.5.4