the crazyness is normal on some controllers, the hardware is badly coded : instead of reacting to the events, it always sent its current status making the linux kernel having to filter all that sh**, but thats not a problem to make it work.
no crasyness in usb ?