ideapad: pass ideapad_priv as argument (part 2)
[pandora-kernel.git] / drivers / regulator / pcf50633-regulator.c
index 0803ffe..c8f41dc 100644 (file)
@@ -314,13 +314,15 @@ static int __devinit pcf50633_regulator_probe(struct platform_device *pdev)
        struct pcf50633 *pcf;
 
        /* Already set by core driver */
-       pcf = platform_get_drvdata(pdev);
+       pcf = dev_to_pcf50633(pdev->dev.parent);
 
        rdev = regulator_register(&regulators[pdev->id], &pdev->dev,
                                  pdev->dev.platform_data, pcf);
        if (IS_ERR(rdev))
                return PTR_ERR(rdev);
 
+       platform_set_drvdata(pdev, rdev);
+
        if (pcf->pdata->regulator_registered)
                pcf->pdata->regulator_registered(pcf, pdev->id);
 
@@ -331,6 +333,7 @@ static int __devexit pcf50633_regulator_remove(struct platform_device *pdev)
 {
        struct regulator_dev *rdev = platform_get_drvdata(pdev);
 
+       platform_set_drvdata(pdev, NULL);
        regulator_unregister(rdev);
 
        return 0;