Signed-off-by: Jason Gerecke <killert...@gmail.com>
---
 src/util/60-wacom.rules |    5 +++++
 src/util/wacusb.c       |   11 +++++++++++
 src/xdrv/wcmCommon.c    |    3 ++-
 src/xdrv/wcmUSB.c       |   22 ++++++++++++++++++++++
 src/xdrv/xf86Wacom.c    |    6 ++++--
 5 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/src/util/60-wacom.rules b/src/util/60-wacom.rules
index a7142ee..a9c5cfc 100644
--- a/src/util/60-wacom.rules
+++ b/src/util/60-wacom.rules
@@ -85,6 +85,11 @@ ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00ba", 
SYMLINK+="input/tablet-intuos
 ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bb", 
SYMLINK+="input/tablet-intuos4-12x19"
 ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bc", 
SYMLINK+="input/tablet-intuos4-wl-usb"
 ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00bd", 
SYMLINK+="input/tablet-intuos4-wl"
+ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0026", 
SYMLINK+="input/tablet-intuos5-touch-s"
+ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0027", 
SYMLINK+="input/tablet-intuos5-touch-m"
+ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0028", 
SYMLINK+="input/tablet-intuos5-touch-l"
+ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0029", 
SYMLINK+="input/tablet-intuos5-s"
+ATTRS{idVendor}=="056a", ATTRS{idProduct}=="002a", 
SYMLINK+="input/tablet-intuos5-m"
 ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c0", 
SYMLINK+="input/tablet-dtf521"
 ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c4", 
SYMLINK+="input/tablet-dtf720"
 ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c5", 
SYMLINK+="input/tablet-cintiq20wsx"
diff --git a/src/util/wacusb.c b/src/util/wacusb.c
index 2013eb2..f848ded 100755
--- a/src/util/wacusb.c
+++ b/src/util/wacusb.c
@@ -317,6 +317,16 @@ static int USBIdentifyModel(USBTABLET* pUSB);
                { NULL }
        };
 
