On Fri, 18 Dec 2009, Johannes Ebke wrote: > I have looked into the problems some more, and have found that the cause > of the crash was a change I made because I misunderstood the code > (LO(cmd) is the number of bytes in in the message, and is not > transferred on USB - i had removed it from the message...) Ah, good, thanks. > First, the changes in the normal input, the joystick axis+buttons message: > * Prefix is 0x06 instead of 0x01 (joystick) or 0x03 (gamepad) > * Throttle is not inverted (data[4] instead of 255-data[4]) > * Rudder is present and unsigned (not signed, as in iforce) > > I have attached a patch that I think fixes this (it works for me :) > Since saitek uses a different protocol byte, this can be done without > adding per-device flags to the driver. > > It also adds a button map btn_saitek_cyborg that switches button 1&2 to > make the button number the same as printed on the device, and > abs_saitek_cyborg for a joystick with rudder but only one hat. > > The fftest effects seem to work, but some are feeble and feel strange - > I suspect there are some subtle changes, for example I am quite sure > that the Saitek uses signed (twos complement) numbers for effect > strength (this could perhaps explain the 'strange' behavior for 0x80 > byte values in the current code)... The changes look really minimal to me, so I'd propose just to add a few special cases to the iforce driver itself (probably by setting/checking some per-device flag where needed), rather than copy/pasting the whole iforce driver. But the ultimate decision is on Dmitry (CCed) here. Thanks, -- Jiri Kosina SUSE Labs, Novell Inc. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html