Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 62841 Details for
Bug 95478
linuxwacom-0.7.0 (with Volito2 support)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Kernel patch against linux-2.6.12-gentoo-r4
linuxwacom-0.6.8-volito2_2.6.12-gentoo-r4.patch (text/plain), 22.46 KB, created by
crusaderky
on 2005-07-07 08:26:29 UTC
(
hide
)
Description:
Kernel patch against linux-2.6.12-gentoo-r4
Filename:
MIME Type:
Creator:
crusaderky
Created:
2005-07-07 08:26:29 UTC
Size:
22.46 KB
patch
obsolete
>--- drivers/usb/input/hid-core.c 2005-07-07 16:13:09.000000000 +0200 >+++ drivers/usb/input/hid-core.c 2005-07-07 16:27:11.000000000 +0200 >@@ -1314,6 +1314,7 @@ > #define USB_DEVICE_ID_WACOM_PL 0x0030 > #define USB_DEVICE_ID_WACOM_INTUOS2 0x0040 > #define USB_DEVICE_ID_WACOM_VOLITO 0x0060 >+#define USB_DEVICE_ID_WACOM_VOLITO2 0x0062 > #define USB_DEVICE_ID_WACOM_PTU 0x0003 > #define USB_DEVICE_ID_WACOM_INTUOS3 0x00B0 > #define USB_DEVICE_ID_WACOM_CINTIQ 0x003F >@@ -1494,6 +1495,7 @@ > { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 5, HID_QUIRK_IGNORE }, > { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 7, HID_QUIRK_IGNORE }, > { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO, HID_QUIRK_IGNORE }, >+ { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO2, HID_QUIRK_IGNORE }, > { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PTU, HID_QUIRK_IGNORE }, > { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3, HID_QUIRK_IGNORE }, > { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3 + 1, HID_QUIRK_IGNORE }, >--- drivers/usb/input/wacom.c 2005-07-07 16:13:09.000000000 +0200 >+++ drivers/usb/input/wacom.c 2005-07-07 16:19:26.000000000 +0200 >@@ -9,7 +9,7 @@ > * Copyright (c) 2000 Daniel Egger <egger@suse.de> > * Copyright (c) 2001 Frederic Lepied <flepied@mandrakesoft.com> > * Copyright (c) 2004 Panagiotis Issaris <panagiotis.issaris@mech.kuleuven.ac.be> >- * Copyright (c) 2002-2004 Ping Cheng <pingc@wacom.com> >+ * Copyright (c) 2002-2005 Ping Cheng <pingc@wacom.com> > * > * ChangeLog: > * v0.1 (vp) - Initial release >@@ -51,6 +51,16 @@ > * - Cleanups here and there > * v1.30.1 (pi) - Added Graphire3 support > * v1.40 (pc) - Add support for several new devices, fix eraser reporting, ... >+ * >+ * WARNING: THIS IS NOT PART OF THE OFFICIAL KERNEL TREE >+ * THIS IS FOR TESTING PURPOSES >+ * >+ * v1.40-2.6.11.3-pc-0.1 - initial release based on 2.6.11 >+ * - fixed a Graphire bug >+ * - added Intuos3 >+ * - added Cintiq 21UX >+ * v1.40-2.6.11.3-pc-0.2 - fixed an I3 bug >+ * > */ > > /* >@@ -72,7 +82,7 @@ > /* > * Version Information > */ >-#define DRIVER_VERSION "v1.40" >+#define DRIVER_VERSION "v1.40 - 2.6.12-ky1" > #define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" > #define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" > #define DRIVER_LICENSE "GPL" >@@ -83,6 +93,16 @@ > > #define USB_VENDOR_ID_WACOM 0x056a > >+enum { >+ PENPARTNER = 0, >+ GRAPHIRE, >+ PL, >+ INTUOS, >+ INTUOS3, >+ CINTIQ, >+ MAX_TYPE >+}; >+ > struct wacom_features { > char *name; > int pktlen; >@@ -115,7 +135,7 @@ > usb_sndctrlpipe(interface_to_usbdev(intf), 0), > USB_REQ_SET_REPORT, USB_TYPE_CLASS | USB_RECIP_INTERFACE, > (type << 8) + id, intf->altsetting[0].desc.bInterfaceNumber, >- buf, size, 1000); >+ buf, size, HZ); > } > > static void wacom_pl_irq(struct urb *urb, struct pt_regs *regs) >@@ -182,8 +202,8 @@ > wacom->tool[1] = BTN_TOOL_PEN; > } > input_report_key(dev, wacom->tool[1], prox); /* report in proximity for tool */ >- input_report_abs(dev, ABS_X, data[3] | ((__u32)data[2] << 7) | ((__u32)(data[1] & 0x03) << 14)); >- input_report_abs(dev, ABS_Y, data[6] | ((__u32)data[5] << 7) | ((__u32)(data[4] & 0x03) << 14)); >+ input_report_abs(dev, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); >+ input_report_abs(dev, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); > input_report_abs(dev, ABS_PRESSURE, pressure); > > input_report_key(dev, BTN_TOUCH, data[4] & 0x08); >@@ -335,49 +355,47 @@ > goto exit; > } > >- x = le16_to_cpu(*(__le16 *) &data[2]); >- y = le16_to_cpu(*(__le16 *) &data[4]); >- > input_regs(dev, regs); > >- switch ((data[1] >> 5) & 3) { >- >- case 0: /* Pen */ >- input_report_key(dev, BTN_TOOL_PEN, data[1] & 0x80); >- break; >- >- case 1: /* Rubber */ >- input_report_key(dev, BTN_TOOL_RUBBER, data[1] & 0x80); >- break; >- >- case 2: /* Mouse with wheel */ >- input_report_key(dev, BTN_MIDDLE, data[1] & 0x04); >- input_report_rel(dev, REL_WHEEL, (signed char) data[6]); >- /* fall through */ >+ if ( data[1] & 0x10 ) /* in prox */ >+ { >+ switch ((data[1] >> 5) & 3) { > >- case 3: /* Mouse without wheel */ >- input_report_key(dev, BTN_TOOL_MOUSE, data[7] > 24); >- input_report_key(dev, BTN_LEFT, data[1] & 0x01); >- input_report_key(dev, BTN_RIGHT, data[1] & 0x02); >- input_report_abs(dev, ABS_DISTANCE, data[7]); >+ case 0: /* Pen */ >+ wacom->tool[0] = BTN_TOOL_PEN; >+ break; > >- input_report_abs(dev, ABS_X, x); >- input_report_abs(dev, ABS_Y, y); >+ case 1: /* Rubber */ >+ wacom->tool[0] = BTN_TOOL_RUBBER; >+ break; > >- input_sync(dev); >- goto exit; >+ case 2: /* Mouse with wheel */ >+ input_report_key(dev, BTN_MIDDLE, data[1] & 0x04); >+ input_report_rel(dev, REL_WHEEL, (signed char) data[6]); >+ /* fall through */ >+ >+ case 3: /* Mouse without wheel */ >+ wacom->tool[0] = BTN_TOOL_MOUSE; >+ input_report_key(dev, BTN_LEFT, data[1] & 0x01); >+ input_report_key(dev, BTN_RIGHT, data[1] & 0x02); >+ input_report_abs(dev, ABS_DISTANCE, data[7]); >+ break; >+ } > } > > if (data[1] & 0x80) { >+ x = le16_to_cpu(*(__le16 *) &data[2]); >+ y = le16_to_cpu(*(__le16 *) &data[4]); > input_report_abs(dev, ABS_X, x); > input_report_abs(dev, ABS_Y, y); > } >- >- input_report_abs(dev, ABS_PRESSURE, le16_to_cpu(*(__le16 *) &data[6])); >- input_report_key(dev, BTN_TOUCH, data[1] & 0x01); >- input_report_key(dev, BTN_STYLUS, data[1] & 0x02); >- input_report_key(dev, BTN_STYLUS2, data[1] & 0x04); >- >+ if (wacom->tool[0] != BTN_TOOL_MOUSE) { >+ input_report_abs(dev, ABS_PRESSURE, le16_to_cpu(*(__le16 *) &data[6])); >+ input_report_key(dev, BTN_TOUCH, data[1] & 0x01); >+ input_report_key(dev, BTN_STYLUS, data[1] & 0x02); >+ input_report_key(dev, BTN_STYLUS2, data[1] & 0x04); >+ } >+ input_report_key(dev, wacom->tool[0], data[1] & 0x10); > input_sync(dev); > > exit: >@@ -398,30 +416,30 @@ > idx = data[1] & 0x01; > > /* Enter report */ >- if ((data[1] & 0xfc) == 0xc0) >- { >+ if ((data[1] & 0xfc) == 0xc0) >+ { > /* serial number of the tool */ >- wacom->serial[idx] = ((__u32)(data[3] & 0x0f) << 28) + >- ((__u32)data[4] << 20) + ((__u32)data[5] << 12) + >- ((__u32)data[6] << 4) + (data[7] >> 4); >+ wacom->serial[idx] = ((data[3] & 0x0f) << 28) + >+ (data[4] << 20) + (data[5] << 12) + >+ (data[6] << 4) + (data[7] >> 4); > >- switch (((__u32)data[2] << 4) | (data[3] >> 4)) { >+ switch ((data[2] << 4) | (data[3] >> 4)) { > case 0x812: /* Inking pen */ > case 0x801: /* Intuos3 Inking pen */ >- case 0x012: >+ case 0x012: > wacom->tool[idx] = BTN_TOOL_PENCIL; >- break; >+ break; > case 0x822: /* Pen */ > case 0x842: > case 0x852: > case 0x823: /* Intuos3 Grip Pen */ > case 0x813: /* Intuos3 Classic Pen */ > case 0x885: /* Intuos3 Marker Pen */ >- case 0x022: >+ case 0x022: > wacom->tool[idx] = BTN_TOOL_PEN; > break; > case 0x832: /* Stroke pen */ >- case 0x032: >+ case 0x032: > wacom->tool[idx] = BTN_TOOL_BRUSH; > break; > case 0x007: /* Mouse 4D and 2D */ >@@ -438,18 +456,18 @@ > case 0x85a: > case 0x91a: > case 0xd1a: >- case 0x0fa: >+ case 0x0fa: > case 0x82b: /* Intuos3 Grip Pen Eraser */ > case 0x81b: /* Intuos3 Classic Pen Eraser */ > case 0x91b: /* Intuos3 Airbrush Eraser */ > wacom->tool[idx] = BTN_TOOL_RUBBER; > break; >- case 0xd12: >+ case 0xd12: /* Airbrush */ > case 0x912: >- case 0x112: >+ case 0x112: > case 0x913: /* Intuos3 Airbrush */ > wacom->tool[idx] = BTN_TOOL_AIRBRUSH; >- break; /* Airbrush */ >+ break; > default: /* Unknown tool */ > wacom->tool[idx] = BTN_TOOL_PEN; > } >@@ -480,7 +498,7 @@ > /* general pen packet */ > if ((data[1] & 0xb8) == 0xa0) > { >- t = ((__u32)data[6] << 2) | ((data[7] >> 6) & 3); >+ t = (data[6] << 2) | ((data[7] >> 6) & 3); > input_report_abs(dev, ABS_PRESSURE, t); > input_report_abs(dev, ABS_TILT_X, > ((data[7] << 1) & 0x7e) | (data[8] >> 7)); >@@ -494,7 +512,7 @@ > if ((data[1] & 0xbc) == 0xb4) > { > input_report_abs(dev, ABS_WHEEL, >- ((__u32)data[6] << 2) | ((data[7] >> 6) & 3)); >+ (data[6] << 2) | ((data[7] >> 6) & 3)); > input_report_abs(dev, ABS_TILT_X, > ((data[7] << 1) & 0x7e) | (data[8] >> 7)); > input_report_abs(dev, ABS_TILT_Y, data[8] & 0x7f); >@@ -526,7 +544,7 @@ > goto exit; > } > >- if (data[0] != 2 && data[0] != 5 && data[0] != 6) { >+ if (data[0] != 2 && data[0] != 5 && data[0] != 6 && data[0] != 12) { > dbg("wacom_intuos_irq: received unknown report #%d", data[0]); > goto exit; > } >@@ -536,101 +554,6 @@ > /* tool number */ > idx = data[1] & 0x01; > >- /* process in/out prox events */ >- if (wacom_intuos_inout(urb)) goto exit; >- >- input_report_abs(dev, ABS_X, be16_to_cpu(*(__be16 *) &data[2])); >- input_report_abs(dev, ABS_Y, be16_to_cpu(*(__be16 *) &data[4])); >- input_report_abs(dev, ABS_DISTANCE, data[9]); >- >- /* process general packets */ >- wacom_intuos_general(urb); >- >- if ((data[1] & 0xbc) == 0xa8 || (data[1] & 0xbe) == 0xb0) { /* 4D mouse or Lens cursor packets */ >- >- if (data[1] & 0x02) { /* Rotation packet */ >- >- t = ((__u32)data[6] << 3) | ((data[7] >> 5) & 7); >- input_report_abs(dev, ABS_RZ, (data[7] & 0x20) ? ((t - 1) / 2) : -t / 2); >- >- } else { >- >- if ((data[1] & 0x10) == 0) { /* 4D mouse packets */ >- >- input_report_key(dev, BTN_LEFT, data[8] & 0x01); >- input_report_key(dev, BTN_MIDDLE, data[8] & 0x02); >- input_report_key(dev, BTN_RIGHT, data[8] & 0x04); >- >- input_report_key(dev, BTN_SIDE, data[8] & 0x20); >- input_report_key(dev, BTN_EXTRA, data[8] & 0x10); >- t = ((__u32)data[6] << 2) | ((data[7] >> 6) & 3); >- input_report_abs(dev, ABS_THROTTLE, (data[8] & 0x08) ? -t : t); >- >- } else { >- if (wacom->tool[idx] == BTN_TOOL_MOUSE) { /* 2D mouse packets */ >- input_report_key(dev, BTN_LEFT, data[8] & 0x04); >- input_report_key(dev, BTN_MIDDLE, data[8] & 0x08); >- input_report_key(dev, BTN_RIGHT, data[8] & 0x10); >- input_report_rel(dev, REL_WHEEL, >- (-(__u32)(data[8] & 0x01) + (__u32)((data[8] & 0x02) >> 1))); >- } >- else { /* Lens cursor packets */ >- input_report_key(dev, BTN_LEFT, data[8] & 0x01); >- input_report_key(dev, BTN_MIDDLE, data[8] & 0x02); >- input_report_key(dev, BTN_RIGHT, data[8] & 0x04); >- input_report_key(dev, BTN_SIDE, data[8] & 0x10); >- input_report_key(dev, BTN_EXTRA, data[8] & 0x08); >- } >- } >- } >- } >- >- input_report_key(dev, wacom->tool[idx], 1); >- input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]); >- input_sync(dev); >- >-exit: >- retval = usb_submit_urb (urb, GFP_ATOMIC); >- if (retval) >- err ("%s - usb_submit_urb failed with result %d", >- __FUNCTION__, retval); >-} >- >-static void wacom_intuos3_irq(struct urb *urb, struct pt_regs *regs) >-{ >- struct wacom *wacom = urb->context; >- unsigned char *data = wacom->data; >- struct input_dev *dev = &wacom->dev; >- unsigned int t; >- int idx, retval; >- >- switch (urb->status) { >- case 0: >- /* success */ >- break; >- case -ECONNRESET: >- case -ENOENT: >- case -ESHUTDOWN: >- /* this urb is terminated, clean up */ >- dbg("%s - urb shutting down with status: %d", __FUNCTION__, urb->status); >- return; >- default: >- dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status); >- goto exit; >- } >- >- /* check for valid report */ >- if (data[0] != 2 && data[0] != 5 && data[0] != 12) >- { >- printk(KERN_INFO "wacom_intuos3_irq: received unknown report #%d\n", data[0]); >- goto exit; >- } >- >- input_regs(dev, regs); >- >- /* tool index is always 0 here since there is no dual input tool */ >- idx = data[1] & 0x01; >- > /* pad packets. Works as a second tool and is always in prox */ > if (data[0] == 12) > { >@@ -658,38 +581,87 @@ > /* process in/out prox events */ > if (wacom_intuos_inout(urb)) goto exit; > >- input_report_abs(dev, ABS_X, ((__u32)data[2] << 9) | ((__u32)data[3] << 1) | ((data[9] >> 1) & 1)); >- input_report_abs(dev, ABS_Y, ((__u32)data[4] << 9) | ((__u32)data[5] << 1) | (data[9] & 1)); >- input_report_abs(dev, ABS_DISTANCE, ((data[9] >> 2) & 0x3f)); >+ /* Cintiq doesn't send data when RDY bit isn't set */ >+ if ((wacom->features->type == CINTIQ) && !(data[1] & 0x40)) return; >+ >+ if(wacom->features->type >= INTUOS3) >+ { >+ input_report_abs(dev, ABS_X, (data[2] << 9) | (data[3] << 1) | ((data[9] >> 1) & 1)); >+ input_report_abs(dev, ABS_Y, (data[4] << 9) | (data[5] << 1) | (data[9] & 1)); >+ input_report_abs(dev, ABS_DISTANCE, ((data[9] >> 2) & 0x3f)); >+ } >+ else >+ { >+ input_report_abs(dev, ABS_X, be16_to_cpu(*(__be16 *) &data[2])); >+ input_report_abs(dev, ABS_Y, be16_to_cpu(*(__be16 *) &data[4])); >+ input_report_abs(dev, ABS_DISTANCE, ((data[9] >> 3) & 0x1f)); >+ } > > /* process general packets */ > wacom_intuos_general(urb); > >- if ((data[1] & 0xbc) == 0xa8 || (data[1] & 0xbe) == 0xb0) >- { >- /* Marker pen rotation packet. Reported as wheel due to valuator limitation */ >- if (data[1] & 0x02) >+ /* 4D mouse, 2D mouse, marker pen rotation, or Lens cursor packets */ >+ if ((data[1] & 0xbc) == 0xa8 || (data[1] & 0xbe) == 0xb0) { >+ /* Rotation packet */ >+ if (data[1] & 0x02) > { >- t = ((__u32)data[6] << 3) | ((data[7] >> 5) & 7); >- t = (data[7] & 0x20) ? ((t > 900) ? ((t-1) / 2 - 1350) : >- ((t-1) / 2 + 450)) : (450 - t / 2) ; >- input_report_abs(dev, ABS_WHEEL, t); >- } >- >- /* 2D mouse packets */ >- if (wacom->tool[idx] == BTN_TOOL_MOUSE) >+ if(wacom->features->type >= INTUOS3) >+ { >+ /* I3 marker pen rotation reported as wheel >+ * due to valuator limitation >+ */ >+ t = (data[6] << 3) | ((data[7] >> 5) & 7); >+ t = (data[7] & 0x20) ? ((t > 900) ? ((t-1) / 2 - 1350) : >+ ((t-1) / 2 + 450)) : (450 - t / 2) ; >+ input_report_abs(dev, ABS_WHEEL, t); >+ } >+ else >+ { >+ /* 4D mouse rotation packet */ >+ t = (data[6] << 3) | ((data[7] >> 5) & 7); >+ input_report_abs(dev, ABS_RZ, (data[7] & 0x20) ? >+ ((t - 1) / 2) : -t / 2); >+ } >+ } >+ /* 4D mouse packets */ >+ else if ( !(data[1] & 0x10) && wacom->features->type < INTUOS3) >+ { >+ input_report_key(dev, BTN_LEFT, data[8] & 0x01); >+ input_report_key(dev, BTN_MIDDLE, data[8] & 0x02); >+ input_report_key(dev, BTN_RIGHT, data[8] & 0x04); >+ >+ input_report_key(dev, BTN_SIDE, data[8] & 0x20); >+ input_report_key(dev, BTN_EXTRA, data[8] & 0x10); >+ t = (data[6] << 2) | ((data[7] >> 6) & 3); >+ input_report_abs(dev, ABS_THROTTLE, (data[8] & 0x08) ? -t : t); >+ } >+ /* 2D mouse packets */ >+ else if (wacom->tool[idx] == BTN_TOOL_MOUSE) > { > input_report_key(dev, BTN_LEFT, data[8] & 0x04); > input_report_key(dev, BTN_MIDDLE, data[8] & 0x08); > input_report_key(dev, BTN_RIGHT, data[8] & 0x10); >- input_report_key(dev, BTN_SIDE, data[8] & 0x40); >- input_report_key(dev, BTN_EXTRA, data[8] & 0x20); >- /* mouse wheel is positive when rolled backwards */ >- input_report_rel(dev, REL_WHEEL, ((__u32)((data[8] & 0x02) >> 1) >- - (__u32)(data[8] & 0x01))); >+ input_report_rel(dev, REL_WHEEL, ((data[8] & 0x02) >> 1) >+ - (data[8] & 0x01)); >+ >+ /* I3 2D mouse side buttons */ >+ if (wacom->features->type == INTUOS3) >+ { >+ input_report_key(dev, BTN_SIDE, data[8] & 0x40); >+ input_report_key(dev, BTN_EXTRA, data[8] & 0x20); >+ } >+ } >+ /* Lens cursor packets */ >+ else if (wacom->features->type < INTUOS3) >+ { >+ input_report_key(dev, BTN_LEFT, data[8] & 0x01); >+ input_report_key(dev, BTN_MIDDLE, data[8] & 0x02); >+ input_report_key(dev, BTN_RIGHT, data[8] & 0x04); >+ input_report_key(dev, BTN_SIDE, data[8] & 0x10); >+ input_report_key(dev, BTN_EXTRA, data[8] & 0x08); > } > } >- >+ > input_report_key(dev, wacom->tool[idx], 1); > input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]); > input_sync(dev); >@@ -698,38 +670,40 @@ > retval = usb_submit_urb (urb, GFP_ATOMIC); > if (retval) > err ("%s - usb_submit_urb failed with result %d", >- __FUNCTION__, retval); >+ __FUNCTION__, retval); > } > > static struct wacom_features wacom_features[] = { >- { "Wacom Penpartner", 7, 5040, 3780, 255, 32, 0, wacom_penpartner_irq }, >- { "Wacom Graphire", 8, 10206, 7422, 511, 32, 1, wacom_graphire_irq }, >- { "Wacom Graphire2 4x5", 8, 10206, 7422, 511, 32, 1, wacom_graphire_irq }, >- { "Wacom Graphire2 5x7", 8, 13918, 10206, 511, 32, 1, wacom_graphire_irq }, >- { "Wacom Graphire3", 8, 10208, 7424, 511, 32, 1, wacom_graphire_irq }, >- { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 32, 1, wacom_graphire_irq }, >- { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos 12x12", 10, 30480, 31680, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos 12x18", 10, 45720, 31680, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom PL400", 8, 5408, 4056, 255, 32, 3, wacom_pl_irq }, >- { "Wacom PL500", 8, 6144, 4608, 255, 32, 3, wacom_pl_irq }, >- { "Wacom PL600", 8, 6126, 4604, 255, 32, 3, wacom_pl_irq }, >- { "Wacom PL600SX", 8, 6260, 5016, 255, 32, 3, wacom_pl_irq }, >- { "Wacom PL550", 8, 6144, 4608, 511, 32, 3, wacom_pl_irq }, >- { "Wacom PL800", 8, 7220, 5780, 511, 32, 3, wacom_pl_irq }, >- { "Wacom Intuos2 4x5", 10, 12700, 10600, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos2 9x12", 10, 30480, 24060, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos2 12x12", 10, 30480, 31680, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Intuos2 12x18", 10, 45720, 31680, 1023, 15, 2, wacom_intuos_irq }, >- { "Wacom Volito", 8, 5104, 3712, 511, 32, 1, wacom_graphire_irq }, >- { "Wacom Cintiq Partner",8, 20480, 15360, 511, 32, 3, wacom_ptu_irq }, >- { "Wacom Intuos3 4x5", 10, 25400, 20320, 1023, 15, 4, wacom_intuos3_irq }, >- { "Wacom Intuos3 6x8", 10, 40640, 30480, 1023, 15, 4, wacom_intuos3_irq }, >- { "Wacom Intuos3 9x12", 10, 60960, 45720, 1023, 15, 4, wacom_intuos3_irq }, >- { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, 2, wacom_intuos_irq }, >+ { "Wacom Penpartner", 7, 5040, 3780, 255, 32, PENPARTNER, wacom_penpartner_irq }, >+ { "Wacom Graphire", 8, 10206, 7422, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Graphire2 4x5", 8, 10206, 7422, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Graphire2 5x7", 8, 13918, 10206, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Graphire3", 8, 10208, 7424, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos 12x12", 10, 30480, 31680, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos 12x18", 10, 45720, 31680, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom PL400", 8, 5408, 4056, 255, 32, PL, wacom_pl_irq }, >+ { "Wacom PL500", 8, 6144, 4608, 255, 32, PL, wacom_pl_irq }, >+ { "Wacom PL600", 8, 6126, 4604, 255, 32, PL, wacom_pl_irq }, >+ { "Wacom PL600SX", 8, 6260, 5016, 255, 32, PL, wacom_pl_irq }, >+ { "Wacom PL550", 8, 6144, 4608, 511, 32, PL, wacom_pl_irq }, >+ { "Wacom PL800", 8, 7220, 5780, 511, 32, PL, wacom_pl_irq }, >+ { "Wacom Intuos2 4x5", 10, 12700, 10600, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos2 9x12", 10, 30480, 24060, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos2 12x12", 10, 30480, 31680, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Intuos2 12x18", 10, 45720, 31680, 1023, 15, INTUOS, wacom_intuos_irq }, >+ { "Wacom Volito", 8, 5104, 3712, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Volito2", 8, 5104, 3712, 511, 32, GRAPHIRE, wacom_graphire_irq }, >+ { "Wacom Cintiq Partner",8, 20480, 15360, 511, 32, PL, wacom_ptu_irq }, >+ { "Wacom Intuos3 4x5", 10, 25400, 20320, 1023, 15, INTUOS3, wacom_intuos_irq }, >+ { "Wacom Intuos3 6x8", 10, 40640, 30480, 1023, 15, INTUOS3, wacom_intuos_irq }, >+ { "Wacom Intuos3 9x12", 10, 60960, 45720, 1023, 15, INTUOS3, wacom_intuos_irq }, >+ { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 15, CINTIQ, wacom_intuos_irq }, >+ { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq }, > { } > }; > >@@ -757,10 +731,12 @@ > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x44) }, > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x45) }, > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, >- { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x03) }, >+ { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, >+ { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x03) }, > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB0) }, > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB1) }, > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB2) }, >+ { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, > { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, > { } > }; >@@ -823,7 +799,7 @@ > wacom->dev.keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_PEN) | BIT(BTN_TOUCH) | BIT(BTN_STYLUS); > > switch (wacom->features->type) { >- case 1: >+ case GRAPHIRE: > wacom->dev.evbit[0] |= BIT(EV_REL); > wacom->dev.relbit[0] |= BIT(REL_WHEEL); > wacom->dev.absbit[0] |= BIT(ABS_DISTANCE); >@@ -831,23 +807,24 @@ > wacom->dev.keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_RUBBER) | BIT(BTN_TOOL_MOUSE) | BIT(BTN_STYLUS2); > break; > >- case 4: /* new functions for Intuos3 */ >+ case INTUOS3: >+ case CINTIQ: > wacom->dev.keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_FINGER); > wacom->dev.keybit[LONG(BTN_LEFT)] |= BIT(BTN_0) | BIT(BTN_1) | BIT(BTN_2) | BIT(BTN_3) | BIT(BTN_4) | BIT(BTN_5) | BIT(BTN_6) | BIT(BTN_7); > wacom->dev.absbit[0] |= BIT(ABS_RX) | BIT(ABS_RY); > /* fall through */ > >- case 2: >+ case INTUOS: > wacom->dev.evbit[0] |= BIT(EV_MSC) | BIT(EV_REL); > wacom->dev.mscbit[0] |= BIT(MSC_SERIAL); > wacom->dev.relbit[0] |= BIT(REL_WHEEL); > wacom->dev.keybit[LONG(BTN_LEFT)] |= BIT(BTN_LEFT) | BIT(BTN_RIGHT) | BIT(BTN_MIDDLE) | BIT(BTN_SIDE) | BIT(BTN_EXTRA); >- wacom->dev.keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_RUBBER) | BIT(BTN_TOOL_MOUSE) | BIT(BTN_TOOL_BRUSH) >+ wacom->dev.keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_RUBBER) | BIT(BTN_TOOL_MOUSE) | BIT(BTN_TOOL_BRUSH) > | BIT(BTN_TOOL_PENCIL) | BIT(BTN_TOOL_AIRBRUSH) | BIT(BTN_TOOL_LENS) | BIT(BTN_STYLUS2); > wacom->dev.absbit[0] |= BIT(ABS_DISTANCE) | BIT(ABS_WHEEL) | BIT(ABS_TILT_X) | BIT(ABS_TILT_Y) | BIT(ABS_RZ) | BIT(ABS_THROTTLE); > break; > >- case 3: >+ case PL: > wacom->dev.keybit[LONG(BTN_DIGI)] |= BIT(BTN_STYLUS2) | BIT(BTN_TOOL_RUBBER); > break; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 95478
:
60852
|
60853
|
60854
|
62841
|
70236
|
70238
|
70385