--- drivers/usb/input/hid-input.c.orig 2004-04-25 10:23:49.000000000 +0200 +++ drivers/usb/input/hid-input.c 2004-04-25 10:32:54.000000000 +0200 @@ -122,6 +122,22 @@ static void hidinput_configure_usage(str case HID_GD_GAMEPAD: usage->code += 0x10; case HID_GD_JOYSTICK: usage->code += 0x10; case HID_GD_MOUSE: usage->code += 0x10; break; + + case 0x000C0003: + /* reported on a Chicony KU-0108 USB Keyboard. + * The 'cut', 'copy' and 'paste' keys are seen as + * HID_UP_BUTTON instead of, e.g., + * HID_UP_CONSUMER. The keys report a keycode > 255, + * so we need to fix it. + */ + + switch (usage->code) { + case 0x10f: usage->code = KEY_CUT; break; + case 0x100: usage->code = KEY_COPY; break; + case 0x101: usage->code = KEY_PASTE; break; + } + break; + default: if (field->physical == HID_GD_POINTER) usage->code += 0x10;