mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-04-03 12:05:13 +02:00
leds: leds-cros_ec: Skip LEDs without color components
commit4dbf066d96upstream. A user reports that on their Lenovo Corsola Magneton with EC firmware steelix-15194.270.0 the driver probe fails with EINVAL. It turns out that the power LED does not contain any color components as indicated by the following "ectool led power query" output: Brightness range for LED 1: red : 0x0 green : 0x0 blue : 0x0 yellow : 0x0 white : 0x0 amber : 0x0 The LED also does not react to commands sent manually through ectool and is generally non-functional. Instead of failing the probe for all LEDs managed by the EC when one without color components is encountered, silently skip those. Cc: stable@vger.kernel.org Fixes:8d6ce6f3ec("leds: Add ChromeOS EC driver") Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://patch.msgid.link/20251028-cros_ec-leds-no-colors-v1-1-ebe13a02022a@weissschuh.net Signed-off-by: Lee Jones <lee@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
895123c309
commit
ffdec4686e
@@ -155,9 +155,6 @@ static int cros_ec_led_count_subleds(struct device *dev,
|
||||
}
|
||||
}
|
||||
|
||||
if (!num_subleds)
|
||||
return -EINVAL;
|
||||
|
||||
*max_brightness = common_range;
|
||||
return num_subleds;
|
||||
}
|
||||
@@ -202,6 +199,8 @@ static int cros_ec_led_probe_one(struct device *dev, struct cros_ec_device *cros
|
||||
&priv->led_mc_cdev.led_cdev.max_brightness);
|
||||
if (num_subleds < 0)
|
||||
return num_subleds;
|
||||
if (num_subleds == 0)
|
||||
return 0; /* LED without any colors, skip */
|
||||
|
||||
priv->cros_ec = cros_ec;
|
||||
priv->led_id = id;
|
||||
|
||||
Reference in New Issue
Block a user