diff options
-rw-r--r-- | drivers/regulator/da9052-regulator.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/regulator/da9052-regulator.c b/drivers/regulator/da9052-regulator.c index bdb43757d7c7..f2840b522cde 100644 --- a/drivers/regulator/da9052-regulator.c +++ b/drivers/regulator/da9052-regulator.c | |||
@@ -505,18 +505,23 @@ static inline struct da9052_regulator_info *find_regulator_info(u8 chip_id, | |||
505 | struct da9052_regulator_info *info; | 505 | struct da9052_regulator_info *info; |
506 | int i; | 506 | int i; |
507 | 507 | ||
508 | if (chip_id == DA9052) { | 508 | switch (chip_id) { |
509 | case DA9052: | ||
509 | for (i = 0; i < ARRAY_SIZE(da9052_regulator_info); i++) { | 510 | for (i = 0; i < ARRAY_SIZE(da9052_regulator_info); i++) { |
510 | info = &da9052_regulator_info[i]; | 511 | info = &da9052_regulator_info[i]; |
511 | if (info->reg_desc.id == id) | 512 | if (info->reg_desc.id == id) |
512 | return info; | 513 | return info; |
513 | } | 514 | } |
514 | } else { | 515 | break; |
516 | case DA9053_AA: | ||
517 | case DA9053_BA: | ||
518 | case DA9053_BB: | ||
515 | for (i = 0; i < ARRAY_SIZE(da9053_regulator_info); i++) { | 519 | for (i = 0; i < ARRAY_SIZE(da9053_regulator_info); i++) { |
516 | info = &da9053_regulator_info[i]; | 520 | info = &da9053_regulator_info[i]; |
517 | if (info->reg_desc.id == id) | 521 | if (info->reg_desc.id == id) |
518 | return info; | 522 | return info; |
519 | } | 523 | } |
524 | break; | ||
520 | } | 525 | } |
521 | 526 | ||
522 | return NULL; | 527 | return NULL; |
@@ -529,7 +534,8 @@ static int __devinit da9052_regulator_probe(struct platform_device *pdev) | |||
529 | struct da9052_pdata *pdata; | 534 | struct da9052_pdata *pdata; |
530 | int ret; | 535 | int ret; |
531 | 536 | ||
532 | regulator = kzalloc(sizeof(struct da9052_regulator), GFP_KERNEL); | 537 | regulator = devm_kzalloc(&pdev->dev, sizeof(struct da9052_regulator), |
538 | GFP_KERNEL); | ||
533 | if (!regulator) | 539 | if (!regulator) |
534 | return -ENOMEM; | 540 | return -ENOMEM; |
535 | 541 | ||
@@ -559,7 +565,7 @@ static int __devinit da9052_regulator_probe(struct platform_device *pdev) | |||
559 | 565 | ||
560 | return 0; | 566 | return 0; |
561 | err: | 567 | err: |
562 | kfree(regulator); | 568 | devm_kfree(&pdev->dev, regulator); |
563 | return ret; | 569 | return ret; |
564 | } | 570 | } |
565 | 571 | ||
@@ -568,7 +574,7 @@ static int __devexit da9052_regulator_remove(struct platform_device *pdev) | |||
568 | struct da9052_regulator *regulator = platform_get_drvdata(pdev); | 574 | struct da9052_regulator *regulator = platform_get_drvdata(pdev); |
569 | 575 | ||
570 | regulator_unregister(regulator->rdev); | 576 | regulator_unregister(regulator->rdev); |
571 | kfree(regulator); | 577 | devm_kfree(&pdev->dev, regulator); |
572 | 578 | ||
573 | return 0; | 579 | return 0; |
574 | } | 580 | } |