lp8788-ldo: fix a parent device in _probe()
authorKim, Milo <Milo.Kim@ti.com>
Thu, 3 Jan 2013 06:32:11 +0000 (06:32 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 3 Jan 2013 11:28:53 +0000 (11:28 +0000)
 The lp8788-ldo is a platform driver of lp8788-mfd.
 The platform device is allocated when mfd_add_devices() is called
 in lp8788-mfd.
 On the other hand, 'lp->dev' is the i2c client device.

 Therefore, this 'platform_device' is a proper parent device in case of
 resource managed mem alloc, registering regulators and device kernel messages.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/lp8788-ldo.c

index 3792741..40403e9 100644 (file)
@@ -712,7 +712,7 @@ static int lp8788_dldo_probe(struct platform_device *pdev)
        struct regulator_dev *rdev;
        int ret;
 
-       ldo = devm_kzalloc(lp->dev, sizeof(struct lp8788_ldo), GFP_KERNEL);
+       ldo = devm_kzalloc(&pdev->dev, sizeof(struct lp8788_ldo), GFP_KERNEL);
        if (!ldo)
                return -ENOMEM;
 
@@ -721,7 +721,7 @@ static int lp8788_dldo_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       cfg.dev = lp->dev;
+       cfg.dev = pdev->dev.parent;
        cfg.init_data = lp->pdata ? lp->pdata->dldo_data[id] : NULL;
        cfg.driver_data = ldo;
        cfg.regmap = lp->regmap;
@@ -729,7 +729,7 @@ static int lp8788_dldo_probe(struct platform_device *pdev)
        rdev = regulator_register(&lp8788_dldo_desc[id], &cfg);
        if (IS_ERR(rdev)) {
                ret = PTR_ERR(rdev);
-               dev_err(lp->dev, "DLDO%d regulator register err = %d\n",
+               dev_err(&pdev->dev, "DLDO%d regulator register err = %d\n",
                                id + 1, ret);
                return ret;
        }
@@ -768,7 +768,7 @@ static int lp8788_aldo_probe(struct platform_device *pdev)
        struct regulator_dev *rdev;
        int ret;
 
-       ldo = devm_kzalloc(lp->dev, sizeof(struct lp8788_ldo), GFP_KERNEL);
+       ldo = devm_kzalloc(&pdev->dev, sizeof(struct lp8788_ldo), GFP_KERNEL);
        if (!ldo)
                return -ENOMEM;
 
@@ -777,7 +777,7 @@ static int lp8788_aldo_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       cfg.dev = lp->dev;
+       cfg.dev = pdev->dev.parent;
        cfg.init_data = lp->pdata ? lp->pdata->aldo_data[id] : NULL;
        cfg.driver_data = ldo;
        cfg.regmap = lp->regmap;
@@ -785,7 +785,7 @@ static int lp8788_aldo_probe(struct platform_device *pdev)
        rdev = regulator_register(&lp8788_aldo_desc[id], &cfg);
        if (IS_ERR(rdev)) {
                ret = PTR_ERR(rdev);
-               dev_err(lp->dev, "ALDO%d regulator register err = %d\n",
+               dev_err(&pdev->dev, "ALDO%d regulator register err = %d\n",
                                id + 1, ret);
                return ret;
        }