Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29ce9feb authored by Axel Lin's avatar Axel Lin Committed by Bryan Wu
Browse files

leds: regulator: Convert to devm_regulator_get_exclusive



Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarBryan Wu <cooloney@gmail.com>
parent 206c5f60
Loading
Loading
Loading
Loading
+5 −13
Original line number Diff line number Diff line
@@ -153,24 +153,21 @@ static int regulator_led_probe(struct platform_device *pdev)
		return -ENODEV;
	}

	vcc = regulator_get_exclusive(&pdev->dev, "vled");
	vcc = devm_regulator_get_exclusive(&pdev->dev, "vled");
	if (IS_ERR(vcc)) {
		dev_err(&pdev->dev, "Cannot get vcc for %s\n", pdata->name);
		return PTR_ERR(vcc);
	}

	led = devm_kzalloc(&pdev->dev, sizeof(*led), GFP_KERNEL);
	if (led == NULL) {
		ret = -ENOMEM;
		goto err_vcc;
	}
	if (led == NULL)
		return -ENOMEM;

	led->cdev.max_brightness = led_regulator_get_max_brightness(vcc);
	if (pdata->brightness > led->cdev.max_brightness) {
		dev_err(&pdev->dev, "Invalid default brightness %d\n",
				pdata->brightness);
		ret = -EINVAL;
		goto err_vcc;
		return -EINVAL;
	}
	led->value = pdata->brightness;

@@ -191,7 +188,7 @@ static int regulator_led_probe(struct platform_device *pdev)
	ret = led_classdev_register(&pdev->dev, &led->cdev);
	if (ret < 0) {
		cancel_work_sync(&led->work);
		goto err_vcc;
		return ret;
	}

	/* to expose the default value to userspace */
@@ -201,10 +198,6 @@ static int regulator_led_probe(struct platform_device *pdev)
	regulator_led_set_value(led);

	return 0;

err_vcc:
	regulator_put(vcc);
	return ret;
}

static int regulator_led_remove(struct platform_device *pdev)
@@ -214,7 +207,6 @@ static int regulator_led_remove(struct platform_device *pdev)
	led_classdev_unregister(&led->cdev);
	cancel_work_sync(&led->work);
	regulator_led_disable(led);
	regulator_put(led->vcc);
	return 0;
}