Loading drivers/hid/hid-multitouch.c +32 −40 Original line number Diff line number Diff line Loading @@ -1319,6 +1319,13 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi, return mt_touch_input_mapping(hdev, hi, field, usage, bit, max, application); /* * some egalax touchscreens have "application == DG_TOUCHSCREEN" * for the stylus. Overwrite the hid_input application */ if (field->physical == HID_DG_STYLUS) hi->application = HID_DG_STYLUS; /* let hid-core decide for the others */ return 0; } Loading Loading @@ -1507,14 +1514,12 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi) struct mt_device *td = hid_get_drvdata(hdev); char *name; const char *suffix = NULL; unsigned int application = 0; struct mt_report_data *rdata; struct mt_application *mt_application = NULL; struct hid_report *report; int ret; list_for_each_entry(report, &hi->reports, hidinput_list) { application = report->application; rdata = mt_find_report_data(td, report); if (!rdata) { hid_err(hdev, "failed to allocate data for report\n"); Loading @@ -1529,21 +1534,9 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi) if (ret) return ret; } /* * some egalax touchscreens have "application == DG_TOUCHSCREEN" * for the stylus. Check this first, and then rely on * the application field. */ if (report->field[0]->physical == HID_DG_STYLUS) { suffix = "Pen"; /* force BTN_STYLUS to allow tablet matching in udev */ __set_bit(BTN_STYLUS, hi->input->keybit); } } if (!suffix) { switch (application) { switch (hi->application) { case HID_GD_KEYBOARD: case HID_GD_KEYPAD: case HID_GD_MOUSE: Loading @@ -1569,7 +1562,6 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi) suffix = "UNKNOWN"; break; } } if (suffix) { name = devm_kzalloc(&hi->input->dev, Loading Loading
drivers/hid/hid-multitouch.c +32 −40 Original line number Diff line number Diff line Loading @@ -1319,6 +1319,13 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi, return mt_touch_input_mapping(hdev, hi, field, usage, bit, max, application); /* * some egalax touchscreens have "application == DG_TOUCHSCREEN" * for the stylus. Overwrite the hid_input application */ if (field->physical == HID_DG_STYLUS) hi->application = HID_DG_STYLUS; /* let hid-core decide for the others */ return 0; } Loading Loading @@ -1507,14 +1514,12 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi) struct mt_device *td = hid_get_drvdata(hdev); char *name; const char *suffix = NULL; unsigned int application = 0; struct mt_report_data *rdata; struct mt_application *mt_application = NULL; struct hid_report *report; int ret; list_for_each_entry(report, &hi->reports, hidinput_list) { application = report->application; rdata = mt_find_report_data(td, report); if (!rdata) { hid_err(hdev, "failed to allocate data for report\n"); Loading @@ -1529,21 +1534,9 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi) if (ret) return ret; } /* * some egalax touchscreens have "application == DG_TOUCHSCREEN" * for the stylus. Check this first, and then rely on * the application field. */ if (report->field[0]->physical == HID_DG_STYLUS) { suffix = "Pen"; /* force BTN_STYLUS to allow tablet matching in udev */ __set_bit(BTN_STYLUS, hi->input->keybit); } } if (!suffix) { switch (application) { switch (hi->application) { case HID_GD_KEYBOARD: case HID_GD_KEYPAD: case HID_GD_MOUSE: Loading @@ -1569,7 +1562,6 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi) suffix = "UNKNOWN"; break; } } if (suffix) { name = devm_kzalloc(&hi->input->dev, Loading