From 21ea2cdf44a3142b9a7b2dc07f12a537aeaec5da Mon Sep 17 00:00:00 2001 From: Aditya Garg Date: Wed, 11 Jun 2025 21:36:54 +0000 Subject: [PATCH] Use upstreamed multitouch patches --- ...et-the-contact-ID-from-HID_DG_TRANSD.patch | 69 +++++++++++++++++++ ...-support-getting-the-contact-ID-from.patch | 40 ----------- ...upport-getting-the-tip-state-from-HI.patch | 45 ++++++------ ...ake-cls-maxcontacts-into-account-for.patch | 42 +++++------ ...llow-specifying-if-a-device-is-direc.patch | 57 --------------- ...pecify-that-Apple-Touch-Bar-is-direc.patch | 39 +++++++++++ ...ch-add-device-ID-for-Apple-Touch-Bar.patch | 61 +++++++--------- version | 2 +- 8 files changed, 174 insertions(+), 181 deletions(-) create mode 100644 1007-HID-multitouch-Get-the-contact-ID-from-HID_DG_TRANSD.patch delete mode 100644 1007-HID-multitouch-support-getting-the-contact-ID-from.patch delete mode 100644 1010-HID-multitouch-allow-specifying-if-a-device-is-direc.patch create mode 100644 1010-HID-multitouch-specify-that-Apple-Touch-Bar-is-direc.patch rename 1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bars.patch => 1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch (57%) diff --git a/1007-HID-multitouch-Get-the-contact-ID-from-HID_DG_TRANSD.patch b/1007-HID-multitouch-Get-the-contact-ID-from-HID_DG_TRANSD.patch new file mode 100644 index 0000000..b6b0ccd --- /dev/null +++ b/1007-HID-multitouch-Get-the-contact-ID-from-HID_DG_TRANSD.patch @@ -0,0 +1,69 @@ +From 0b4c05ff73f1f61ecdae7ea99217fc4371573c4c Mon Sep 17 00:00:00 2001 +From: Kerem Karabay +Date: Tue, 27 May 2025 22:13:13 +0530 +Subject: [PATCH 1/5] HID: multitouch: Get the contact ID from + HID_DG_TRANSDUCER_INDEX fields in case of Apple Touch Bar + +In Apple Touch Bar, the contact ID is contained in fields with the +HID_DG_TRANSDUCER_INDEX usage rather than HID_DG_CONTACTID, thus differing +from the HID spec. Add a quirk for the same. + +Acked-by: Benjamin Tissoires +Signed-off-by: Kerem Karabay +Co-developed-by: Aditya Garg +Signed-off-by: Aditya Garg +--- + drivers/hid/hid-multitouch.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index 7ac8e16e6..2788a081f 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -73,6 +73,7 @@ MODULE_LICENSE("GPL"); + #define MT_QUIRK_FORCE_MULTI_INPUT BIT(20) + #define MT_QUIRK_DISABLE_WAKEUP BIT(21) + #define MT_QUIRK_ORIENTATION_INVERT BIT(22) ++#define MT_QUIRK_APPLE_TOUCHBAR BIT(23) + + #define MT_INPUTMODE_TOUCHSCREEN 0x02 + #define MT_INPUTMODE_TOUCHPAD 0x03 +@@ -625,6 +626,7 @@ static struct mt_application *mt_find_application(struct mt_device *td, + static struct mt_report_data *mt_allocate_report_data(struct mt_device *td, + struct hid_report *report) + { ++ struct mt_class *cls = &td->mtclass; + struct mt_report_data *rdata; + struct hid_field *field; + int r, n; +@@ -649,7 +651,11 @@ static struct mt_report_data *mt_allocate_report_data(struct mt_device *td, + + if (field->logical == HID_DG_FINGER || td->hdev->group != HID_GROUP_MULTITOUCH_WIN_8) { + for (n = 0; n < field->report_count; n++) { +- if (field->usage[n].hid == HID_DG_CONTACTID) { ++ unsigned int hid = field->usage[n].hid; ++ ++ if (hid == HID_DG_CONTACTID || ++ (cls->quirks & MT_QUIRK_APPLE_TOUCHBAR && ++ hid == HID_DG_TRANSDUCER_INDEX)) { + rdata->is_mt_collection = true; + break; + } +@@ -827,6 +833,14 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, + EV_KEY, BTN_TOUCH); + MT_STORE_FIELD(tip_state); + return 1; ++ case HID_DG_TRANSDUCER_INDEX: ++ /* ++ * Contact ID in case of Apple Touch Bars is contained ++ * in fields with HID_DG_TRANSDUCER_INDEX usage. ++ */ ++ if (!(cls->quirks & MT_QUIRK_APPLE_TOUCHBAR)) ++ return 0; ++ fallthrough; + case HID_DG_CONTACTID: + MT_STORE_FIELD(contactid); + app->touches_by_report++; +-- +2.49.0 + diff --git a/1007-HID-multitouch-support-getting-the-contact-ID-from.patch b/1007-HID-multitouch-support-getting-the-contact-ID-from.patch deleted file mode 100644 index 23b98c4..0000000 --- a/1007-HID-multitouch-support-getting-the-contact-ID-from.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 2f9be28549307b4ac51e8d66bf3b8d5e0621466d Mon Sep 17 00:00:00 2001 -From: Kerem Karabay -Date: Wed, 19 Jul 2023 19:37:14 +0300 -Subject: [PATCH 04/12] HID: multitouch: support getting the contact ID from - HID_DG_TRANSDUCER_INDEX fields - -This is needed to support Apple Touch Bars, where the contact ID is -contained in fields with the HID_DG_TRANSDUCER_INDEX usage. - -Signed-off-by: Kerem Karabay ---- - drivers/hid/hid-multitouch.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index e31be0cb8..902a59928 100644 ---- a/drivers/hid/hid-multitouch.c -+++ b/drivers/hid/hid-multitouch.c -@@ -636,7 +636,9 @@ static struct mt_report_data *mt_allocate_report_data(struct mt_device *td, - - if (field->logical == HID_DG_FINGER || td->hdev->group != HID_GROUP_MULTITOUCH_WIN_8) { - for (n = 0; n < field->report_count; n++) { -- if (field->usage[n].hid == HID_DG_CONTACTID) { -+ unsigned int hid = field->usage[n].hid; -+ -+ if (hid == HID_DG_CONTACTID || hid == HID_DG_TRANSDUCER_INDEX) { - rdata->is_mt_collection = true; - break; - } -@@ -815,6 +817,7 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, - MT_STORE_FIELD(tip_state); - return 1; - case HID_DG_CONTACTID: -+ case HID_DG_TRANSDUCER_INDEX: - MT_STORE_FIELD(contactid); - app->touches_by_report++; - return 1; --- -2.42.0 - diff --git a/1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch b/1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch index a0a60e1..c9edb43 100644 --- a/1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch +++ b/1008-HID-multitouch-support-getting-the-tip-state-from-HI.patch @@ -1,48 +1,45 @@ -From 6162d328fe7b2cf5a3ee8c29bdb229e9528c7a6c Mon Sep 17 00:00:00 2001 +From 82c4b9ce599e240935c9c410a9c4527d0a62bff7 Mon Sep 17 00:00:00 2001 From: Kerem Karabay -Date: Wed, 19 Jul 2023 19:44:10 +0300 -Subject: [PATCH 05/12] HID: multitouch: support getting the tip state from - HID_DG_TOUCH fields +Date: Tue, 27 May 2025 22:13:14 +0530 +Subject: [PATCH 2/5] HID: multitouch: support getting the tip state from + HID_DG_TOUCH fields in Apple Touch Bar -This is necessary on Apple Touch Bars, where the tip state is contained -in fields with the HID_DG_TOUCH usage. This feature is gated by a quirk -in order to prevent breaking other devices, see commit c2ef8f21ea8f +In Apple Touch Bar, the tip state is contained in fields with the +HID_DG_TOUCH usage. This feature is gated by a quirk in order to +prevent breaking other devices, see commit c2ef8f21ea8f ("HID: multitouch: add support for trackpads"). +Acked-by: Benjamin Tissoires Signed-off-by: Kerem Karabay +Co-developed-by: Aditya Garg +Signed-off-by: Aditya Garg --- - drivers/hid/hid-multitouch.c | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) + drivers/hid/hid-multitouch.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index 902a59928..dd5509eeb 100644 +index 2788a081f..99ecf6c8e 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c -@@ -72,6 +72,7 @@ MODULE_LICENSE("GPL"); - #define MT_QUIRK_FORCE_MULTI_INPUT BIT(20) - #define MT_QUIRK_DISABLE_WAKEUP BIT(21) - #define MT_QUIRK_ORIENTATION_INVERT BIT(22) -+#define MT_QUIRK_TOUCH_IS_TIPSTATE BIT(23) - - #define MT_INPUTMODE_TOUCHSCREEN 0x02 - #define MT_INPUTMODE_TOUCHPAD 0x03 -@@ -810,6 +811,15 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, +@@ -827,6 +827,17 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, MT_STORE_FIELD(confidence_state); return 1; + case HID_DG_TOUCH: + /* + * Legacy devices use TIPSWITCH and not TOUCH. -+ * Let's just ignore this field unless the quirk is set. ++ * One special case here is of the Apple Touch Bars. ++ * In these devices, the tip state is contained in ++ * fields with the HID_DG_TOUCH usage. ++ * Let's just ignore this field for other devices. + */ -+ if (!(cls->quirks & MT_QUIRK_TOUCH_IS_TIPSTATE)) ++ if (!(cls->quirks & MT_QUIRK_APPLE_TOUCHBAR)) + return -1; -+ + fallthrough; case HID_DG_TIPSWITCH: if (field->application != HID_GD_SYSTEM_MULTIAXIS) input_set_capability(hi->input, -@@ -873,10 +883,6 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, +@@ -897,10 +908,6 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, case HID_DG_CONTACTMAX: /* contact max are global to the report */ return -1; @@ -54,5 +51,5 @@ index 902a59928..dd5509eeb 100644 /* let hid-input decide for the others */ return 0; -- -2.42.0 +2.49.0 diff --git a/1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch b/1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch index c750ee8..df60cb8 100644 --- a/1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch +++ b/1009-HID-multitouch-take-cls-maxcontacts-into-account-for.patch @@ -1,42 +1,38 @@ -From e923c6e1a5a508e341851ae020cdb3e7333ccd18 Mon Sep 17 00:00:00 2001 +From 075eeea99fd4fe17ff5ce506fe429493fd5f8a7f Mon Sep 17 00:00:00 2001 From: Kerem Karabay -Date: Wed, 19 Jul 2023 19:26:57 +0300 -Subject: [PATCH 06/12] HID: multitouch: take cls->maxcontacts into account for - devices without a HID_DG_CONTACTMAX field too +Date: Tue, 27 May 2025 22:13:15 +0530 +Subject: [PATCH 3/5] HID: multitouch: take cls->maxcontacts into account for + Apple Touch Bar even without a HID_DG_CONTACTMAX field -This is needed for Apple Touch Bars, where no HID_DG_CONTACTMAX field is -present and the maximum contact count is greater than the default. +In Apple Touch Bar, the HID_DG_CONTACTMAX is not present, but the maximum +contact count is still greater than the default. Add quirks for the same. +Acked-by: Benjamin Tissoires Signed-off-by: Kerem Karabay +Co-developed-by: Aditya Garg +Signed-off-by: Aditya Garg --- - drivers/hid/hid-multitouch.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) + drivers/hid/hid-multitouch.c | 7 +++++++ + 1 file changed, 7 insertions(+) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index dd5509eeb..624c1d3cc 100644 +index 99ecf6c8e..f71500d1f 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c -@@ -491,9 +491,6 @@ static void mt_feature_mapping(struct hid_device *hdev, - if (!td->maxcontacts && - field->logical_maximum <= MT_MAX_MAXCONTACT) - td->maxcontacts = field->logical_maximum; -- if (td->mtclass.maxcontacts) -- /* check if the maxcontacts is given by the class */ -- td->maxcontacts = td->mtclass.maxcontacts; - - break; - case HID_DG_BUTTONTYPE: -@@ -1310,6 +1307,10 @@ static int mt_touch_input_configured(struct hid_device *hdev, +@@ -1335,6 +1335,13 @@ static int mt_touch_input_configured(struct hid_device *hdev, struct input_dev *input = hi->input; int ret; -+ /* check if the maxcontacts is given by the class */ -+ if (cls->maxcontacts) ++ /* ++ * HID_DG_CONTACTMAX field is not present on Apple Touch Bars, ++ * but the maximum contact count is greater than the default. ++ */ ++ if (cls->quirks & MT_QUIRK_APPLE_TOUCHBAR && cls->maxcontacts) + td->maxcontacts = cls->maxcontacts; + if (!td->maxcontacts) td->maxcontacts = MT_DEFAULT_MAXCONTACT; -- -2.42.0 +2.49.0 diff --git a/1010-HID-multitouch-allow-specifying-if-a-device-is-direc.patch b/1010-HID-multitouch-allow-specifying-if-a-device-is-direc.patch deleted file mode 100644 index f76b5de..0000000 --- a/1010-HID-multitouch-allow-specifying-if-a-device-is-direc.patch +++ /dev/null @@ -1,57 +0,0 @@ -From b9f7232d2696b91ae98fadd7b14c531aa8edceb5 Mon Sep 17 00:00:00 2001 -From: Kerem Karabay -Date: Wed, 19 Jul 2023 19:39:53 +0300 -Subject: [PATCH 07/12] HID: multitouch: allow specifying if a device is direct - in a class - -Currently the driver determines the device type based on the -application, but this value is not reliable on Apple Touch Bars, where -the application is HID_DG_TOUCHPAD even though the devices are direct, -so allow setting it in classes. - -Signed-off-by: Kerem Karabay ---- - drivers/hid/hid-multitouch.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index 624c1d3cc..f98fb36ff 100644 ---- a/drivers/hid/hid-multitouch.c -+++ b/drivers/hid/hid-multitouch.c -@@ -147,6 +147,7 @@ struct mt_class { - __s32 sn_height; /* Signal/noise ratio for height events */ - __s32 sn_pressure; /* Signal/noise ratio for pressure events */ - __u8 maxcontacts; -+ bool is_direct; /* true for touchscreens */ - bool is_indirect; /* true for touchpads */ - bool export_all_inputs; /* do not ignore mouse, keyboards, etc... */ - }; -@@ -564,13 +565,13 @@ static struct mt_application *mt_allocate_application(struct mt_device *td, - mt_application->application = application; - INIT_LIST_HEAD(&mt_application->mt_usages); - -- if (application == HID_DG_TOUCHSCREEN) -+ if (application == HID_DG_TOUCHSCREEN && !td->mtclass.is_indirect) - mt_application->mt_flags |= INPUT_MT_DIRECT; - - /* - * Model touchscreens providing buttons as touchpads. - */ -- if (application == HID_DG_TOUCHPAD) { -+ if (application == HID_DG_TOUCHPAD && !td->mtclass.is_direct) { - mt_application->mt_flags |= INPUT_MT_POINTER; - td->inputmode_value = MT_INPUTMODE_TOUCHPAD; - } -@@ -1318,6 +1319,9 @@ static int mt_touch_input_configured(struct hid_device *hdev, - if (td->serial_maybe) - mt_post_parse_default_settings(td, app); - -+ if (cls->is_direct) -+ app->mt_flags |= INPUT_MT_DIRECT; -+ - if (cls->is_indirect) - app->mt_flags |= INPUT_MT_POINTER; - --- -2.42.0 - diff --git a/1010-HID-multitouch-specify-that-Apple-Touch-Bar-is-direc.patch b/1010-HID-multitouch-specify-that-Apple-Touch-Bar-is-direc.patch new file mode 100644 index 0000000..fa99914 --- /dev/null +++ b/1010-HID-multitouch-specify-that-Apple-Touch-Bar-is-direc.patch @@ -0,0 +1,39 @@ +From a6c0007592c20a54d4cd68abe26ded40e0023518 Mon Sep 17 00:00:00 2001 +From: Kerem Karabay +Date: Tue, 27 May 2025 22:13:16 +0530 +Subject: [PATCH 4/5] HID: multitouch: specify that Apple Touch Bar is direct + +Currently the driver determines the device type based on the +application, but this value is not reliable on Apple Touch Bar, where +the application is HID_DG_TOUCHPAD even though this device is direct, +so add a quirk for the same. + +Acked-by: Benjamin Tissoires +Signed-off-by: Kerem Karabay +Co-developed-by: Aditya Garg +Signed-off-by: Aditya Garg +--- + drivers/hid/hid-multitouch.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index f71500d1f..81c02138f 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -1349,6 +1349,13 @@ static int mt_touch_input_configured(struct hid_device *hdev, + if (td->serial_maybe) + mt_post_parse_default_settings(td, app); + ++ /* ++ * The application for Apple Touch Bars is HID_DG_TOUCHPAD, ++ * but these devices are direct. ++ */ ++ if (cls->quirks & MT_QUIRK_APPLE_TOUCHBAR) ++ app->mt_flags |= INPUT_MT_DIRECT; ++ + if (cls->is_indirect) + app->mt_flags |= INPUT_MT_POINTER; + +-- +2.49.0 + diff --git a/1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bars.patch b/1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch similarity index 57% rename from 1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bars.patch rename to 1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch index 8958b4c..f21fe81 100644 --- a/1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bars.patch +++ b/1011-HID-multitouch-add-device-ID-for-Apple-Touch-Bar.patch @@ -1,34 +1,39 @@ -From a74de0b6f2e1b79d54e84dbeab1b310232275d6c Mon Sep 17 00:00:00 2001 +From 23d901ab6ad4751cb05cb8724da1f6199a97ac5d Mon Sep 17 00:00:00 2001 From: Kerem Karabay -Date: Wed, 19 Jul 2023 19:46:02 +0300 -Subject: [PATCH 08/12] HID: multitouch: add device ID for Apple Touch Bars +Date: Tue, 27 May 2025 22:13:17 +0530 +Subject: [PATCH 5/5] HID: multitouch: add device ID for Apple Touch Bar + +This patch adds the device ID of Apple Touch Bar found on x86 MacBook Pros +to the hid-multitouch driver. Note that this is device ID is for T2 Macs. Testing on T1 Macs would be appreciated. Signed-off-by: Kerem Karabay +Co-developed-by: Aditya Garg +Signed-off-by: Aditya Garg --- drivers/hid/Kconfig | 1 + - drivers/hid/hid-multitouch.c | 26 ++++++++++++++++++++++---- - 2 files changed, 23 insertions(+), 4 deletions(-) + drivers/hid/hid-multitouch.c | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+) diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig -index 852de13aa..4e238df87 100644 +index a50325270..403f4517f 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig -@@ -737,6 +737,7 @@ config HID_MULTITOUCH +@@ -769,6 +769,7 @@ config HID_MULTITOUCH Say Y here if you have one of the following devices: - 3M PCT touch screens - ActionStar dual touch panels -+ - Touch Bars on x86 MacBook Pros ++ - Apple Touch Bar on x86 MacBook Pros - Atmel panels - Cando dual touch panels - Chunghwa panels diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index f98fb36ff..f881b19db 100644 +index 81c02138f..a1b251ea6 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c -@@ -215,6 +215,7 @@ static void mt_post_parse(struct mt_device *td, struct mt_application *app); +@@ -221,6 +221,7 @@ static void mt_post_parse(struct mt_device *td, struct mt_application *app); #define MT_CLS_GOOGLE 0x0111 #define MT_CLS_RAZER_BLADE_STEALTH 0x0112 #define MT_CLS_SMART_TECH 0x0113 @@ -36,59 +41,43 @@ index f98fb36ff..f881b19db 100644 #define MT_CLS_SIS 0x0457 #define MT_DEFAULT_MAXCONTACT 10 -@@ -399,6 +400,13 @@ static const struct mt_class mt_classes[] = { +@@ -406,6 +407,12 @@ static const struct mt_class mt_classes[] = { MT_QUIRK_CONTACT_CNT_ACCURATE | MT_QUIRK_SEPARATE_APP_REPORT, }, + { .name = MT_CLS_APPLE_TOUCHBAR, + .quirks = MT_QUIRK_HOVERING | -+ MT_QUIRK_TOUCH_IS_TIPSTATE | -+ MT_QUIRK_SLOT_IS_CONTACTID_MINUS_ONE, -+ .is_direct = true, ++ MT_QUIRK_SLOT_IS_CONTACTID_MINUS_ONE | ++ MT_QUIRK_APPLE_TOUCHBAR, + .maxcontacts = 11, + }, { .name = MT_CLS_SIS, .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP | MT_QUIRK_ALWAYS_VALID | -@@ -1755,6 +1763,15 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) - } - } +@@ -1858,6 +1865,11 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) + if (ret != 0) + return ret; -+ ret = hid_parse(hdev); -+ if (ret != 0) -+ return ret; -+ + if (mtclass->name == MT_CLS_APPLE_TOUCHBAR && + !hid_find_field(hdev, HID_INPUT_REPORT, + HID_DG_TOUCHPAD, HID_DG_TRANSDUCER_INDEX)) + return -ENODEV; + - td = devm_kzalloc(&hdev->dev, sizeof(struct mt_device), GFP_KERNEL); - if (!td) { - dev_err(&hdev->dev, "cannot allocate multitouch data\n"); -@@ -1802,10 +1819,6 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) - - timer_setup(&td->release_timer, mt_expired_timeout, 0); - -- ret = hid_parse(hdev); -- if (ret != 0) -- return ret; -- if (mtclass->quirks & MT_QUIRK_FIX_CONST_CONTACT_ID) mt_fix_const_fields(hdev, HID_DG_CONTACTID); -@@ -2240,6 +2253,11 @@ static const struct hid_device_id mt_devices[] = { +@@ -2339,6 +2351,11 @@ static const struct hid_device_id mt_devices[] = { MT_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR2) }, -+ /* Apple Touch Bars */ ++ /* Apple Touch Bar */ + { .driver_data = MT_CLS_APPLE_TOUCHBAR, + HID_USB_DEVICE(USB_VENDOR_ID_APPLE, -+ USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY) }, ++ USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY) }, + /* Google MT devices */ { .driver_data = MT_CLS_GOOGLE, HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE, -- -2.42.0 +2.49.0 diff --git a/version b/version index 31d38d8..e676a2a 100644 --- a/version +++ b/version @@ -1 +1 @@ -KVER=6.12.23 +KVER=6.12.33