> 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

Attachment: linux-2.4.17-usb-55878.patch
Description: Binary data

Reply via email to