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

Commit 83acf2d0 authored by Chun Zhang's avatar Chun Zhang
Browse files

leds: leds-qpnp-flash: correct torch enablement and disablement



Current torch enablement setting binds both channels together.
When a user turns on and leaves the other off, there are issues.

Change-Id: I8697f0c104fd32f450d1ae82ac823940d343f3d3
Signed-off-by: default avatarChun Zhang <chunz@codeaurora.org>
parent de724756
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -414,6 +414,26 @@ static int qpnp_flash_led_module_disable(struct qpnp_flash_led *led,

	tmp = ~flash_node->trigger & val;
	if (!tmp) {
		if (flash_node->type == TORCH) {
			rc = qpnp_led_masked_write(led->spmi_dev,
				FLASH_LED_UNLOCK_SECURE(led->base),
				FLASH_SECURE_MASK, FLASH_UNLOCK_SECURE);
			if (rc) {
				dev_err(&led->spmi_dev->dev,
					"Secure reg write failed\n");
				return -EINVAL;
			}

			rc = qpnp_led_masked_write(led->spmi_dev,
				FLASH_TORCH(led->base),
				FLASH_TORCH_MASK, FLASH_LED_TORCH_DISABLE);
			if (rc) {
				dev_err(&led->spmi_dev->dev,
					"Torch reg write failed\n");
				return -EINVAL;
			}
		}

		rc = qpnp_led_masked_write(led->spmi_dev,
			FLASH_MODULE_ENABLE_CTRL(led->base),
			FLASH_MODULE_ENABLE_MASK, FLASH_LED_DISABLE);
@@ -644,26 +664,6 @@ turn_off:
		goto exit_flash_led_work;
	}

	if (flash_node->type == TORCH) {
		rc = qpnp_led_masked_write(led->spmi_dev,
			FLASH_LED_UNLOCK_SECURE(led->base),
			FLASH_SECURE_MASK, FLASH_UNLOCK_SECURE);
		if (rc) {
			dev_err(&led->spmi_dev->dev,
				"Secure reg write failed\n");
			goto exit_flash_led_work;
		}

		rc = qpnp_led_masked_write(led->spmi_dev,
			FLASH_TORCH(led->base),
			FLASH_TORCH_MASK, FLASH_LED_TORCH_DISABLE);
		if (rc) {
			dev_err(&led->spmi_dev->dev,
				"Torch reg write failed\n");
			goto exit_flash_led_work;
		}
	}

	usleep(FLASH_RAMP_DN_DELAY_US);

	rc = qpnp_flash_led_module_disable(led, flash_node);