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

Commit 1f60a153 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "leds: led-class: Retain the latest user brightness request"

parents 26194657 29cca490
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ static ssize_t brightness_store(struct device *dev,
	if (state == LED_OFF && !(led_cdev->flags & LED_KEEP_TRIGGER))
		led_trigger_remove(led_cdev);
	led_set_brightness(led_cdev, state);
	led_cdev->usr_brightness_req = state;

	ret = size;
unlock:
@@ -72,7 +73,24 @@ static ssize_t max_brightness_show(struct device *dev,

	return sprintf(buf, "%u\n", led_cdev->max_brightness);
}
static DEVICE_ATTR_RO(max_brightness);

static ssize_t max_brightness_store(struct device *dev,
		struct device_attribute *attr, const char *buf, size_t size)
{
	struct led_classdev *led_cdev = dev_get_drvdata(dev);
	unsigned long state;
	ssize_t ret = -EINVAL;

	ret = kstrtoul(buf, 10, &state);
	if (ret)
		return ret;

	led_cdev->max_brightness = state;
	led_set_brightness(led_cdev, led_cdev->usr_brightness_req);

	return size;
}
static DEVICE_ATTR_RW(max_brightness);

#ifdef CONFIG_LEDS_TRIGGERS
static DEVICE_ATTR(trigger, 0644, led_trigger_show, led_trigger_store);
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ struct led_classdev {
	const char		*name;
	enum led_brightness	 brightness;
	enum led_brightness	 max_brightness;
	enum led_brightness	 usr_brightness_req;
	int			 flags;

	/* Lower 16 bits reflect status */