diff options
-rw-r--r-- | drivers/input/tablet/wacom.h | 5 | ||||
-rw-r--r-- | drivers/input/tablet/wacom_sys.c | 10 | ||||
-rw-r--r-- | drivers/input/tablet/wacom_wac.c | 342 |
3 files changed, 205 insertions, 152 deletions
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h index 16310f368dab..8fef1b689c69 100644 --- a/drivers/input/tablet/wacom.h +++ b/drivers/input/tablet/wacom.h | |||
@@ -85,6 +85,7 @@ | |||
85 | #include <linux/kernel.h> | 85 | #include <linux/kernel.h> |
86 | #include <linux/slab.h> | 86 | #include <linux/slab.h> |
87 | #include <linux/module.h> | 87 | #include <linux/module.h> |
88 | #include <linux/mod_devicetable.h> | ||
88 | #include <linux/init.h> | 89 | #include <linux/init.h> |
89 | #include <linux/usb/input.h> | 90 | #include <linux/usb/input.h> |
90 | #include <asm/unaligned.h> | 91 | #include <asm/unaligned.h> |
@@ -120,6 +121,8 @@ struct wacom_combo { | |||
120 | struct urb *urb; | 121 | struct urb *urb; |
121 | }; | 122 | }; |
122 | 123 | ||
124 | extern const struct usb_device_id wacom_ids[]; | ||
125 | |||
123 | extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo); | 126 | extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo); |
124 | extern void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data); | 127 | extern void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data); |
125 | extern void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data); | 128 | extern void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data); |
@@ -142,7 +145,5 @@ extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wa | |||
142 | extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac); | 145 | extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac); |
143 | extern __u16 wacom_le16_to_cpu(unsigned char *data); | 146 | extern __u16 wacom_le16_to_cpu(unsigned char *data); |
144 | extern __u16 wacom_be16_to_cpu(unsigned char *data); | 147 | extern __u16 wacom_be16_to_cpu(unsigned char *data); |
145 | extern struct wacom_features *get_wacom_feature(const struct usb_device_id *id); | ||
146 | extern const struct usb_device_id *get_device_table(void); | ||
147 | 148 | ||
148 | #endif | 149 | #endif |
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c index 072f33b3b2b0..be4b76f264a7 100644 --- a/drivers/input/tablet/wacom_sys.c +++ b/drivers/input/tablet/wacom_sys.c | |||
@@ -530,10 +530,13 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
530 | struct usb_endpoint_descriptor *endpoint; | 530 | struct usb_endpoint_descriptor *endpoint; |
531 | struct wacom *wacom; | 531 | struct wacom *wacom; |
532 | struct wacom_wac *wacom_wac; | 532 | struct wacom_wac *wacom_wac; |
533 | struct wacom_features *features; | 533 | struct wacom_features *features = (void *)id->driver_info; |
534 | struct input_dev *input_dev; | 534 | struct input_dev *input_dev; |
535 | int error = -ENOMEM; | 535 | int error = -ENOMEM; |
536 | 536 | ||
537 | if (!features) | ||
538 | return -EINVAL; | ||
539 | |||
537 | wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); | 540 | wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); |
538 | wacom_wac = kzalloc(sizeof(struct wacom_wac), GFP_KERNEL); | 541 | wacom_wac = kzalloc(sizeof(struct wacom_wac), GFP_KERNEL); |
539 | input_dev = input_allocate_device(); | 542 | input_dev = input_allocate_device(); |
@@ -555,7 +558,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
555 | usb_make_path(dev, wacom->phys, sizeof(wacom->phys)); | 558 | usb_make_path(dev, wacom->phys, sizeof(wacom->phys)); |
556 | strlcat(wacom->phys, "/input0", sizeof(wacom->phys)); | 559 | strlcat(wacom->phys, "/input0", sizeof(wacom->phys)); |
557 | 560 | ||
558 | wacom_wac->features = features = get_wacom_feature(id); | 561 | wacom_wac->features = features; |
559 | BUG_ON(features->pktlen > WACOM_PKGLEN_MAX); | 562 | BUG_ON(features->pktlen > WACOM_PKGLEN_MAX); |
560 | 563 | ||
561 | input_dev->name = wacom_wac->features->name; | 564 | input_dev->name = wacom_wac->features->name; |
@@ -663,6 +666,7 @@ static int wacom_reset_resume(struct usb_interface *intf) | |||
663 | 666 | ||
664 | static struct usb_driver wacom_driver = { | 667 | static struct usb_driver wacom_driver = { |
665 | .name = "wacom", | 668 | .name = "wacom", |
669 | .id_table = wacom_ids, | ||
666 | .probe = wacom_probe, | 670 | .probe = wacom_probe, |
667 | .disconnect = wacom_disconnect, | 671 | .disconnect = wacom_disconnect, |
668 | .suspend = wacom_suspend, | 672 | .suspend = wacom_suspend, |
@@ -674,7 +678,7 @@ static struct usb_driver wacom_driver = { | |||
674 | static int __init wacom_init(void) | 678 | static int __init wacom_init(void) |
675 | { | 679 | { |
676 | int result; | 680 | int result; |
677 | wacom_driver.id_table = get_device_table(); | 681 | |
678 | result = usb_register(&wacom_driver); | 682 | result = usb_register(&wacom_driver); |
679 | if (result == 0) | 683 | if (result == 0) |
680 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" | 684 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" |
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index 1056f149fe31..56aaf0164a56 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c | |||
@@ -903,153 +903,201 @@ void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_w | |||
903 | return; | 903 | return; |
904 | } | 904 | } |
905 | 905 | ||
906 | static struct wacom_features wacom_features[] = { | 906 | static struct wacom_features wacom_features_0x00 = |
907 | { "Wacom Penpartner", WACOM_PKGLEN_PENPRTN, 5040, 3780, 255, 0, PENPARTNER }, | 907 | { "Wacom Penpartner", WACOM_PKGLEN_PENPRTN, 5040, 3780, 255, 0, PENPARTNER }; |
908 | { "Wacom Graphire", WACOM_PKGLEN_GRAPHIRE, 10206, 7422, 511, 63, GRAPHIRE }, | 908 | static struct wacom_features wacom_features_0x10 = |
909 | { "Wacom Graphire2 4x5", WACOM_PKGLEN_GRAPHIRE, 10206, 7422, 511, 63, GRAPHIRE }, | 909 | { "Wacom Graphire", WACOM_PKGLEN_GRAPHIRE, 10206, 7422, 511, 63, GRAPHIRE }; |
910 | { "Wacom Graphire2 5x7", WACOM_PKGLEN_GRAPHIRE, 13918, 10206, 511, 63, GRAPHIRE }, | 910 | static struct wacom_features wacom_features_0x11 = |
911 | { "Wacom Graphire3", WACOM_PKGLEN_GRAPHIRE, 10208, 7424, 511, 63, GRAPHIRE }, | 911 | { "Wacom Graphire2 4x5", WACOM_PKGLEN_GRAPHIRE, 10206, 7422, 511, 63, GRAPHIRE }; |
912 | { "Wacom Graphire3 6x8", WACOM_PKGLEN_GRAPHIRE, 16704, 12064, 511, 63, GRAPHIRE }, | 912 | static struct wacom_features wacom_features_0x12 = |
913 | { "Wacom Graphire4 4x5", WACOM_PKGLEN_GRAPHIRE, 10208, 7424, 511, 63, WACOM_G4 }, | 913 | { "Wacom Graphire2 5x7", WACOM_PKGLEN_GRAPHIRE, 13918, 10206, 511, 63, GRAPHIRE }; |
914 | { "Wacom Graphire4 6x8", WACOM_PKGLEN_GRAPHIRE, 16704, 12064, 511, 63, WACOM_G4 }, | 914 | static struct wacom_features wacom_features_0x13 = |
915 | { "Wacom BambooFun 4x5", WACOM_PKGLEN_BBFUN, 14760, 9225, 511, 63, WACOM_MO }, | 915 | { "Wacom Graphire3", WACOM_PKGLEN_GRAPHIRE, 10208, 7424, 511, 63, GRAPHIRE }; |
916 | { "Wacom BambooFun 6x8", WACOM_PKGLEN_BBFUN, 21648, 13530, 511, 63, WACOM_MO }, | 916 | static struct wacom_features wacom_features_0x14 = |
917 | { "Wacom Bamboo1 Medium", WACOM_PKGLEN_GRAPHIRE, 16704, 12064, 511, 63, GRAPHIRE }, | 917 | { "Wacom Graphire3 6x8", WACOM_PKGLEN_GRAPHIRE, 16704, 12064, 511, 63, GRAPHIRE }; |
918 | { "Wacom Volito", WACOM_PKGLEN_GRAPHIRE, 5104, 3712, 511, 63, GRAPHIRE }, | 918 | static struct wacom_features wacom_features_0x15 = |
919 | { "Wacom PenStation2", WACOM_PKGLEN_GRAPHIRE, 3250, 2320, 255, 63, GRAPHIRE }, | 919 | { "Wacom Graphire4 4x5", WACOM_PKGLEN_GRAPHIRE, 10208, 7424, 511, 63, WACOM_G4 }; |
920 | { "Wacom Volito2 4x5", WACOM_PKGLEN_GRAPHIRE, 5104, 3712, 511, 63, GRAPHIRE }, | 920 | static struct wacom_features wacom_features_0x16 = |
921 | { "Wacom Volito2 2x3", WACOM_PKGLEN_GRAPHIRE, 3248, 2320, 511, 63, GRAPHIRE }, | 921 | { "Wacom Graphire4 6x8", WACOM_PKGLEN_GRAPHIRE, 16704, 12064, 511, 63, WACOM_G4 }; |
922 | { "Wacom PenPartner2", WACOM_PKGLEN_GRAPHIRE, 3250, 2320, 511, 63, GRAPHIRE }, | 922 | static struct wacom_features wacom_features_0x17 = |
923 | { "Wacom Bamboo", WACOM_PKGLEN_BBFUN, 14760, 9225, 511, 63, WACOM_MO }, | 923 | { "Wacom BambooFun 4x5", WACOM_PKGLEN_BBFUN, 14760, 9225, 511, 63, WACOM_MO }; |
924 | { "Wacom Bamboo1", WACOM_PKGLEN_GRAPHIRE, 5104, 3712, 511, 63, GRAPHIRE }, | 924 | static struct wacom_features wacom_features_0x18 = |
925 | { "Wacom Intuos 4x5", WACOM_PKGLEN_INTUOS, 12700, 10600, 1023, 31, INTUOS }, | 925 | { "Wacom BambooFun 6x8", WACOM_PKGLEN_BBFUN, 21648, 13530, 511, 63, WACOM_MO }; |
926 | { "Wacom Intuos 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }, | 926 | static struct wacom_features wacom_features_0x19 = |
927 | { "Wacom Intuos 9x12", WACOM_PKGLEN_INTUOS, 30480, 24060, 1023, 31, INTUOS }, | 927 | { "Wacom Bamboo1 Medium", WACOM_PKGLEN_GRAPHIRE, 16704, 12064, 511, 63, GRAPHIRE }; |
928 | { "Wacom Intuos 12x12", WACOM_PKGLEN_INTUOS, 30480, 31680, 1023, 31, INTUOS }, | 928 | static struct wacom_features wacom_features_0x60 = |
929 | { "Wacom Intuos 12x18", WACOM_PKGLEN_INTUOS, 45720, 31680, 1023, 31, INTUOS }, | 929 | { "Wacom Volito", WACOM_PKGLEN_GRAPHIRE, 5104, 3712, 511, 63, GRAPHIRE }; |
930 | { "Wacom PL400", WACOM_PKGLEN_GRAPHIRE, 5408, 4056, 255, 0, PL }, | 930 | static struct wacom_features wacom_features_0x61 = |
931 | { "Wacom PL500", WACOM_PKGLEN_GRAPHIRE, 6144, 4608, 255, 0, PL }, | 931 | { "Wacom PenStation2", WACOM_PKGLEN_GRAPHIRE, 3250, 2320, 255, 63, GRAPHIRE }; |
932 | { "Wacom PL600", WACOM_PKGLEN_GRAPHIRE, 6126, 4604, 255, 0, PL }, | 932 | static struct wacom_features wacom_features_0x62 = |
933 | { "Wacom PL600SX", WACOM_PKGLEN_GRAPHIRE, 6260, 5016, 255, 0, PL }, | 933 | { "Wacom Volito2 4x5", WACOM_PKGLEN_GRAPHIRE, 5104, 3712, 511, 63, GRAPHIRE }; |
934 | { "Wacom PL550", WACOM_PKGLEN_GRAPHIRE, 6144, 4608, 511, 0, PL }, | 934 | static struct wacom_features wacom_features_0x63 = |
935 | { "Wacom PL800", WACOM_PKGLEN_GRAPHIRE, 7220, 5780, 511, 0, PL }, | 935 | { "Wacom Volito2 2x3", WACOM_PKGLEN_GRAPHIRE, 3248, 2320, 511, 63, GRAPHIRE }; |
936 | { "Wacom PL700", WACOM_PKGLEN_GRAPHIRE, 6758, 5406, 511, 0, PL }, | 936 | static struct wacom_features wacom_features_0x64 = |
937 | { "Wacom PL510", WACOM_PKGLEN_GRAPHIRE, 6282, 4762, 511, 0, PL }, | 937 | { "Wacom PenPartner2", WACOM_PKGLEN_GRAPHIRE, 3250, 2320, 511, 63, GRAPHIRE }; |
938 | { "Wacom DTU710", WACOM_PKGLEN_GRAPHIRE, 34080, 27660, 511, 0, PL }, | 938 | static struct wacom_features wacom_features_0x65 = |
939 | { "Wacom DTF521", WACOM_PKGLEN_GRAPHIRE, 6282, 4762, 511, 0, PL }, | 939 | { "Wacom Bamboo", WACOM_PKGLEN_BBFUN, 14760, 9225, 511, 63, WACOM_MO }; |
940 | { "Wacom DTF720", WACOM_PKGLEN_GRAPHIRE, 6858, 5506, 511, 0, PL }, | 940 | static struct wacom_features wacom_features_0x69 = |
941 | { "Wacom DTF720a", WACOM_PKGLEN_GRAPHIRE, 6858, 5506, 511, 0, PL }, | 941 | { "Wacom Bamboo1", WACOM_PKGLEN_GRAPHIRE, 5104, 3712, 511, 63, GRAPHIRE }; |
942 | { "Wacom Cintiq Partner", WACOM_PKGLEN_GRAPHIRE, 20480, 15360, 511, 0, PTU }, | 942 | static struct wacom_features wacom_features_0x20 = |
943 | { "Wacom Intuos2 4x5", WACOM_PKGLEN_INTUOS, 12700, 10600, 1023, 31, INTUOS }, | 943 | { "Wacom Intuos 4x5", WACOM_PKGLEN_INTUOS, 12700, 10600, 1023, 31, INTUOS }; |
944 | { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }, | 944 | static struct wacom_features wacom_features_0x21 = |
945 | { "Wacom Intuos2 9x12", WACOM_PKGLEN_INTUOS, 30480, 24060, 1023, 31, INTUOS }, | 945 | { "Wacom Intuos 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }; |
946 | { "Wacom Intuos2 12x12", WACOM_PKGLEN_INTUOS, 30480, 31680, 1023, 31, INTUOS }, | 946 | static struct wacom_features wacom_features_0x22 = |
947 | { "Wacom Intuos2 12x18", WACOM_PKGLEN_INTUOS, 45720, 31680, 1023, 31, INTUOS }, | 947 | { "Wacom Intuos 9x12", WACOM_PKGLEN_INTUOS, 30480, 24060, 1023, 31, INTUOS }; |
948 | { "Wacom Intuos3 4x5", WACOM_PKGLEN_INTUOS, 25400, 20320, 1023, 63, INTUOS3S }, | 948 | static struct wacom_features wacom_features_0x23 = |
949 | { "Wacom Intuos3 6x8", WACOM_PKGLEN_INTUOS, 40640, 30480, 1023, 63, INTUOS3 }, | 949 | { "Wacom Intuos 12x12", WACOM_PKGLEN_INTUOS, 30480, 31680, 1023, 31, INTUOS }; |
950 | { "Wacom Intuos3 9x12", WACOM_PKGLEN_INTUOS, 60960, 45720, 1023, 63, INTUOS3 }, | 950 | static struct wacom_features wacom_features_0x24 = |
951 | { "Wacom Intuos3 12x12", WACOM_PKGLEN_INTUOS, 60960, 60960, 1023, 63, INTUOS3L }, | 951 | { "Wacom Intuos 12x18", WACOM_PKGLEN_INTUOS, 45720, 31680, 1023, 31, INTUOS }; |
952 | { "Wacom Intuos3 12x19", WACOM_PKGLEN_INTUOS, 97536, 60960, 1023, 63, INTUOS3L }, | 952 | static struct wacom_features wacom_features_0x30 = |
953 | { "Wacom Intuos3 6x11", WACOM_PKGLEN_INTUOS, 54204, 31750, 1023, 63, INTUOS3 }, | 953 | { "Wacom PL400", WACOM_PKGLEN_GRAPHIRE, 5408, 4056, 255, 0, PL }; |
954 | { "Wacom Intuos3 4x6", WACOM_PKGLEN_INTUOS, 31496, 19685, 1023, 63, INTUOS3S }, | 954 | static struct wacom_features wacom_features_0x31 = |
955 | { "Wacom Intuos4 4x6", WACOM_PKGLEN_INTUOS, 31496, 19685, 2047, 63, INTUOS4S }, | 955 | { "Wacom PL500", WACOM_PKGLEN_GRAPHIRE, 6144, 4608, 255, 0, PL }; |
956 | { "Wacom Intuos4 6x9", WACOM_PKGLEN_INTUOS, 44704, 27940, 2047, 63, INTUOS4 }, | 956 | static struct wacom_features wacom_features_0x32 = |
957 | { "Wacom Intuos4 8x13", WACOM_PKGLEN_INTUOS, 65024, 40640, 2047, 63, INTUOS4L }, | 957 | { "Wacom PL600", WACOM_PKGLEN_GRAPHIRE, 6126, 4604, 255, 0, PL }; |
958 | { "Wacom Intuos4 12x19", WACOM_PKGLEN_INTUOS, 97536, 60960, 2047, 63, INTUOS4L }, | 958 | static struct wacom_features wacom_features_0x33 = |
959 | { "Wacom Cintiq 21UX", WACOM_PKGLEN_INTUOS, 87200, 65600, 1023, 63, CINTIQ }, | 959 | { "Wacom PL600SX", WACOM_PKGLEN_GRAPHIRE, 6260, 5016, 255, 0, PL }; |
960 | { "Wacom Cintiq 20WSX", WACOM_PKGLEN_INTUOS, 86680, 54180, 1023, 63, WACOM_BEE }, | 960 | static struct wacom_features wacom_features_0x34 = |
961 | { "Wacom Cintiq 12WX", WACOM_PKGLEN_INTUOS, 53020, 33440, 1023, 63, WACOM_BEE }, | 961 | { "Wacom PL550", WACOM_PKGLEN_GRAPHIRE, 6144, 4608, 511, 0, PL }; |
962 | { "Wacom DTU1931", WACOM_PKGLEN_GRAPHIRE, 37832, 30305, 511, 0, PL }, | 962 | static struct wacom_features wacom_features_0x35 = |
963 | { "Wacom ISDv4 90", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255, 0, TABLETPC }, | 963 | { "Wacom PL800", WACOM_PKGLEN_GRAPHIRE, 7220, 5780, 511, 0, PL }; |
964 | { "Wacom ISDv4 93", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255, 0, TABLETPC }, | 964 | static struct wacom_features wacom_features_0x37 = |
965 | { "Wacom ISDv4 9A", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255, 0, TABLETPC }, | 965 | { "Wacom PL700", WACOM_PKGLEN_GRAPHIRE, 6758, 5406, 511, 0, PL }; |
966 | { "Wacom ISDv4 9F", WACOM_PKGLEN_PENABLED, 26202, 16325, 255, 0, TABLETPC }, | 966 | static struct wacom_features wacom_features_0x38 = |
967 | { "Wacom ISDv4 E2", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }, | 967 | { "Wacom PL510", WACOM_PKGLEN_GRAPHIRE, 6282, 4762, 511, 0, PL }; |
968 | { "Wacom ISDv4 E3", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }, | 968 | static struct wacom_features wacom_features_0x39 = |
969 | { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }, | 969 | { "Wacom DTU710", WACOM_PKGLEN_GRAPHIRE, 34080, 27660, 511, 0, PL }; |
970 | static struct wacom_features wacom_features_0xC4 = | ||
971 | { "Wacom DTF521", WACOM_PKGLEN_GRAPHIRE, 6282, 4762, 511, 0, PL }; | ||
972 | static struct wacom_features wacom_features_0xC0 = | ||
973 | { "Wacom DTF720", WACOM_PKGLEN_GRAPHIRE, 6858, 5506, 511, 0, PL }; | ||
974 | static struct wacom_features wacom_features_0xC2 = | ||
975 | { "Wacom DTF720a", WACOM_PKGLEN_GRAPHIRE, 6858, 5506, 511, 0, PL }; | ||
976 | static struct wacom_features wacom_features_0x03 = | ||
977 | { "Wacom Cintiq Partner", WACOM_PKGLEN_GRAPHIRE, 20480, 15360, 511, 0, PTU }; | ||
978 | static struct wacom_features wacom_features_0x41 = | ||
979 | { "Wacom Intuos2 4x5", WACOM_PKGLEN_INTUOS, 12700, 10600, 1023, 31, INTUOS }; | ||
980 | static struct wacom_features wacom_features_0x42 = | ||
981 | { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }; | ||
982 | static struct wacom_features wacom_features_0x43 = | ||
983 | { "Wacom Intuos2 9x12", WACOM_PKGLEN_INTUOS, 30480, 24060, 1023, 31, INTUOS }; | ||
984 | static struct wacom_features wacom_features_0x44 = | ||
985 | { "Wacom Intuos2 12x12", WACOM_PKGLEN_INTUOS, 30480, 31680, 1023, 31, INTUOS }; | ||
986 | static struct wacom_features wacom_features_0x45 = | ||
987 | { "Wacom Intuos2 12x18", WACOM_PKGLEN_INTUOS, 45720, 31680, 1023, 31, INTUOS }; | ||
988 | static struct wacom_features wacom_features_0xB0 = | ||
989 | { "Wacom Intuos3 4x5", WACOM_PKGLEN_INTUOS, 25400, 20320, 1023, 63, INTUOS3S }; | ||
990 | static struct wacom_features wacom_features_0xB1 = | ||
991 | { "Wacom Intuos3 6x8", WACOM_PKGLEN_INTUOS, 40640, 30480, 1023, 63, INTUOS3 }; | ||
992 | static struct wacom_features wacom_features_0xB2 = | ||
993 | { "Wacom Intuos3 9x12", WACOM_PKGLEN_INTUOS, 60960, 45720, 1023, 63, INTUOS3 }; | ||
994 | static struct wacom_features wacom_features_0xB3 = | ||
995 | { "Wacom Intuos3 12x12", WACOM_PKGLEN_INTUOS, 60960, 60960, 1023, 63, INTUOS3L }; | ||
996 | static struct wacom_features wacom_features_0xB4 = | ||
997 | { "Wacom Intuos3 12x19", WACOM_PKGLEN_INTUOS, 97536, 60960, 1023, 63, INTUOS3L }; | ||
998 | static struct wacom_features wacom_features_0xB5 = | ||
999 | { "Wacom Intuos3 6x11", WACOM_PKGLEN_INTUOS, 54204, 31750, 1023, 63, INTUOS3 }; | ||
1000 | static struct wacom_features wacom_features_0xB7 = | ||
1001 | { "Wacom Intuos3 4x6", WACOM_PKGLEN_INTUOS, 31496, 19685, 1023, 63, INTUOS3S }; | ||
1002 | static struct wacom_features wacom_features_0xB8 = | ||
1003 | { "Wacom Intuos4 4x6", WACOM_PKGLEN_INTUOS, 31496, 19685, 2047, 63, INTUOS4S }; | ||
1004 | static struct wacom_features wacom_features_0xB9 = | ||
1005 | { "Wacom Intuos4 6x9", WACOM_PKGLEN_INTUOS, 44704, 27940, 2047, 63, INTUOS4 }; | ||
1006 | static struct wacom_features wacom_features_0xBA = | ||
1007 | { "Wacom Intuos4 8x13", WACOM_PKGLEN_INTUOS, 65024, 40640, 2047, 63, INTUOS4L }; | ||
1008 | static struct wacom_features wacom_features_0xBB = | ||
1009 | { "Wacom Intuos4 12x19", WACOM_PKGLEN_INTUOS, 97536, 60960, 2047, 63, INTUOS4L }; | ||
1010 | static struct wacom_features wacom_features_0x3F = | ||
1011 | { "Wacom Cintiq 21UX", WACOM_PKGLEN_INTUOS, 87200, 65600, 1023, 63, CINTIQ }; | ||
1012 | static struct wacom_features wacom_features_0xC5 = | ||
1013 | { "Wacom Cintiq 20WSX", WACOM_PKGLEN_INTUOS, 86680, 54180, 1023, 63, WACOM_BEE }; | ||
1014 | static struct wacom_features wacom_features_0xC6 = | ||
1015 | { "Wacom Cintiq 12WX", WACOM_PKGLEN_INTUOS, 53020, 33440, 1023, 63, WACOM_BEE }; | ||
1016 | static struct wacom_features wacom_features_0xC7 = | ||
1017 | { "Wacom DTU1931", WACOM_PKGLEN_GRAPHIRE, 37832, 30305, 511, 0, PL }; | ||
1018 | static struct wacom_features wacom_features_0x90 = | ||
1019 | { "Wacom ISDv4 90", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255, 0, TABLETPC }; | ||
1020 | static struct wacom_features wacom_features_0x93 = | ||
1021 | { "Wacom ISDv4 93", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255, 0, TABLETPC }; | ||
1022 | static struct wacom_features wacom_features_0x9A = | ||
1023 | { "Wacom ISDv4 9A", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255, 0, TABLETPC }; | ||
1024 | static struct wacom_features wacom_features_0x9F = | ||
1025 | { "Wacom ISDv4 9F", WACOM_PKGLEN_PENABLED, 26202, 16325, 255, 0, TABLETPC }; | ||
1026 | static struct wacom_features wacom_features_0xE2 = | ||
1027 | { "Wacom ISDv4 E2", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }; | ||
1028 | static struct wacom_features wacom_features_0xE3 = | ||
1029 | { "Wacom ISDv4 E3", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG }; | ||
1030 | static struct wacom_features wacom_features_0x47 = | ||
1031 | { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS }; | ||
1032 | |||
1033 | #define USB_DEVICE_WACOM(prod) \ | ||
1034 | USB_DEVICE(USB_VENDOR_ID_WACOM, prod), \ | ||
1035 | .driver_info = (kernel_ulong_t)&wacom_features_##prod | ||
1036 | |||
1037 | const struct usb_device_id wacom_ids[] = { | ||
1038 | { USB_DEVICE_WACOM(0x00) }, | ||
1039 | { USB_DEVICE_WACOM(0x10) }, | ||
1040 | { USB_DEVICE_WACOM(0x11) }, | ||
1041 | { USB_DEVICE_WACOM(0x12) }, | ||
1042 | { USB_DEVICE_WACOM(0x13) }, | ||
1043 | { USB_DEVICE_WACOM(0x14) }, | ||
1044 | { USB_DEVICE_WACOM(0x15) }, | ||
1045 | { USB_DEVICE_WACOM(0x16) }, | ||
1046 | { USB_DEVICE_WACOM(0x17) }, | ||
1047 | { USB_DEVICE_WACOM(0x18) }, | ||
1048 | { USB_DEVICE_WACOM(0x19) }, | ||
1049 | { USB_DEVICE_WACOM(0x60) }, | ||
1050 | { USB_DEVICE_WACOM(0x61) }, | ||
1051 | { USB_DEVICE_WACOM(0x62) }, | ||
1052 | { USB_DEVICE_WACOM(0x63) }, | ||
1053 | { USB_DEVICE_WACOM(0x64) }, | ||
1054 | { USB_DEVICE_WACOM(0x65) }, | ||
1055 | { USB_DEVICE_WACOM(0x69) }, | ||
1056 | { USB_DEVICE_WACOM(0x20) }, | ||
1057 | { USB_DEVICE_WACOM(0x21) }, | ||
1058 | { USB_DEVICE_WACOM(0x22) }, | ||
1059 | { USB_DEVICE_WACOM(0x23) }, | ||
1060 | { USB_DEVICE_WACOM(0x24) }, | ||
1061 | { USB_DEVICE_WACOM(0x30) }, | ||
1062 | { USB_DEVICE_WACOM(0x31) }, | ||
1063 | { USB_DEVICE_WACOM(0x32) }, | ||
1064 | { USB_DEVICE_WACOM(0x33) }, | ||
1065 | { USB_DEVICE_WACOM(0x34) }, | ||
1066 | { USB_DEVICE_WACOM(0x35) }, | ||
1067 | { USB_DEVICE_WACOM(0x37) }, | ||
1068 | { USB_DEVICE_WACOM(0x38) }, | ||
1069 | { USB_DEVICE_WACOM(0x39) }, | ||
1070 | { USB_DEVICE_WACOM(0xC4) }, | ||
1071 | { USB_DEVICE_WACOM(0xC0) }, | ||
1072 | { USB_DEVICE_WACOM(0xC2) }, | ||
1073 | { USB_DEVICE_WACOM(0x03) }, | ||
1074 | { USB_DEVICE_WACOM(0x41) }, | ||
1075 | { USB_DEVICE_WACOM(0x42) }, | ||
1076 | { USB_DEVICE_WACOM(0x43) }, | ||
1077 | { USB_DEVICE_WACOM(0x44) }, | ||
1078 | { USB_DEVICE_WACOM(0x45) }, | ||
1079 | { USB_DEVICE_WACOM(0xB0) }, | ||
1080 | { USB_DEVICE_WACOM(0xB1) }, | ||
1081 | { USB_DEVICE_WACOM(0xB2) }, | ||
1082 | { USB_DEVICE_WACOM(0xB3) }, | ||
1083 | { USB_DEVICE_WACOM(0xB4) }, | ||
1084 | { USB_DEVICE_WACOM(0xB5) }, | ||
1085 | { USB_DEVICE_WACOM(0xB7) }, | ||
1086 | { USB_DEVICE_WACOM(0xB8) }, | ||
1087 | { USB_DEVICE_WACOM(0xB9) }, | ||
1088 | { USB_DEVICE_WACOM(0xBA) }, | ||
1089 | { USB_DEVICE_WACOM(0xBB) }, | ||
1090 | { USB_DEVICE_WACOM(0x3F) }, | ||
1091 | { USB_DEVICE_WACOM(0xC5) }, | ||
1092 | { USB_DEVICE_WACOM(0xC6) }, | ||
1093 | { USB_DEVICE_WACOM(0xC7) }, | ||
1094 | { USB_DEVICE_WACOM(0x90) }, | ||
1095 | { USB_DEVICE_WACOM(0x93) }, | ||
1096 | { USB_DEVICE_WACOM(0x9A) }, | ||
1097 | { USB_DEVICE_WACOM(0x9F) }, | ||
1098 | { USB_DEVICE_WACOM(0xE2) }, | ||
1099 | { USB_DEVICE_WACOM(0xE3) }, | ||
1100 | { USB_DEVICE_WACOM(0x47) }, | ||
970 | { } | 1101 | { } |
971 | }; | 1102 | }; |
972 | |||
973 | static struct usb_device_id wacom_ids[] = { | ||
974 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x00) }, | ||
975 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x10) }, | ||
976 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x11) }, | ||
977 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x12) }, | ||
978 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x13) }, | ||
979 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x14) }, | ||
980 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x15) }, | ||
981 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) }, | ||
982 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x17) }, | ||
983 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x18) }, | ||
984 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x19) }, | ||
985 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, | ||
986 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) }, | ||
987 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, | ||
988 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x63) }, | ||
989 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x64) }, | ||
990 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x65) }, | ||
991 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x69) }, | ||
992 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x20) }, | ||
993 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x21) }, | ||
994 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x22) }, | ||
995 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x23) }, | ||
996 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x24) }, | ||
997 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x30) }, | ||
998 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x31) }, | ||
999 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x32) }, | ||
1000 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x33) }, | ||
1001 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x34) }, | ||
1002 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x35) }, | ||
1003 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x37) }, | ||
1004 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x38) }, | ||
1005 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x39) }, | ||
1006 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC4) }, | ||
1007 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC0) }, | ||
1008 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC2) }, | ||
1009 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x03) }, | ||
1010 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x41) }, | ||
1011 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x42) }, | ||
1012 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x43) }, | ||
1013 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x44) }, | ||
1014 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x45) }, | ||
1015 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB0) }, | ||
1016 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB1) }, | ||
1017 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB2) }, | ||
1018 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB3) }, | ||
1019 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB4) }, | ||
1020 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB5) }, | ||
1021 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB7) }, | ||
1022 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB8) }, | ||
1023 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB9) }, | ||
1024 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xBA) }, | ||
1025 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xBB) }, | ||
1026 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, | ||
1027 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC5) }, | ||
1028 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) }, | ||
1029 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC7) }, | ||
1030 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x90) }, | ||
1031 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x93) }, | ||
1032 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x9A) }, | ||
1033 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x9F) }, | ||
1034 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xE2) }, | ||
1035 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xE3) }, | ||
1036 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, | ||
1037 | { } | ||
1038 | }; | ||
1039 | |||
1040 | const struct usb_device_id *get_device_table(void) | ||
1041 | { | ||
1042 | const struct usb_device_id *id_table = wacom_ids; | ||
1043 | |||
1044 | return id_table; | ||
1045 | } | ||
1046 | |||
1047 | struct wacom_features * get_wacom_feature(const struct usb_device_id *id) | ||
1048 | { | ||
1049 | int index = id - wacom_ids; | ||
1050 | struct wacom_features *wf = &wacom_features[index]; | ||
1051 | |||
1052 | return wf; | ||
1053 | } | ||
1054 | |||
1055 | MODULE_DEVICE_TABLE(usb, wacom_ids); | 1103 | MODULE_DEVICE_TABLE(usb, wacom_ids); |