Merge remote-tracking branches 'regulator/topic/rn5t618', 'regulator/topic/rpm',...
[firefly-linux-kernel-4.4.55.git] / drivers / regulator / qcom_rpm-regulator.c
index fbcbd3fe501e6ef6deecd1bd98098f08c12d80ff..183598b111f96457a686726b4c0ddcace2968a2b 100644 (file)
@@ -662,10 +662,6 @@ static int rpm_reg_probe(struct platform_device *pdev)
        match = of_match_device(rpm_of_match, &pdev->dev);
        template = match->data;
 
-       initdata = of_get_regulator_init_data(&pdev->dev, pdev->dev.of_node);
-       if (!initdata)
-               return -EINVAL;
-
        vreg = devm_kmalloc(&pdev->dev, sizeof(*vreg), GFP_KERNEL);
        if (!vreg) {
                dev_err(&pdev->dev, "failed to allocate vreg\n");
@@ -685,6 +681,11 @@ static int rpm_reg_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
+       initdata = of_get_regulator_init_data(&pdev->dev, pdev->dev.of_node,
+                                             &vreg->desc);
+       if (!initdata)
+               return -EINVAL;
+
        key = "reg";
        ret = of_property_read_u32(pdev->dev.of_node, key, &val);
        if (ret) {