aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-multitouch.c
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2012-05-04 09:32:04 -0400
committerJiri Kosina <jkosina@suse.cz>2012-05-05 17:27:54 -0400
commit2c2110e90b5a859cea8eccad9d42a44da9bfdc2a (patch)
tree4fde2c62b8231858084299fba4d2274e2bfc5fe5 /drivers/hid/hid-multitouch.c
parent8215d557e5f3a70e50e07c857d35c250fee62a73 (diff)
HID: hid-multitouch: Only match MT interfaces
All known hid-multitouch devices currently match any device group. However, some devices present interfaces belonging to different groups, resulting in a race between the hid-generic and hid-multitouch modules. This patch narrows the MT device list to match only HID_GROUP_MULTITOUCH, which solves the problem. As an exception, the USB_DEVICE_ID_CYPRESS_TRUETOUCH panel is not modified, in order to suppress the unwanted extra interfaces of the device. Reported-by: Benjamin Tissoires <benjamin.tissoires@gmail.com> Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@enac.fr> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-multitouch.c')
-rw-r--r--drivers/hid/hid-multitouch.c143
1 files changed, 73 insertions, 70 deletions
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index ea465f1ceae..b10c2044d89 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -110,6 +110,9 @@ struct mt_device {
110 110
111#define MT_DEFAULT_MAXCONTACT 10 111#define MT_DEFAULT_MAXCONTACT 10
112 112
113#define MT_USB_DEVICE(v, p) HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH, v, p)
114#define MT_BT_DEVICE(v, p) HID_DEVICE(BUS_BLUETOOTH, HID_GROUP_MULTITOUCH, v, p)
115
113/* 116/*
114 * these device-dependent functions determine what slot corresponds 117 * these device-dependent functions determine what slot corresponds
115 * to a valid contact that was just read. 118 * to a valid contact that was just read.
@@ -735,50 +738,50 @@ static const struct hid_device_id mt_devices[] = {
735 738
736 /* 3M panels */ 739 /* 3M panels */
737 { .driver_data = MT_CLS_3M, 740 { .driver_data = MT_CLS_3M,
738 HID_USB_DEVICE(USB_VENDOR_ID_3M, 741 MT_USB_DEVICE(USB_VENDOR_ID_3M,
739 USB_DEVICE_ID_3M1968) }, 742 USB_DEVICE_ID_3M1968) },
740 { .driver_data = MT_CLS_3M, 743 { .driver_data = MT_CLS_3M,
741 HID_USB_DEVICE(USB_VENDOR_ID_3M, 744 MT_USB_DEVICE(USB_VENDOR_ID_3M,
742 USB_DEVICE_ID_3M2256) }, 745 USB_DEVICE_ID_3M2256) },
743 { .driver_data = MT_CLS_3M, 746 { .driver_data = MT_CLS_3M,
744 HID_USB_DEVICE(USB_VENDOR_ID_3M, 747 MT_USB_DEVICE(USB_VENDOR_ID_3M,
745 USB_DEVICE_ID_3M3266) }, 748 USB_DEVICE_ID_3M3266) },
746 749
747 /* ActionStar panels */ 750 /* ActionStar panels */
748 { .driver_data = MT_CLS_DEFAULT, 751 { .driver_data = MT_CLS_DEFAULT,
749 HID_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR, 752 MT_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR,
750 USB_DEVICE_ID_ACTIONSTAR_1011) }, 753 USB_DEVICE_ID_ACTIONSTAR_1011) },
751 754
752 /* Atmel panels */ 755 /* Atmel panels */
753 { .driver_data = MT_CLS_SERIAL, 756 { .driver_data = MT_CLS_SERIAL,
754 HID_USB_DEVICE(USB_VENDOR_ID_ATMEL, 757 MT_USB_DEVICE(USB_VENDOR_ID_ATMEL,
755 USB_DEVICE_ID_ATMEL_MULTITOUCH) }, 758 USB_DEVICE_ID_ATMEL_MULTITOUCH) },
756 { .driver_data = MT_CLS_SERIAL, 759 { .driver_data = MT_CLS_SERIAL,
757 HID_USB_DEVICE(USB_VENDOR_ID_ATMEL, 760 MT_USB_DEVICE(USB_VENDOR_ID_ATMEL,
758 USB_DEVICE_ID_ATMEL_MXT_DIGITIZER) }, 761 USB_DEVICE_ID_ATMEL_MXT_DIGITIZER) },
759 762
760 /* Cando panels */ 763 /* Cando panels */
761 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, 764 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
762 HID_USB_DEVICE(USB_VENDOR_ID_CANDO, 765 MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
763 USB_DEVICE_ID_CANDO_MULTI_TOUCH) }, 766 USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
764 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, 767 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
765 HID_USB_DEVICE(USB_VENDOR_ID_CANDO, 768 MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
766 USB_DEVICE_ID_CANDO_MULTI_TOUCH_10_1) }, 769 USB_DEVICE_ID_CANDO_MULTI_TOUCH_10_1) },
767 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, 770 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
768 HID_USB_DEVICE(USB_VENDOR_ID_CANDO, 771 MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
769 USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) }, 772 USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
770 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, 773 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
771 HID_USB_DEVICE(USB_VENDOR_ID_CANDO, 774 MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
772 USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) }, 775 USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) },
773 776
774 /* Chunghwa Telecom touch panels */ 777 /* Chunghwa Telecom touch panels */
775 { .driver_data = MT_CLS_DEFAULT, 778 { .driver_data = MT_CLS_DEFAULT,
776 HID_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT, 779 MT_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT,
777 USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) }, 780 USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) },
778 781
779 /* CVTouch panels */ 782 /* CVTouch panels */
780 { .driver_data = MT_CLS_DEFAULT, 783 { .driver_data = MT_CLS_DEFAULT,
781 HID_USB_DEVICE(USB_VENDOR_ID_CVTOUCH, 784 MT_USB_DEVICE(USB_VENDOR_ID_CVTOUCH,
782 USB_DEVICE_ID_CVTOUCH_SCREEN) }, 785 USB_DEVICE_ID_CVTOUCH_SCREEN) },
783 786
784 /* Cypress panel */ 787 /* Cypress panel */
@@ -788,223 +791,223 @@ static const struct hid_device_id mt_devices[] = {
788 791
789 /* eGalax devices (resistive) */ 792 /* eGalax devices (resistive) */
790 { .driver_data = MT_CLS_EGALAX, 793 { .driver_data = MT_CLS_EGALAX,
791 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 794 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
792 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) }, 795 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) },
793 { .driver_data = MT_CLS_EGALAX, 796 { .driver_data = MT_CLS_EGALAX,
794 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 797 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
795 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) }, 798 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) },
796 799
797 /* eGalax devices (capacitive) */ 800 /* eGalax devices (capacitive) */
798 { .driver_data = MT_CLS_EGALAX, 801 { .driver_data = MT_CLS_EGALAX,
799 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 802 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
800 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) }, 803 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) },
801 { .driver_data = MT_CLS_EGALAX_SERIAL, 804 { .driver_data = MT_CLS_EGALAX_SERIAL,
802 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 805 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
803 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207) }, 806 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207) },
804 { .driver_data = MT_CLS_EGALAX_SERIAL, 807 { .driver_data = MT_CLS_EGALAX_SERIAL,
805 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 808 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
806 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E) }, 809 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_725E) },
807 { .driver_data = MT_CLS_EGALAX_SERIAL, 810 { .driver_data = MT_CLS_EGALAX_SERIAL,
808 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 811 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
809 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224) }, 812 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7224) },
810 { .driver_data = MT_CLS_EGALAX_SERIAL, 813 { .driver_data = MT_CLS_EGALAX_SERIAL,
811 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 814 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
812 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A) }, 815 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_722A) },
813 { .driver_data = MT_CLS_EGALAX, 816 { .driver_data = MT_CLS_EGALAX,
814 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 817 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
815 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) }, 818 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) },
816 { .driver_data = MT_CLS_EGALAX_SERIAL, 819 { .driver_data = MT_CLS_EGALAX_SERIAL,
817 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 820 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
818 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262) }, 821 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7262) },
819 { .driver_data = MT_CLS_EGALAX, 822 { .driver_data = MT_CLS_EGALAX,
820 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 823 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
821 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) }, 824 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
822 { .driver_data = MT_CLS_EGALAX_SERIAL, 825 { .driver_data = MT_CLS_EGALAX_SERIAL,
823 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 826 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
824 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA) }, 827 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72AA) },
825 { .driver_data = MT_CLS_EGALAX, 828 { .driver_data = MT_CLS_EGALAX,
826 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 829 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
827 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA) }, 830 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA) },
828 { .driver_data = MT_CLS_EGALAX, 831 { .driver_data = MT_CLS_EGALAX,
829 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 832 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
830 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) }, 833 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
831 { .driver_data = MT_CLS_EGALAX_SERIAL, 834 { .driver_data = MT_CLS_EGALAX_SERIAL,
832 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 835 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
833 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349) }, 836 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7349) },
834 { .driver_data = MT_CLS_EGALAX_SERIAL, 837 { .driver_data = MT_CLS_EGALAX_SERIAL,
835 HID_USB_DEVICE(USB_VENDOR_ID_DWAV, 838 MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
836 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) }, 839 USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
837 840
838 /* Elo TouchSystems IntelliTouch Plus panel */ 841 /* Elo TouchSystems IntelliTouch Plus panel */
839 { .driver_data = MT_CLS_DUAL_NSMU_CONTACTID, 842 { .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
840 HID_USB_DEVICE(USB_VENDOR_ID_ELO, 843 MT_USB_DEVICE(USB_VENDOR_ID_ELO,
841 USB_DEVICE_ID_ELO_TS2515) }, 844 USB_DEVICE_ID_ELO_TS2515) },
842 845
843 /* GeneralTouch panel */ 846 /* GeneralTouch panel */
844 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, 847 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
845 HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 848 MT_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,
846 USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS) }, 849 USB_DEVICE_ID_GENERAL_TOUCH_WIN7_TWOFINGERS) },
847 850
848 /* Gametel game controller */ 851 /* Gametel game controller */
849 { .driver_data = MT_CLS_DEFAULT, 852 { .driver_data = MT_CLS_DEFAULT,
850 HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_FRUCTEL, 853 MT_BT_DEVICE(USB_VENDOR_ID_FRUCTEL,
851 USB_DEVICE_ID_GAMETEL_MT_MODE) }, 854 USB_DEVICE_ID_GAMETEL_MT_MODE) },
852 855
853 /* GoodTouch panels */ 856 /* GoodTouch panels */
854 { .driver_data = MT_CLS_DEFAULT, 857 { .driver_data = MT_CLS_DEFAULT,
855 HID_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH, 858 MT_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH,
856 USB_DEVICE_ID_GOODTOUCH_000f) }, 859 USB_DEVICE_ID_GOODTOUCH_000f) },
857 860
858 /* Hanvon panels */ 861 /* Hanvon panels */
859 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, 862 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
860 HID_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT, 863 MT_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT,
861 USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) }, 864 USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) },
862 865
863 /* Ideacom panel */ 866 /* Ideacom panel */
864 { .driver_data = MT_CLS_SERIAL, 867 { .driver_data = MT_CLS_SERIAL,
865 HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, 868 MT_USB_DEVICE(USB_VENDOR_ID_IDEACOM,
866 USB_DEVICE_ID_IDEACOM_IDC6650) }, 869 USB_DEVICE_ID_IDEACOM_IDC6650) },
867 { .driver_data = MT_CLS_SERIAL, 870 { .driver_data = MT_CLS_SERIAL,
868 HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, 871 MT_USB_DEVICE(USB_VENDOR_ID_IDEACOM,
869 USB_DEVICE_ID_IDEACOM_IDC6651) }, 872 USB_DEVICE_ID_IDEACOM_IDC6651) },
870 873
871 /* Ilitek dual touch panel */ 874 /* Ilitek dual touch panel */
872 { .driver_data = MT_CLS_DEFAULT, 875 { .driver_data = MT_CLS_DEFAULT,
873 HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, 876 MT_USB_DEVICE(USB_VENDOR_ID_ILITEK,
874 USB_DEVICE_ID_ILITEK_MULTITOUCH) }, 877 USB_DEVICE_ID_ILITEK_MULTITOUCH) },
875 878
876 /* IRTOUCH panels */ 879 /* IRTOUCH panels */
877 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, 880 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
878 HID_USB_DEVICE(USB_VENDOR_ID_IRTOUCHSYSTEMS, 881 MT_USB_DEVICE(USB_VENDOR_ID_IRTOUCHSYSTEMS,
879 USB_DEVICE_ID_IRTOUCH_INFRARED_USB) }, 882 USB_DEVICE_ID_IRTOUCH_INFRARED_USB) },
880 883
881 /* LG Display panels */ 884 /* LG Display panels */
882 { .driver_data = MT_CLS_DEFAULT, 885 { .driver_data = MT_CLS_DEFAULT,
883 HID_USB_DEVICE(USB_VENDOR_ID_LG, 886 MT_USB_DEVICE(USB_VENDOR_ID_LG,
884 USB_DEVICE_ID_LG_MULTITOUCH) }, 887 USB_DEVICE_ID_LG_MULTITOUCH) },
885 888
886 /* Lumio panels */ 889 /* Lumio panels */
887 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, 890 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
888 HID_USB_DEVICE(USB_VENDOR_ID_LUMIO, 891 MT_USB_DEVICE(USB_VENDOR_ID_LUMIO,
889 USB_DEVICE_ID_CRYSTALTOUCH) }, 892 USB_DEVICE_ID_CRYSTALTOUCH) },
890 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, 893 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
891 HID_USB_DEVICE(USB_VENDOR_ID_LUMIO, 894 MT_USB_DEVICE(USB_VENDOR_ID_LUMIO,
892 USB_DEVICE_ID_CRYSTALTOUCH_DUAL) }, 895 USB_DEVICE_ID_CRYSTALTOUCH_DUAL) },
893 896
894 /* MosArt panels */ 897 /* MosArt panels */
895 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, 898 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
896 HID_USB_DEVICE(USB_VENDOR_ID_ASUS, 899 MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
897 USB_DEVICE_ID_ASUS_T91MT)}, 900 USB_DEVICE_ID_ASUS_T91MT)},
898 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, 901 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
899 HID_USB_DEVICE(USB_VENDOR_ID_ASUS, 902 MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
900 USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO) }, 903 USB_DEVICE_ID_ASUSTEK_MULTITOUCH_YFO) },
901 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE, 904 { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
902 HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, 905 MT_USB_DEVICE(USB_VENDOR_ID_TURBOX,
903 USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART) }, 906 USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART) },
904 907
905 /* Panasonic panels */ 908 /* Panasonic panels */
906 { .driver_data = MT_CLS_PANASONIC, 909 { .driver_data = MT_CLS_PANASONIC,
907 HID_USB_DEVICE(USB_VENDOR_ID_PANASONIC, 910 MT_USB_DEVICE(USB_VENDOR_ID_PANASONIC,
908 USB_DEVICE_ID_PANABOARD_UBT780) }, 911 USB_DEVICE_ID_PANABOARD_UBT780) },
909 { .driver_data = MT_CLS_PANASONIC, 912 { .driver_data = MT_CLS_PANASONIC,
910 HID_USB_DEVICE(USB_VENDOR_ID_PANASONIC, 913 MT_USB_DEVICE(USB_VENDOR_ID_PANASONIC,
911 USB_DEVICE_ID_PANABOARD_UBT880) }, 914 USB_DEVICE_ID_PANABOARD_UBT880) },
912 915
913 /* PenMount panels */ 916 /* PenMount panels */
914 { .driver_data = MT_CLS_CONFIDENCE, 917 { .driver_data = MT_CLS_CONFIDENCE,
915 HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, 918 MT_USB_DEVICE(USB_VENDOR_ID_PENMOUNT,
916 USB_DEVICE_ID_PENMOUNT_PCI) }, 919 USB_DEVICE_ID_PENMOUNT_PCI) },
917 920
918 /* PixArt optical touch screen */ 921 /* PixArt optical touch screen */
919 { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, 922 { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER,
920 HID_USB_DEVICE(USB_VENDOR_ID_PIXART, 923 MT_USB_DEVICE(USB_VENDOR_ID_PIXART,
921 USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) }, 924 USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN) },
922 { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, 925 { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER,
923 HID_USB_DEVICE(USB_VENDOR_ID_PIXART, 926 MT_USB_DEVICE(USB_VENDOR_ID_PIXART,
924 USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) }, 927 USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1) },
925 { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER, 928 { .driver_data = MT_CLS_INRANGE_CONTACTNUMBER,
926 HID_USB_DEVICE(USB_VENDOR_ID_PIXART, 929 MT_USB_DEVICE(USB_VENDOR_ID_PIXART,
927 USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) }, 930 USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN2) },
928 931
929 /* PixCir-based panels */ 932 /* PixCir-based panels */
930 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, 933 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
931 HID_USB_DEVICE(USB_VENDOR_ID_HANVON, 934 MT_USB_DEVICE(USB_VENDOR_ID_HANVON,
932 USB_DEVICE_ID_HANVON_MULTITOUCH) }, 935 USB_DEVICE_ID_HANVON_MULTITOUCH) },
933 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID, 936 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
934 HID_USB_DEVICE(USB_VENDOR_ID_CANDO, 937 MT_USB_DEVICE(USB_VENDOR_ID_CANDO,
935 USB_DEVICE_ID_CANDO_PIXCIR_MULTI_TOUCH) }, 938 USB_DEVICE_ID_CANDO_PIXCIR_MULTI_TOUCH) },
936 939
937 /* Quanta-based panels */ 940 /* Quanta-based panels */
938 { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID, 941 { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
939 HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, 942 MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
940 USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) }, 943 USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH) },
941 { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID, 944 { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
942 HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, 945 MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
943 USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001) }, 946 USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001) },
944 { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID, 947 { .driver_data = MT_CLS_CONFIDENCE_CONTACT_ID,
945 HID_USB_DEVICE(USB_VENDOR_ID_QUANTA, 948 MT_USB_DEVICE(USB_VENDOR_ID_QUANTA,
946 USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008) }, 949 USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008) },
947 950
948 /* Stantum panels */ 951 /* Stantum panels */
949 { .driver_data = MT_CLS_CONFIDENCE, 952 { .driver_data = MT_CLS_CONFIDENCE,
950 HID_USB_DEVICE(USB_VENDOR_ID_STANTUM, 953 MT_USB_DEVICE(USB_VENDOR_ID_STANTUM,
951 USB_DEVICE_ID_MTP)}, 954 USB_DEVICE_ID_MTP)},
952 { .driver_data = MT_CLS_CONFIDENCE, 955 { .driver_data = MT_CLS_CONFIDENCE,
953 HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM, 956 MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
954 USB_DEVICE_ID_MTP_STM)}, 957 USB_DEVICE_ID_MTP_STM)},
955 { .driver_data = MT_CLS_CONFIDENCE, 958 { .driver_data = MT_CLS_CONFIDENCE,
956 HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX, 959 MT_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX,
957 USB_DEVICE_ID_MTP_SITRONIX)}, 960 USB_DEVICE_ID_MTP_SITRONIX)},
958 961
959 /* TopSeed panels */ 962 /* TopSeed panels */
960 { .driver_data = MT_CLS_TOPSEED, 963 { .driver_data = MT_CLS_TOPSEED,
961 HID_USB_DEVICE(USB_VENDOR_ID_TOPSEED2, 964 MT_USB_DEVICE(USB_VENDOR_ID_TOPSEED2,
962 USB_DEVICE_ID_TOPSEED2_PERIPAD_701) }, 965 USB_DEVICE_ID_TOPSEED2_PERIPAD_701) },
963 966
964 /* Touch International panels */ 967 /* Touch International panels */
965 { .driver_data = MT_CLS_DEFAULT, 968 { .driver_data = MT_CLS_DEFAULT,
966 HID_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL, 969 MT_USB_DEVICE(USB_VENDOR_ID_TOUCH_INTL,
967 USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH) }, 970 USB_DEVICE_ID_TOUCH_INTL_MULTI_TOUCH) },
968 971
969 /* Unitec panels */ 972 /* Unitec panels */
970 { .driver_data = MT_CLS_DEFAULT, 973 { .driver_data = MT_CLS_DEFAULT,
971 HID_USB_DEVICE(USB_VENDOR_ID_UNITEC, 974 MT_USB_DEVICE(USB_VENDOR_ID_UNITEC,
972 USB_DEVICE_ID_UNITEC_USB_TOUCH_0709) }, 975 USB_DEVICE_ID_UNITEC_USB_TOUCH_0709) },
973 { .driver_data = MT_CLS_DEFAULT, 976 { .driver_data = MT_CLS_DEFAULT,
974 HID_USB_DEVICE(USB_VENDOR_ID_UNITEC, 977 MT_USB_DEVICE(USB_VENDOR_ID_UNITEC,
975 USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19) }, 978 USB_DEVICE_ID_UNITEC_USB_TOUCH_0A19) },
976 /* XAT */ 979 /* XAT */
977 { .driver_data = MT_CLS_DEFAULT, 980 { .driver_data = MT_CLS_DEFAULT,
978 HID_USB_DEVICE(USB_VENDOR_ID_XAT, 981 MT_USB_DEVICE(USB_VENDOR_ID_XAT,
979 USB_DEVICE_ID_XAT_CSR) }, 982 USB_DEVICE_ID_XAT_CSR) },
980 983
981 /* Xiroku */ 984 /* Xiroku */
982 { .driver_data = MT_CLS_DEFAULT, 985 { .driver_data = MT_CLS_DEFAULT,
983 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 986 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
984 USB_DEVICE_ID_XIROKU_SPX) }, 987 USB_DEVICE_ID_XIROKU_SPX) },
985 { .driver_data = MT_CLS_DEFAULT, 988 { .driver_data = MT_CLS_DEFAULT,
986 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 989 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
987 USB_DEVICE_ID_XIROKU_MPX) }, 990 USB_DEVICE_ID_XIROKU_MPX) },
988 { .driver_data = MT_CLS_DEFAULT, 991 { .driver_data = MT_CLS_DEFAULT,
989 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 992 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
990 USB_DEVICE_ID_XIROKU_CSR) }, 993 USB_DEVICE_ID_XIROKU_CSR) },
991 { .driver_data = MT_CLS_DEFAULT, 994 { .driver_data = MT_CLS_DEFAULT,
992 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 995 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
993 USB_DEVICE_ID_XIROKU_SPX1) }, 996 USB_DEVICE_ID_XIROKU_SPX1) },
994 { .driver_data = MT_CLS_DEFAULT, 997 { .driver_data = MT_CLS_DEFAULT,
995 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 998 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
996 USB_DEVICE_ID_XIROKU_MPX1) }, 999 USB_DEVICE_ID_XIROKU_MPX1) },
997 { .driver_data = MT_CLS_DEFAULT, 1000 { .driver_data = MT_CLS_DEFAULT,
998 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 1001 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
999 USB_DEVICE_ID_XIROKU_CSR1) }, 1002 USB_DEVICE_ID_XIROKU_CSR1) },
1000 { .driver_data = MT_CLS_DEFAULT, 1003 { .driver_data = MT_CLS_DEFAULT,
1001 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 1004 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1002 USB_DEVICE_ID_XIROKU_SPX2) }, 1005 USB_DEVICE_ID_XIROKU_SPX2) },
1003 { .driver_data = MT_CLS_DEFAULT, 1006 { .driver_data = MT_CLS_DEFAULT,
1004 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 1007 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1005 USB_DEVICE_ID_XIROKU_MPX2) }, 1008 USB_DEVICE_ID_XIROKU_MPX2) },
1006 { .driver_data = MT_CLS_DEFAULT, 1009 { .driver_data = MT_CLS_DEFAULT,
1007 HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, 1010 MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
1008 USB_DEVICE_ID_XIROKU_CSR2) }, 1011 USB_DEVICE_ID_XIROKU_CSR2) },
1009 1012
1010 /* Generic MT device */ 1013 /* Generic MT device */