For some reason, your replies aren't making it to me directly -- I had to find and scrape your reply off the LKML web site: On Tue, 2 Sep 2025 23:05:06 +0200, Hans de Goede wrote: > On 2-Sep-25 22:41, Leo L. Schwab wrote: >> This does not happen. The G13 accepts and remembers backlight color >> settings even when the LEDs have been toggled off locally. >> [ ... ] > > I see, interesting. > > So what happens if you turn off the backlight with the toggle button on the G13 > and then write 0 to brightness in sysfs and then press the toggle button again? > It's a little difficult to see, but the backlight turns back on with minimal brightness. To my eye, it looks like it's displaying #000001. > Right it does seem that using cdev.brightness_hw_changed is valid in > this case. > > But the LED API is supposed to have the brightness attribute present > the actual current brightness of the device. > > I'm not sure how upower will react if the poll() on brightness_hw_changed > wakes upower up and then the reported brightness is unchanged... > > I need to think about this a bit and check the upower code, let me > get back to you on this in a day or 2 ... > Certainly. >> This prompts the question: What is the full intensity calculation >> formula intended to be? The docs appear to be rather quiet on this point. >> If we assume all intensity/brightness values (0-255) are essentially mapped >> to the range [0.0, 1.0], then it seems to me the calculation is: >> >> out = intensity * brightness * brightness_hw_changed > > The way the API is intended to work is that after a hw-brightness-changes > event brightness == brightness_hw_changed in sysfs. > [ ... ] > IOW the formula should always be: > > out = intensity * brightness > Then this should be written down somewhere. A quick ripgrep through the 6.16 source tree shows brightness_hw_changed is used in *very* few places so far, so it'd be good to get this clarified before too many other people start having competing interpretations. > As mentioned before I need to think a bit about how to handle > this. [ ... ] Fair enough. I'll hold off on spinning a v6 until I hear from you. Schwab