@@ -212,6 +212,7 @@ static void mt_post_parse(struct mt_device *td, struct mt_application *app);
212212#define MT_CLS_GOOGLE 0x0111
213213#define MT_CLS_RAZER_BLADE_STEALTH 0x0112
214214#define MT_CLS_SMART_TECH 0x0113
215+ #define MT_CLS_SIS 0x0457
215216
216217#define MT_DEFAULT_MAXCONTACT 10
217218#define MT_MAX_MAXCONTACT 250
@@ -396,6 +397,11 @@ static const struct mt_class mt_classes[] = {
396397 MT_QUIRK_CONTACT_CNT_ACCURATE |
397398 MT_QUIRK_SEPARATE_APP_REPORT ,
398399 },
400+ { .name = MT_CLS_SIS ,
401+ .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
402+ MT_QUIRK_ALWAYS_VALID |
403+ MT_QUIRK_CONTACT_CNT_ACCURATE ,
404+ },
399405 { }
400406};
401407
@@ -1446,7 +1452,8 @@ static __u8 *mt_report_fixup(struct hid_device *hdev, __u8 *rdesc,
14461452{
14471453 if (hdev -> vendor == I2C_VENDOR_ID_GOODIX &&
14481454 (hdev -> product == I2C_DEVICE_ID_GOODIX_01E8 ||
1449- hdev -> product == I2C_DEVICE_ID_GOODIX_01E9 )) {
1455+ hdev -> product == I2C_DEVICE_ID_GOODIX_01E9 ||
1456+ hdev -> product == I2C_DEVICE_ID_GOODIX_01E0 )) {
14501457 if (rdesc [607 ] == 0x15 ) {
14511458 rdesc [607 ] = 0x25 ;
14521459 dev_info (
@@ -1811,6 +1818,9 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
18111818 if (mtclass -> quirks & MT_QUIRK_FIX_CONST_CONTACT_ID )
18121819 mt_fix_const_fields (hdev , HID_DG_CONTACTID );
18131820
1821+ if (hdev -> vendor == USB_VENDOR_ID_SIS_TOUCH )
1822+ hdev -> quirks |= HID_QUIRK_NOGET ;
1823+
18141824 ret = hid_hw_start (hdev , HID_CONNECT_DEFAULT );
18151825 if (ret )
18161826 return ret ;
@@ -2065,7 +2075,10 @@ static const struct hid_device_id mt_devices[] = {
20652075 I2C_DEVICE_ID_GOODIX_01E8 ) },
20662076 { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU ,
20672077 HID_DEVICE (BUS_I2C , HID_GROUP_ANY , I2C_VENDOR_ID_GOODIX ,
2068- I2C_DEVICE_ID_GOODIX_01E8 ) },
2078+ I2C_DEVICE_ID_GOODIX_01E9 ) },
2079+ { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU ,
2080+ HID_DEVICE (BUS_I2C , HID_GROUP_ANY , I2C_VENDOR_ID_GOODIX ,
2081+ I2C_DEVICE_ID_GOODIX_01E0 ) },
20692082
20702083 /* GoodTouch panels */
20712084 { .driver_data = MT_CLS_NSMU ,
@@ -2113,6 +2126,12 @@ static const struct hid_device_id mt_devices[] = {
21132126 USB_VENDOR_ID_LENOVO ,
21142127 USB_DEVICE_ID_LENOVO_X12_TAB ) },
21152128
2129+ /* Lenovo X12 TAB Gen 2 */
2130+ { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU ,
2131+ HID_DEVICE (BUS_USB , HID_GROUP_MULTITOUCH_WIN_8 ,
2132+ USB_VENDOR_ID_LENOVO ,
2133+ USB_DEVICE_ID_LENOVO_X12_TAB2 ) },
2134+
21162135 /* Logitech devices */
21172136 { .driver_data = MT_CLS_NSMU ,
21182137 HID_DEVICE (BUS_BLUETOOTH , HID_GROUP_MULTITOUCH_WIN_8 ,
@@ -2275,6 +2294,11 @@ static const struct hid_device_id mt_devices[] = {
22752294 HID_DEVICE (BUS_USB , HID_GROUP_MULTITOUCH_WIN_8 , USB_VENDOR_ID_GOOGLE ,
22762295 USB_DEVICE_ID_GOOGLE_WHISKERS ) },
22772296
2297+ /* sis */
2298+ { .driver_data = MT_CLS_SIS ,
2299+ HID_DEVICE (HID_BUS_ANY , HID_GROUP_ANY , USB_VENDOR_ID_SIS_TOUCH ,
2300+ HID_ANY_ID ) },
2301+
22782302 /* Generic MT device */
22792303 { HID_DEVICE (HID_BUS_ANY , HID_GROUP_MULTITOUCH , HID_ANY_ID , HID_ANY_ID ) },
22802304
0 commit comments