From a3fdc4852be4d9525a0b396acbed5df04ee808d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Sun, 27 Apr 2025 14:03:26 +0200 Subject: [PATCH 1/2] fbd-dev-led-multicolor: Ignore LEDs that don't have three values MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We assume that multicolor LEDs are RGB so reject those that don't have three components. E.g. the Framework Laptop exposes a power button LED as multicolor that only has a white component. This way it gets treated as single color LED. Signed-off-by: Guido Günther --- src/fbd-dev-led-multicolor.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/fbd-dev-led-multicolor.c b/src/fbd-dev-led-multicolor.c index 287f200..47a55fb 100644 --- a/src/fbd-dev-led-multicolor.c +++ b/src/fbd-dev-led-multicolor.c @@ -57,6 +57,13 @@ fbd_dev_led_multicolor_probe (FbdDevLed *led, GError **error) return FALSE; } + if (g_strv_length ((GStrv)index) != 3) { + g_set_error (error, + G_FILE_ERROR, G_FILE_ERROR_FAILED, + "%s is no multicolor RGB LED", name); + return FALSE; + } + max_brightness = g_udev_device_get_sysfs_attr_as_int (dev, LED_MAX_BRIGHTNESS_ATTR); if (!max_brightness) { g_set_error (error, From bbd45b7f6a8532b284e1751f2b7a6556e9542e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Sun, 27 Apr 2025 14:11:48 +0200 Subject: [PATCH 2/2] examples: Add example udev rule for Framework 13 Laptop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Guido Günther --- examples/90-framework-laptop-feedbackd.rules | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 examples/90-framework-laptop-feedbackd.rules diff --git a/examples/90-framework-laptop-feedbackd.rules b/examples/90-framework-laptop-feedbackd.rules new file mode 100644 index 0000000..978e9ce --- /dev/null +++ b/examples/90-framework-laptop-feedbackd.rules @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: LGPL-2.1+ +# +# Example to use the Framework Laptop 13's power button LED as +# status LED for feedbackd. +# +# To use: +# +# ``` +# cp 90-framework-laptop-feedbackd.rules /etc/udev/rules.d/90-framework-laptop-feedbackd.rules +# sudo udevadm trigger --subsystem-match=leds --action=change +# killall feedbackd +# ``` + +ACTION=="remove", GOTO="fbd_fw_end" + +SUBSYSTEM=="leds", DEVPATH=="*/chromeos:white:power", ENV{FEEDBACKD_TYPE}="led", RUN{builtin}+="kmod load ledtrig-pattern", RUN+="/usr/libexec/fbd-ledctrl -p %S%p -t pattern -G feedbackd" + +LABEL="fbd_fw_end"