Message ID | 20110607123931.2267a703.ospite@studenti.unina.it (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Jiri Kosina |
Headers | show |
I'll try to find some time to test this... > when I get code == 0x30 (ABS_MT_TOUCH_MAJOR, I am still not sure > where from), with the following hack I can make axis 11 work again but I > have no idea if I am broking MultiTouch devices, anyone? > If the root of the problem is with the Sixaxis, can we not re-allocate/re-map which HID events it produces so that the rest of the system sees what it is expecting? If this is likely to be a problem with other devices interfering with the MultiTouch stuff then I guess we should fix it properly, Simon. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Index: linux-2.6/drivers/input/input.c =================================================================== --- linux-2.6.orig/drivers/input/input.c +++ linux-2.6/drivers/input/input.c @@ -169,7 +169,7 @@ bool is_mt_event; int *pold; - if (code == ABS_MT_SLOT) { + if (code == ABS_MT_SLOT && dev->mtsize > 0) { /* * "Stage" the event; we'll flush it later, when we * get actual touch data. @@ -205,7 +205,8 @@ } /* Flush pending "slot" event */ - if (is_mt_event && dev->slot != input_abs_get_val(dev, ABS_MT_SLOT)) { + if (is_mt_event && dev->slot != input_abs_get_val(dev, ABS_MT_SLOT) && + dev->mtsize > 0 ) { input_abs_set_val(dev, ABS_MT_SLOT, dev->slot); input_pass_event(dev, EV_ABS, ABS_MT_SLOT, dev->slot); }