Merge remote-tracking branch 'regulator/topic/devm' into regulator-next
authorMark Brown <broonie@linaro.org>
Thu, 24 Oct 2013 10:11:35 +0000 (11:11 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 24 Oct 2013 10:11:35 +0000 (11:11 +0100)
1  2 
drivers/regulator/da9063-regulator.c

index 3d910f4f3a0e855f95dc336500edb74af1176d99,62b846916e225def7e7cdda2d1ef8d26c33b0919..56727eb745df69171d77fac8313e6ea3ab2499ef
@@@ -709,7 -709,7 +709,7 @@@ static struct da9063_regulators_pdata *
                struct of_regulator_match **da9063_reg_matches)
  {
        da9063_reg_matches = NULL;
 -      return PTR_ERR(-ENODEV);
 +      return ERR_PTR(-ENODEV);
  }
  #endif
  
@@@ -717,7 -717,7 +717,7 @@@ static int da9063_regulator_probe(struc
  {
        struct da9063 *da9063 = dev_get_drvdata(pdev->dev.parent);
        struct da9063_pdata *da9063_pdata = dev_get_platdata(da9063->dev);
 -      struct of_regulator_match *da9063_reg_matches;
 +      struct of_regulator_match *da9063_reg_matches = NULL;
        struct da9063_regulators_pdata *regl_pdata;
        const struct da9063_dev_model *model;
        struct da9063_regulators *regulators;
                if (da9063_reg_matches)
                        config.of_node = da9063_reg_matches[id].of_node;
                config.regmap = da9063->regmap;
-               regl->rdev = regulator_register(&regl->desc, &config);
+               regl->rdev = devm_regulator_register(&pdev->dev, &regl->desc,
+                                                    &config);
                if (IS_ERR(regl->rdev)) {
                        dev_err(&pdev->dev,
                                "Failed to register %s regulator\n",
                                regl->desc.name);
-                       ret = PTR_ERR(regl->rdev);
-                       goto err;
+                       return PTR_ERR(regl->rdev);
                }
                id++;
                n++;
        /* LDOs overcurrent event support */
        irq = platform_get_irq_byname(pdev, "LDO_LIM");
        if (irq < 0) {
-               ret = irq;
                dev_err(&pdev->dev, "Failed to get IRQ.\n");
-               goto err;
+               return irq;
        }
  
        regulators->irq_ldo_lim = regmap_irq_get_virq(da9063->regmap_irq, irq);
        }
  
        return 0;
- err:
-       /* Wind back regulators registeration */
-       while (--n >= 0)
-               regulator_unregister(regulators->regulator[n].rdev);
-       return ret;
  }
  
  static int da9063_regulator_remove(struct platform_device *pdev)
  {
        struct da9063_regulators *regulators = platform_get_drvdata(pdev);
-       struct da9063_regulator *regl;
  
        free_irq(regulators->irq_ldo_lim, regulators);
        free_irq(regulators->irq_uvov, regulators);
  
-       for (regl = &regulators->regulator[regulators->n_regulators - 1];
-            regl >= &regulators->regulator[0]; regl--)
-               regulator_unregister(regl->rdev);
        return 0;
  }
  
This page took 0.02687 seconds and 5 git commands to generate.