Commit 131701c6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull LED fixes from Pavel Machek:
 "Jacek's fix for an uninitialized gpio label is why I'm requesting this
  pull; it fixes regression in debugging output in sysfs. Others are
  just bugfixes that should be safe.

  Everything has been in -next for while"

* tag 'leds-5.5-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds:
  leds: lm3532: add pointer to documentation and fix typo
  leds: rb532: cleanup whitespace
  ledtrig-pattern: fix email address quoting in MODULE_AUTHOR()
  led: max77650: add of_match table
  leds-as3645a: Drop fwnode reference on ignored node
  leds: gpio: Fix uninitialized gpio label for fwnode based probe
parents 1b4e677f 43108c72
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -493,16 +493,17 @@ static int as3645a_parse_node(struct as3645a *flash,
		switch (id) {
		case AS_LED_FLASH:
			flash->flash_node = child;
			fwnode_handle_get(child);
			break;
		case AS_LED_INDICATOR:
			flash->indicator_node = child;
			fwnode_handle_get(child);
			break;
		default:
			dev_warn(&flash->client->dev,
				 "unknown LED %u encountered, ignoring\n", id);
			break;
		}
		fwnode_handle_get(child);
	}

	if (!flash->flash_node) {
+9 −1
Original line number Diff line number Diff line
@@ -151,9 +151,14 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
		struct gpio_led led = {};
		const char *state = NULL;

		/*
		 * Acquire gpiod from DT with uninitialized label, which
		 * will be updated after LED class device is registered,
		 * Only then the final LED name is known.
		 */
		led.gpiod = devm_fwnode_get_gpiod_from_child(dev, NULL, child,
							     GPIOD_ASIS,
							     led.name);
							     NULL);
		if (IS_ERR(led.gpiod)) {
			fwnode_handle_put(child);
			return ERR_CAST(led.gpiod);
@@ -186,6 +191,9 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev)
			fwnode_handle_put(child);
			return ERR_PTR(ret);
		}
		/* Set gpiod label to match the corresponding LED name. */
		gpiod_set_consumer_name(led_dat->gpiod,
					led_dat->cdev.dev->kobj.name);
		priv->num_leds++;
	}

+2 −1
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
// TI LM3532 LED driver
// Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
// http://www.ti.com/lit/ds/symlink/lm3532.pdf

#include <linux/i2c.h>
#include <linux/leds.h>
@@ -623,7 +624,7 @@ static int lm3532_parse_node(struct lm3532_data *priv)

		led->num_leds = fwnode_property_count_u32(child, "led-sources");
		if (led->num_leds > LM3532_MAX_LED_STRINGS) {
			dev_err(&priv->client->dev, "To many LED string defined\n");
			dev_err(&priv->client->dev, "Too many LED string defined\n");
			continue;
		}

+7 −0
Original line number Diff line number Diff line
@@ -135,9 +135,16 @@ err_node_put:
	return rv;
}

static const struct of_device_id max77650_led_of_match[] = {
	{ .compatible = "maxim,max77650-led" },
	{ }
};
MODULE_DEVICE_TABLE(of, max77650_led_of_match);

static struct platform_driver max77650_led_driver = {
	.driver = {
		.name = "max77650-led",
		.of_match_table = max77650_led_of_match,
	},
	.probe = max77650_led_probe,
};
+0 −1
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ static void rb532_led_set(struct led_classdev *cdev,
{
	if (brightness)
		set_latch_u5(LO_ULED, 0);

	else
		set_latch_u5(0, LO_ULED);
}
Loading