backport UHID driver from 3.8 kernel