> > > > The difference is that intensity it's obvious that it changes from 50 > > to 100 percent. With different timeouts, shouldn't this be more > > complex? > > Currently for keyboard backlight settings is used procedure: > get current status --> update --> set new status. > > So we just need to have two timeouts in struct kbd_state and get/set functions > needs to handle it. I do not thing this change would be complex, it should be > straightforward. Yeah I figured this part was straightforward, it was the second part that was more complex :) > > > Would you just keep two different nodes as accessible to userspace? > > And this is another question... For a first step we should just fix timeout sysfs > node to work. And probably the best fix would be that this node will manage > timeout which belongs to current AC or battery state. So the easiest way to implement this would be to save/restore the values from the cbArg3 that are not currently saved without to regard to whether the platform supports a dedicated AC timeout. If it doesn't support a dedicated AC timeout this will be a no-op, but if it does it will fix this problem. > Like for dell_get_intensity(). When notebook is running on battery we will > export timeout configured for battery and when on AC we will export timeout > configured for AC. Changing timeout via sysfs just affect only one (current) > configuration (ac or battery). > So basically the value in sysfs would change when you added/removed the AC adapter? That might be a little bit confusing to a user in my opinion. > IIRC we do not provide a sysfs node for changing AC display panel brightness > level when notebook is running on battery and vice versa. So do we need it for > keyboard backlight timeout at all? > How is that handled then? The node dynamically changes values based on if a power adapter is plugged in?