On Tue, Mar 04, 2014 at 08:19:39PM +0100, Elias Vanderstuyft wrote:
=> This has been discussed (see
http://www.mail-archive.com/linux-input@vger.kernel.org/msg08513.html), and the following is true: My opinion appeared to be correct, but for to be sure, I was recommended to apply the change in Wine as well.
Yes, we should also fix this in Wine to support "buggy" old kernels. It would be worth adding a short comment to the code explaining which kernel versions are affected by this bug.
b) Be more precise in returning errors.
Seems fine. If you can add tests (EINVAL seems easy to test, at least), that would be even better.
c) The following in dinput/effect_linuxinput.c:336 : if (res != DI_OK) should be probably : if (FAILED(res)) for example if a device reports S_FALSE because it has already updated an identical effect.
The same for line 549: if (retval != DI_OK) should be then : if (FAILED(retval))
Sure, seems fine. As an additional fix, you could demonstrate with tests that Download and Start can return S_FALSE under those circumstances on Windows, and fix the Wine behavior to match.
Andrew