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

Commit cd04e70c authored by Ivan Tiyanov's avatar Ivan Tiyanov
Browse files

msm: camera: Fix LED torch support.



Extend msm_torch_led for both LEDs.
Fix Kernel WARNING: "... failed for torch-light with -EEXIST,
don't try to register things with the same name
in the same directory.

Change-Id: I0d4ecdb42bb03c369458f5657fa2aa0997dcdc98
Signed-off-by: default avatarIvan Tiyanov <ivant@codeaurora.org>
parent c5564588
Loading
Loading
Loading
Loading
+23 −6
Original line number Diff line number Diff line
@@ -29,10 +29,22 @@ static void msm_led_torch_brightness_set(struct led_classdev *led_cdev,
	led_trigger_event(torch_trigger, value);
};

static struct led_classdev msm_torch_led = {
	.name			= "torch-light",
static struct led_classdev msm_torch_led[MAX_LED_TRIGGERS] = {
	{
		.name		= "torch-light0",
		.brightness_set	= msm_led_torch_brightness_set,
		.brightness	= LED_OFF,
	},
	{
		.name		= "torch-light1",
		.brightness_set	= msm_led_torch_brightness_set,
		.brightness	= LED_OFF,
	},
	{
		.name		= "torch-light2",
		.brightness_set	= msm_led_torch_brightness_set,
		.brightness	= LED_OFF,
	},
};

int32_t msm_led_torch_create_classdev(struct platform_device *pdev,
@@ -50,14 +62,19 @@ int32_t msm_led_torch_create_classdev(struct platform_device *pdev,
	for (i = 0; i < fctrl->torch_num_sources; i++) {
		if (fctrl->torch_trigger[i]) {
			torch_trigger = fctrl->torch_trigger[i];
			msm_led_torch_brightness_set(&msm_torch_led, LED_OFF);
			msm_led_torch_brightness_set(&msm_torch_led[i],
				LED_OFF);

			rc = led_classdev_register(&pdev->dev, &msm_torch_led);
			rc = led_classdev_register(&pdev->dev,
				&msm_torch_led[i]);
			if (rc) {
				pr_err("Failed to register %d led dev. rc = %d\n",
						i, rc);
				return rc;
			}
		} else {
			pr_err("Invalid fctrl->torch_trigger[%d]\n", i);
			return -EINVAL;
		}
	}