On 30.10.2022 23:15, Pavel Machek wrote: > Hi! > >>>> This allows to set own workqueue for each LED. This may be useful, because >>>> default 'system_wq' does not guarantee execution order of each work_struct, >>>> thus for several brightness update requests (for multiple leds), real >>>> brightness switch could be in random order. >>> >>> So.. what? >>> >>> Even if execution order is switched, human eye will not be able to >>> tell the difference. >> Hello, >> >> Problem arises on one of our boards where we have 14 triples of leds(each >> triple contains R G B). Test case is to play complex animation on all leds: >> smooth switch from on RGB state to another. Sometimes there are glitches in >> this process - divergence from expectable RGB state. We fixed this by using >> ordered workqueue. > > Are there other solutions possible? Like batch and always apply _all_ > the updates you have queued from your the worker code? IIUC You, it is possible to do this if brightness update requests are performed using write to "brightness" file in /sys/class/led/. But if pattern trigger mode is used(in my case) - I can't synchronize these requests as they are created internally in kernel on timer tick. Thanks, Arseniy > > Best regards, > Pavel >