+       static USBSUBTYPE xIntuos5[] =
+       {
+               { "PTH-450",   "Wacom Intuos5 touch S",   1, 0x26 },
+               { "PTH-650",   "Wacom Intuos5 touch M",   2, 0x27 },
+               { "PTH-850",   "Wacom Intuos5 touch L",   3, 0x28 },
+               { "PTK-450",   "Wacom Intuos5 S",         4, 0x29 },
+               { "PTK-650",   "Wacom Intuos5 M",         5, 0x2A },
+               { NULL }
+       };
+
        static USBDEVICE xWacomDevices[] =
        {
                { "pp", "PenPartner", WACOMDEVICE_PENPARTNER, xPenPartner, 1 },
@@ -328,6 +338,7 @@ static int USBIdentifyModel(USBTABLET* pUSB);
                { "int2", "Intuos2", WACOMDEVICE_INTUOS2, xIntuos2, 2 },
                { "int3", "Intuos3", WACOMDEVICE_INTUOS3, xIntuos3, 2 },
                { "int4", "Intuos4", WACOMDEVICE_INTUOS3, xIntuos4, 2 },
+               { "int5", "Intuos5", WACOMDEVICE_INTUOS3, xIntuos5, 2 },
                { "ctq", "Cintiq (V5)", WACOMDEVICE_CINTIQV5, xCintiqV5, 2 },
                { "pl", "Cintiq (PL)", WACOMDEVICE_CINTIQ, xCintiq, 1 },
                { "ptu", "Cintiq Partner (PTU)", WACOMDEVICE_PTU, 
xCintiqPartner, 1 },
diff --git a/src/xdrv/wcmCommon.c b/src/xdrv/wcmCommon.c
index e896dd6..e8f037d 100755
--- a/src/xdrv/wcmCommon.c
+++ b/src/xdrv/wcmCommon.c
@@ -490,7 +490,8 @@ static void sendWheelStripEvents(LocalDevicePtr local, 
const WacomDeviceState* d
                value = priv->oldWheel - ds->abswheel;
                if ((strstr(common->wcmModel->name, "Bamboo") ||
                strstr(common->wcmModel->name, "Intuos4") ||
-               strstr(common->wcmModel->name, "CintiqV5"))
+               strstr(common->wcmModel->name, "CintiqV5") ||
+               strstr(common->wcmModel->name, "Intuos5"))
                        && IsPad(priv))
                {
                        /* deal with MAX_FINGER_WHEEL to 0 and 0 to 
MAX_FINGER_WHEEL switching */
diff --git a/src/xdrv/wcmUSB.c b/src/xdrv/wcmUSB.c
index 67bd421..05c80f1 100755
--- a/src/xdrv/wcmUSB.c
+++ b/src/xdrv/wcmUSB.c
@@ -307,6 +307,22 @@ static void usbParseChannel(LocalDevicePtr local, int 
channel);
                usbDetectConfig,      /* detect hardware buttons etc */
        };
 
+       static WacomModel usbIntuos5 =
+       {
+               "USB Intuos5",
+               usbInitProtocol5,
+               NULL,                 /* resolution not queried */
+               usbWcmGetRanges,
+               NULL,                 /* reset not supported */
+               NULL,                 /* tilt automatically enabled */
+               NULL,                 /* suppress implemented in software */
+               NULL,                 /* link speed unsupported */
+               NULL,                 /* start not supported */
+               usbParse,
+               xf86WcmFilterIntuos,  /* input filtering recommended */
+               usbDetectConfig,      /* detect hardware buttons etc */
+       };
+
        static WacomModel usbVolito =
        {
                "USB Volito",
@@ -498,6 +514,12 @@ static struct
        { 0xBC, 5080, 5080, &usbIntuos4    }, /* Intuos4 WL USB Endpoint */
        { 0xBD, 5080, 5080, &usbIntuos4    }, /* Intuos4 WL Bluetooth Endpoint 
*/
 
+       { 0x26, 5080, 5080, &usbIntuos5    }, /* Intuos5 touch S */
+       { 0x27, 5080, 5080, &usbIntuos5    }, /* Intuos5 touch M */
+       { 0x28, 5080, 5080, &usbIntuos5    }, /* Intuos5 touch L */
+       { 0x29, 5080, 5080, &usbIntuos5    }, /* Intuos5 S */
+       { 0x2A, 5080, 5080, &usbIntuos5    }, /* Intuos5 M */
+
        { 0x3F, 5080, 5080, &usbCintiqV5   }, /* Cintiq 21UX */
        { 0xF4, 5080, 5080, &usbCintiqV5   }, /* Cintiq 24HD */
        { 0xC5, 5080, 5080, &usbCintiqV5   }, /* Cintiq 20WSX */ 
diff --git a/src/xdrv/xf86Wacom.c b/src/xdrv/xf86Wacom.c
index 509bce2..145a7e8 100755
--- a/src/xdrv/xf86Wacom.c
+++ b/src/xdrv/xf86Wacom.c
@@ -535,12 +535,14 @@ static int xf86WcmRegisterX11Devices (LocalDevicePtr 
local)
 
        if ((strstr(common->wcmModel->name, "Intuos3") || 
                strstr(common->wcmModel->name, "CintiqV5") ||
-               strstr(common->wcmModel->name, "Intuos4")) 
+               strstr(common->wcmModel->name, "Intuos4") ||
+               strstr(common->wcmModel->name, "Intuos5"))
                        && IsStylus(priv))
                /* Art Marker Pen rotation */
                InitValuatorAxisStruct(local->dev, 5, 0, FILTER_PRESSURE_RES, 
1, 1, 1);
        else if ((strstr(common->wcmModel->name, "Bamboo") ||
-               strstr(common->wcmModel->name, "Intuos4"))
+               strstr(common->wcmModel->name, "Intuos4") ||
+               strstr(common->wcmModel->name, "Intuos5"))
                        && IsPad(priv))
                /* Touch ring */
                InitValuatorAxisStruct(local->dev, 5, 0, MAX_FINGER_WHEEL, 1, 
1, 1);
-- 
1.7.9.5


------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to