> Could you as a test in hid-core.c in function hid_init_reports() remove > the calls to usb_set_idle() and hid_read_report() to see if it helps? > Those are my primary suspects there ...
You nailed it. It appears at least three ATEN models die horribly in GET_REPORT. RedHat has a patch in their 2.4.9-31 errata kernel that creates a blacklist of such devices. The blacklist is then used to conditionally skip the call to hid_read_report() in hid_init_reports(). The only problem is, their patch has only a single ATEN model in the list. I added my KVM and everything works. RH's patch also applies cleanly to 2.4.18. I again added my model to the blacklist and now .18 works too. The original patch is attached, or is available from: http://bugzilla.redhat.com/bugzilla/showattachment.cgi?attach_id=44797 It turned up under this bug: http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=55878 The modified blacklist entries for my CS124U and Matt's 2 port are: #define USB_VENDOR_ID_ATEN 0x0557 #define USB_DEVICE_ID_ATEN_UC100KM 0x2004 #define USB_DEVICE_ID_ATEN_CS124U 0x2202 #define USB_DEVICE_ID_ATEN_2PORTKVM 0x2204 static struct hid_blacklist hid_blst_noget[] = { { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM }, { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U }, { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM }, { 0, 0 } }; Much thanks to everybody who helped! dvt
linux-2.4.17-usb-55878.patch
Description: Binary data
