On Thu, Jun 17, 2021 at 12:27 PM Marius Zachmann <mail@xxxxxxxxxxxxxxxxx> wrote: ... > I do not know, what your device is doing Actually, NZXT devices (at least grid/"smart device" and "smart device v2"/rgb&fan controller) don't have such issues - they use report ids, and don't even expect request-reply communication pattern. I've just noticed that something seems to be wrong with corsair-cpro (but somehow didn't notice the comment) and decided to ask. > This device uses an echo of the command > in the answer and if they don't match it returns an error. This could > maybe lead to a false error when the replies are switched, but is > probably preferable. Hm... If the response includes the id of the request, it should be possible to filter reports in raw_event, i. e. don't signal completion if the report doesn't match, and wait more. Yes, there is a corner case, "if a command is not supported, the length value in the reply is okay, but the command value is set to 0". But timing out (250 ms) in this case should probably be fine... Actually I have a compatible Corsair PSU so maybe I'll send a patch.