From 82eb121989c06e3de33b56ade1fa52c9e86c014e Mon Sep 17 00:00:00 2001 From: Jiri Kosina Date: Sat, 11 Aug 2007 23:39:42 +0200 Subject: HID: ignore all non-LED usages in output fields in hid-input We have to ignore all non-LED usages in output fields if the report descriptor of the device specifies any. If we don't do so, the devices which contain the same usages both in input and output reports with different parameters will mess things up. In hid-input, we currently care only for the input usages, with exception for LEDs. All other output usages should be properly handled by appropriate force-feedback driver. Fixes auto-calibration for Saitek Cyborg Evo Force joystick. Reported-by: Renato Golin Signed-off-by: Jiri Kosina --- drivers/hid/hid-input.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'drivers') diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index de8dbec6aae5..f80b57142cd4 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -355,6 +355,13 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel if (field->flags & HID_MAIN_ITEM_CONSTANT) goto ignore; + /* only LED usages are supported in output fields */ + if (field->report_type == HID_OUTPUT_REPORT && + (usage->hid & HID_USAGE_PAGE) != HID_UP_LED) { + dbg_hid_line(" [non-LED output field] "); + goto ignore; + } + switch (usage->hid & HID_USAGE_PAGE) { case HID_UP_UNDEFINED: -- cgit v1.2.2