--- hid-input.c.old 2007-12-27 17:24:14.000000000 -0500 +++ hid-input.c 2007-12-27 17:32:45.000000000 -0500 @@ -601,8 +601,11 @@ static void hidinput_configure_usage(str set_bit(usage->type, input->evbit); - while (usage->code <= max && test_and_set_bit(usage->code, bit)) - usage->code = find_next_zero_bit(bit, max + 1, usage->code); + if(device->quirks & HID_QUIRK_NO_USAGE_UNIQUIFY) + set_bit(usage->code, bit); + else + while (usage->code <= max && test_and_set_bit(usage->code, bit)) + usage->code = find_next_zero_bit(bit, max + 1, usage->code); if (usage->code > max) goto ignore;