209
285
input_set_abs_params(input, code, fmin, fmax, fuzz, 0);
288
static void mt_store_field(struct hid_usage *usage, struct mt_device *td,
289
struct hid_input *hi)
291
struct mt_fields *f = td->fields;
293
if (f->length >= HID_MAX_FIELDS)
296
f->usages[f->length++] = usage->hid;
212
299
static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
213
300
struct hid_field *field, struct hid_usage *usage,
214
301
unsigned long **bit, int *max)
216
303
struct mt_device *td = hid_get_drvdata(hdev);
217
struct mt_class *cls = td->mtclass;
218
__s32 quirks = cls->quirks;
304
struct mt_class *cls = &td->mtclass;
220
307
/* Only map fields from TouchScreen or TouchPad collections.
221
* We need to ignore fields that belong to other collections
222
* such as Mouse that might have the same GenericDesktop usages. */
308
* We need to ignore fields that belong to other collections
309
* such as Mouse that might have the same GenericDesktop usages. */
223
310
if (field->application == HID_DG_TOUCHSCREEN)
224
311
set_bit(INPUT_PROP_DIRECT, hi->input->propbit);
225
else if (field->application == HID_DG_TOUCHPAD)
312
else if (field->application != HID_DG_TOUCHPAD)
315
/* In case of an indirect device (touchpad), we need to add
316
* specific BTN_TOOL_* to be handled by the synaptics xorg
318
* We also consider that touchscreens providing buttons are touchpads.
320
if (field->application == HID_DG_TOUCHPAD ||
321
(usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON ||
226
323
set_bit(INPUT_PROP_POINTER, hi->input->propbit);
324
set_bit(BTN_TOOL_FINGER, hi->input->keybit);
325
set_bit(BTN_TOOL_DOUBLETAP, hi->input->keybit);
326
set_bit(BTN_TOOL_TRIPLETAP, hi->input->keybit);
327
set_bit(BTN_TOOL_QUADTAP, hi->input->keybit);
330
/* eGalax devices provide a Digitizer.Stylus input which overrides
331
* the correct Digitizers.Finger X/Y ranges.
332
* Let's just ignore this input. */
333
if (field->physical == HID_DG_STYLUS)
230
336
switch (usage->hid & HID_USAGE_PAGE) {
232
338
case HID_UP_GENDESK:
233
339
switch (usage->hid) {
235
if (quirks & MT_QUIRK_EGALAX_XYZ_FIXUP)
236
field->logical_maximum = 32760;
237
341
hid_map_usage(hi, usage, bit, max,
238
342
EV_ABS, ABS_MT_POSITION_X);
239
343
set_abs(hi->input, ABS_MT_POSITION_X, field,
241
345
/* touchscreen emulation */
242
346
set_abs(hi->input, ABS_X, field, cls->sn_move);
243
if (td->last_mt_collection == usage->collection_index) {
244
td->last_slot_field = usage->hid;
245
td->last_field_index = field->index;
347
mt_store_field(usage, td, hi);
348
td->last_field_index = field->index;
249
if (quirks & MT_QUIRK_EGALAX_XYZ_FIXUP)
250
field->logical_maximum = 32760;
251
351
hid_map_usage(hi, usage, bit, max,
252
352
EV_ABS, ABS_MT_POSITION_Y);
253
353
set_abs(hi->input, ABS_MT_POSITION_Y, field,
255
355
/* touchscreen emulation */
256
356
set_abs(hi->input, ABS_Y, field, cls->sn_move);
257
if (td->last_mt_collection == usage->collection_index) {
258
td->last_slot_field = usage->hid;
259
td->last_field_index = field->index;
357
mt_store_field(usage, td, hi);
358
td->last_field_index = field->index;
606
774
{ .driver_data = MT_CLS_3M,
607
HID_USB_DEVICE(USB_VENDOR_ID_3M,
775
MT_USB_DEVICE(USB_VENDOR_ID_3M,
608
776
USB_DEVICE_ID_3M1968) },
609
777
{ .driver_data = MT_CLS_3M,
610
HID_USB_DEVICE(USB_VENDOR_ID_3M,
778
MT_USB_DEVICE(USB_VENDOR_ID_3M,
611
779
USB_DEVICE_ID_3M2256) },
612
780
{ .driver_data = MT_CLS_3M,
613
HID_USB_DEVICE(USB_VENDOR_ID_3M,
781
MT_USB_DEVICE(USB_VENDOR_ID_3M,
614
782
USB_DEVICE_ID_3M3266) },
616
784
/* ActionStar panels */
617
785
{ .driver_data = MT_CLS_DEFAULT,
618
HID_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR,
786
MT_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR,
619
787
USB_DEVICE_ID_ACTIONSTAR_1011) },
621
789
/* Atmel panels */
622
790
{ .driver_data = MT_CLS_SERIAL,
623
HID_USB_DEVICE(USB_VENDOR_ID_ATMEL,
791
MT_USB_DEVICE(USB_VENDOR_ID_ATMEL,
624
792
USB_DEVICE_ID_ATMEL_MULTITOUCH) },
793
{ .driver_data = MT_CLS_SERIAL,
794
MT_USB_DEVICE(USB_VENDOR_ID_ATMEL,
795
USB_DEVICE_ID_ATMEL_MXT_DIGITIZER) },
797
/* Baanto multitouch devices */
798
{ .driver_data = MT_CLS_DEFAULT,
799
MT_USB_DEVICE(USB_VENDOR_ID_BAANTO,
800
USB_DEVICE_ID_BAANTO_MT_190W2) },
626
801
/* Cando panels */
627
802
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
628
HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
803
MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
629
804
USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
630
805
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
631
HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
806
MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
632
807
USB_DEVICE_ID_CANDO_MULTI_TOUCH_10_1) },
633
808
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
634
HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
809
MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
635
810
USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
636
811
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
637
HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
812
MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
638
813
USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) },
640
815
/* Chunghwa Telecom touch panels */
641
816
{ .driver_data = MT_CLS_DEFAULT,
642
HID_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT,
817
MT_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT,
643
818
USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) },
645
820
/* CVTouch panels */
646
821
{ .driver_data = MT_CLS_DEFAULT,
647
HID_USB_DEVICE(USB_VENDOR_ID_CVTOUCH,
822
MT_USB_DEVICE(USB_VENDOR_ID_CVTOUCH,
648
823
USB_DEVICE_ID_CVTOUCH_SCREEN) },
650
825
/* Cypress panel */
655
830
/* eGalax devices (resistive) */
656
831
{ .driver_data = MT_CLS_EGALAX,
657
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
832
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
658
833
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) },
659
834
{ .driver_data = MT_CLS_EGALAX,
660
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
835
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
661
836
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) },
663
838
/* eGalax devices (capacitive) */
664
839
{ .driver_data = MT_CLS_EGALAX,
665
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
840
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
666
841
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) },
842
{ .driver_data = MT_CLS_EGALAX_SERIAL,
843
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
844
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207) },
845
{ .driver_data = MT_CLS_EGALAX_SERIAL,
846
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
847
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E) },
848
{ .driver_data = MT_CLS_EGALAX_SERIAL,
849
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
850
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224) },
851
{ .driver_data = MT_CLS_EGALAX_SERIAL,
852
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
853
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A) },
667
854
{ .driver_data = MT_CLS_EGALAX,
668
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
855
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
669
856
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) },
857
{ .driver_data = MT_CLS_EGALAX_SERIAL,
858
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
859
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262) },
670
860
{ .driver_data = MT_CLS_EGALAX,
671
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
861
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
672
862
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
863
{ .driver_data = MT_CLS_EGALAX_SERIAL,
864
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
865
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA) },
673
866
{ .driver_data = MT_CLS_EGALAX,
674
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
867
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
675
868
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA) },
676
869
{ .driver_data = MT_CLS_EGALAX,
677
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
870
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
678
871
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
679
{ .driver_data = MT_CLS_EGALAX,
680
HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
872
{ .driver_data = MT_CLS_EGALAX_SERIAL,
873
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
874
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349) },
875
{ .driver_data = MT_CLS_EGALAX_SERIAL,
876
MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
681
877
USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
683
879
/* Elo TouchSystems IntelliTouch Plus panel */
684
880
{ .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
685
HID_USB_DEVICE(USB_VENDOR_ID_ELO,
881
MT_USB_DEVICE(USB_VENDOR_ID_ELO,
686
882
USB_DEVICE_ID_ELO_TS2515) },
688
884
/* GeneralTouch panel */
689
885
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
690
HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,
886
MT_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,
691
887
USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS) },
889
/* Gametel game controller */
890
{ .driver_data = MT_CLS_DEFAULT,
891
MT_BT_DEVICE(USB_VENDOR_ID_FRUCTEL,
892
USB_DEVICE_ID_GAMETEL_MT_MODE) },
693
894
/* GoodTouch panels */
694
895
{ .driver_data = MT_CLS_DEFAULT,
695
HID_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH,
896
MT_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH,
696
897
USB_DEVICE_ID_GOODTOUCH_000f) },
698
899
/* Hanvon panels */
699
900
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
700
HID_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT,
901
MT_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT,
701
902
USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) },
703
904
/* Ideacom panel */
704
905
{ .driver_data = MT_CLS_SERIAL,
705
HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM,
906
MT_USB_DEVICE(USB_VENDOR_ID_IDEACOM,
706
907
USB_DEVICE_ID_IDEACOM_IDC6650) },
908
{ .driver_data = MT_CLS_SERIAL,
909
MT_USB_DEVICE(USB_VENDOR_ID_IDEACOM,
910
USB_DEVICE_ID_IDEACOM_IDC6651) },
708
912
/* Ilitek dual touch panel */
709
913
{ .driver_data = MT_CLS_DEFAULT,
710
HID_USB_DEVICE(USB_VENDOR_ID_ILITEK,
914
MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
711
915
USB_DEVICE_ID_ILITEK_MULTITOUCH) },
713
917
/* IRTOUCH panels */
714
918
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
715
HID_USB_DEVICE(USB_VENDOR_ID_IRTOUCHSYSTEMS,
919
MT_USB_DEVICE(USB_VENDOR_ID_IRTOUCHSYSTEMS,
716
920
USB_DEVICE_ID_IRTOUCH_INFRARED_USB) },
718
922
/* LG Display panels */
719
923
{ .driver_data = MT_CLS_DEFAULT,
720
HID_USB_DEVICE(USB_VENDOR_ID_LG,
924
MT_USB_DEVICE(USB_VENDOR_ID_LG,
721
925
USB_DEVICE_ID_LG_MULTITOUCH) },
723
927
/* Lumio panels */
724
928
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
725
HID_USB_DEVICE(USB_VENDOR_ID_LUMIO,
929
MT_USB_DEVICE(USB_VENDOR_ID_LUMIO,
726
930
USB_DEVICE_ID_CRYSTALTOUCH) },
727
931
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
728
HID_USB_DEVICE(USB_VENDOR_ID_LUMIO,
932
MT_USB_DEVICE(USB_VENDOR_ID_LUMIO,
729
933
USB_DEVICE_ID_CRYSTALTOUCH_DUAL) },
731
935
/* MosArt panels */
732
936
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
733
HID_USB_DEVICE(USB_VENDOR_ID_ASUS,
937
MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
734
938
USB_DEVICE_ID_ASUS_T91MT)},
735
939
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
736
HID_USB_DEVICE(USB_VENDOR_ID_ASUS,
940
MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
737
941
USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO) },
738
942
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
739
HID_USB_DEVICE(USB_VENDOR_ID_TURBOX,
943
MT_USB_DEVICE(USB_VENDOR_ID_TURBOX,
740
944
USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART) },
946
/* Panasonic panels */
947
{ .driver_data = MT_CLS_PANASONIC,
948
MT_USB_DEVICE(USB_VENDOR_ID_PANASONIC,
949
USB_DEVICE_ID_PANABOARD_UBT780) },
950
{ .driver_data = MT_CLS_PANASONIC,
951
MT_USB_DEVICE(USB_VENDOR_ID_PANASONIC,
952
USB_DEVICE_ID_PANABOARD_UBT880) },
742
954
/* PenMount panels */
743
955
{ .driver_data = MT_CLS_CONFIDENCE,
744
HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT,
956
MT_USB_DEVICE(USB_VENDOR_ID_PENMOUNT,
745
957
USB_DEVICE_ID_PENMOUNT_PCI) },
959
/* PixArt optical touch screen */
960
{ .driver_data = MT_CLS_INRANGE_CONTACTNUMBER,
961
MT_USB_DEVICE(USB_VENDOR_ID_PIXART,
962
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) },
963
{ .driver_data = MT_CLS_INRANGE_CONTACTNUMBER,
964
MT_USB_DEVICE(USB_VENDOR_ID_PIXART,
965
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) },
966
{ .driver_data = MT_CLS_INRANGE_CONTACTNUMBER,
967
MT_USB_DEVICE(USB_VENDOR_ID_PIXART,
968
USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) },
747
970
/* PixCir-based panels */
748
971
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
749
HID_USB_DEVICE(USB_VENDOR_ID_HANVON,
972
MT_USB_DEVICE(USB_VENDOR_ID_HANVON,
750
973
USB_DEVICE_ID_HANVON_MULTITOUCH) },
751
974
{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
752
HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
975
MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
753
976
USB_DEVICE_ID_CANDO_PIXCIR_MULTI_TOUCH) },
978
/* Quanta-based panels */
979
{ .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
980
MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
981
USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
982
{ .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
983
MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
984
USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001) },
985
{ .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
986
MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
987
USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008) },
755
989
/* Stantum panels */
756
990
{ .driver_data = MT_CLS_CONFIDENCE,
757
HID_USB_DEVICE(USB_VENDOR_ID_STANTUM,
991
MT_USB_DEVICE(USB_VENDOR_ID_STANTUM,
758
992
USB_DEVICE_ID_MTP)},
759
993
{ .driver_data = MT_CLS_CONFIDENCE,
760
HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
994
MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
761
995
USB_DEVICE_ID_MTP_STM)},
762
996
{ .driver_data = MT_CLS_CONFIDENCE,
763
HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX,
997
MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX,
764
998
USB_DEVICE_ID_MTP_SITRONIX)},
1000
/* TopSeed panels */
1001
{ .driver_data = MT_CLS_TOPSEED,
1002
MT_USB_DEVICE(USB_VENDOR_ID_TOPSEED2,
1003
USB_DEVICE_ID_TOPSEED2_PERIPAD_701) },
766
1005
/* Touch International panels */
767
1006
{ .driver_data = MT_CLS_DEFAULT,
768
HID_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL,
1007
MT_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL,
769
1008
USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH) },
771
1010
/* Unitec panels */
772
1011
{ .driver_data = MT_CLS_DEFAULT,
773
HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
1012
MT_USB_DEVICE(USB_VENDOR_ID_UNITEC,
774
1013
USB_DEVICE_ID_UNITEC_USB_TOUCH_0709) },
775
1014
{ .driver_data = MT_CLS_DEFAULT,
776
HID_USB_DEVICE(USB_VENDOR_ID_UNITEC,
1015
MT_USB_DEVICE(USB_VENDOR_ID_UNITEC,
777
1016
USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19) },
779
1018
{ .driver_data = MT_CLS_DEFAULT,
780
HID_USB_DEVICE(USB_VENDOR_ID_XAT,
1019
MT_USB_DEVICE(USB_VENDOR_ID_XAT,
781
1020
USB_DEVICE_ID_XAT_CSR) },
784
1023
{ .driver_data = MT_CLS_DEFAULT,
785
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1024
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
786
1025
USB_DEVICE_ID_XIROKU_SPX) },
787
1026
{ .driver_data = MT_CLS_DEFAULT,
788
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1027
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
789
1028
USB_DEVICE_ID_XIROKU_MPX) },
790
1029
{ .driver_data = MT_CLS_DEFAULT,
791
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1030
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
792
1031
USB_DEVICE_ID_XIROKU_CSR) },
793
1032
{ .driver_data = MT_CLS_DEFAULT,
794
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1033
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
795
1034
USB_DEVICE_ID_XIROKU_SPX1) },
796
1035
{ .driver_data = MT_CLS_DEFAULT,
797
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1036
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
798
1037
USB_DEVICE_ID_XIROKU_MPX1) },
799
1038
{ .driver_data = MT_CLS_DEFAULT,
800
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1039
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
801
1040
USB_DEVICE_ID_XIROKU_CSR1) },
802
1041
{ .driver_data = MT_CLS_DEFAULT,
803
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1042
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
804
1043
USB_DEVICE_ID_XIROKU_SPX2) },
805
1044
{ .driver_data = MT_CLS_DEFAULT,
806
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1045
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
807
1046
USB_DEVICE_ID_XIROKU_MPX2) },
808
1047
{ .driver_data = MT_CLS_DEFAULT,
809
HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1048
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
810
1049
USB_DEVICE_ID_XIROKU_CSR2) },
1051
/* Generic MT device */
1052
{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_MULTITOUCH, HID_ANY_ID, HID_ANY_ID) },
814
1055
MODULE_DEVICE_TABLE(hid, mt_devices);