Verified Commit 2674654c authored by Clayton Craft's avatar Clayton Craft
Browse files

fbd-ledctrl: fix matching of trigger in list of triggers

If the trigger is the last thing in sysfs_path/LED_TRIGGER_ATTR, then
the new-line at the end of the output causes g_strv_contains to fail to
find the trigger in the list. This strips the new-line before splitting
the output into a list for searching.

You can see the problem this patch fixes with the librem 5, by:

$ rmmod ledtrig-timer     # or whatever is listed at the end, so 'pattern' is the last thing
$ cat /sys/devices/platform/pwmleds/leds/blue:status/trigger
[none] kbd-scrolllock ... pattern
$ fbd-ledctrl -p /sys/devices/platform/pwmleds/leds/blue:status -t pattern
Failed to set perms of /sys/devices/platform/pwmleds/leds/blue:status/pattern to 101: No such file or directory
$ modprobe ledtrig-timer
$ cat /sys/devices/platform/pwmleds/leds/blue:status/trigger
[none] kbd-scrolllock ... pattern timer
$ fbd-ledctrl -p /sys/devices/platform/pwmleds/leds/blue:status -t pattern
<success>
parent 53a02c71
Pipeline #65848 passed with stages
in 9 minutes and 21 seconds
......@@ -102,6 +102,7 @@ set_trigger (const char *sysfs_path, const char *trigger)
* same trigger over and over again in a udev rule.
*/
val = read_sysfs_attr (sysfs_path, LED_TRIGGER_ATTR);
g_strstrip(val);
triggers = g_strsplit (val, " ", 0);
/*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment