diff options
author | Bastian Blank <waldi@debian.org> | 2010-02-11 02:06:23 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-02-11 02:31:37 -0500 |
commit | b036f6fb3aa23a52d90da5fc57e0803f08292e82 (patch) | |
tree | 714b969a2dc7101c4a2574c48cb5ddd239dad47f /drivers/input/tablet | |
parent | 5deeac99fe1146532eb7c64f9adb17d17628d751 (diff) |
Input: wacom - get features from driver info
Get the features information from the driver info of the usb device id
structure provided by the caller. The device ids and feature structs
are strong coupled using indices.
Signed-off-by: Bastian Blank <waldi@debian.org>
Tested-by: Jason Childs <oblivian@users.sourceforge.net>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/tablet')
-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); |