Skip to content

Commit 59fa4f0

Browse files
committed
Add iptsd support
1 parent 2ee9453 commit 59fa4f0

12 files changed

+265
-73
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
From 174ac028e838a4e564aac4d791aa64209e5cbfa1 Mon Sep 17 00:00:00 2001
2+
From: Dorian Stoll <[email protected]>
3+
Date: Sat, 27 Jun 2020 18:21:11 +0200
4+
Subject: [PATCH 01/12] Add support for BUS_VIRTUAL
5+
6+
This is needed to support IPTS devices through the iptsd userspace
7+
daemon. It exposes the touchscreen / stylus as uinput, since the parsing
8+
of raw IPTS data needs to happen in userspace.
9+
10+
Because these devices are not backed by an actual bus, they are created
11+
as BUS_VIRTUAL.
12+
13+
Signed-off-by: Dorian Stoll <[email protected]>
14+
---
15+
libwacom/libwacom-database.c | 4 ++++
16+
libwacom/libwacom.c | 5 +++++
17+
libwacom/libwacom.h | 1 +
18+
test/test-tablet-validity.c | 1 +
19+
4 files changed, 11 insertions(+)
20+
21+
diff --git a/libwacom/libwacom-database.c b/libwacom/libwacom-database.c
22+
index 9f2657b..7be5247 100644
23+
--- a/libwacom/libwacom-database.c
24+
+++ b/libwacom/libwacom-database.c
25+
@@ -130,6 +130,8 @@ bus_from_str (const char *str)
26+
return WBUSTYPE_BLUETOOTH;
27+
if (streq(str, "i2c"))
28+
return WBUSTYPE_I2C;
29+
+ if (streq(str, "virt"))
30+
+ return WBUSTYPE_VIRTUAL;
31+
return WBUSTYPE_UNKNOWN;
32+
}
33+
34+
@@ -148,6 +150,8 @@ bus_to_str (WacomBusType bus)
35+
return "bluetooth";
36+
case WBUSTYPE_I2C:
37+
return "i2c";
38+
+ case WBUSTYPE_VIRTUAL:
39+
+ return "virt";
40+
}
41+
g_assert_not_reached ();
42+
}
43+
diff --git a/libwacom/libwacom.c b/libwacom/libwacom.c
44+
index 627354c..aa1d47f 100644
45+
--- a/libwacom/libwacom.c
46+
+++ b/libwacom/libwacom.c
47+
@@ -147,6 +147,10 @@ get_bus_vid_pid (GUdevDevice *device,
48+
*bus = WBUSTYPE_I2C;
49+
retval = TRUE;
50+
break;
51+
+ case 6:
52+
+ *bus = WBUSTYPE_VIRTUAL;
53+
+ retval = TRUE;
54+
+ break;
55+
}
56+
57+
out:
58+
@@ -765,6 +769,7 @@ static void print_match(int fd, const WacomMatch *match)
59+
case WBUSTYPE_USB: bus_name = "usb"; break;
60+
case WBUSTYPE_SERIAL: bus_name = "serial"; break;
61+
case WBUSTYPE_I2C: bus_name = "i2c"; break;
62+
+ case WBUSTYPE_VIRTUAL: bus_name = "virt"; break;
63+
case WBUSTYPE_UNKNOWN: bus_name = "unknown"; break;
64+
default: g_assert_not_reached(); break;
65+
}
66+
diff --git a/libwacom/libwacom.h b/libwacom/libwacom.h
67+
index a848133..30636b4 100644
68+
--- a/libwacom/libwacom.h
69+
+++ b/libwacom/libwacom.h
70+
@@ -117,6 +117,7 @@ typedef enum {
71+
WBUSTYPE_SERIAL, /**< Serial tablet */
72+
WBUSTYPE_BLUETOOTH, /**< Bluetooth tablet */
73+
WBUSTYPE_I2C, /**< I2C tablet */
74+
+ WBUSTYPE_VIRTUAL, /**< Virtual (uinput) tablet */
75+
} WacomBusType;
76+
77+
/**
78+
diff --git a/test/test-tablet-validity.c b/test/test-tablet-validity.c
79+
index 65b87c0..0b117eb 100644
80+
--- a/test/test-tablet-validity.c
81+
+++ b/test/test-tablet-validity.c
82+
@@ -177,6 +177,7 @@ assert_vidpid(WacomBusType bus, int vid, int pid)
83+
/* fall through */
84+
case WBUSTYPE_BLUETOOTH:
85+
case WBUSTYPE_I2C:
86+
+ case WBUSTYPE_VIRTUAL:
87+
g_assert_cmpint(vid, >, 0);
88+
g_assert_cmpint(pid, >, 0);
89+
break;
90+
--
91+
2.28.0
92+

0001-Add-support-for-Intel-Management-Engine-bus.patch renamed to 0002-Add-support-for-Intel-Management-Engine-bus.patch

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 5bf2b290f25006f5e97c868f4423048074d96dbe Mon Sep 17 00:00:00 2001
1+
From fb31b52509797b47119e95dc15d46a5d0ed23352 Mon Sep 17 00:00:00 2001
22
From: Maximilian Luz <[email protected]>
33
Date: Sat, 1 Jun 2019 21:17:15 +0200
4-
Subject: [PATCH 1/8] Add support for Intel Management Engine bus
4+
Subject: [PATCH 02/12] Add support for Intel Management Engine bus
55

66
Add support for devices connected via the Intel Management Engine (MEI).
77
This is required to support IPTS based devices, such as (among others)
@@ -14,33 +14,33 @@ the Microsoft Surface Books, Surface Pro 5 and 6, and Surface Laptops.
1414
4 files changed, 11 insertions(+)
1515

1616
diff --git a/libwacom/libwacom-database.c b/libwacom/libwacom-database.c
17-
index 9f2657b..6084818 100644
17+
index 7be5247..37ffd37 100644
1818
--- a/libwacom/libwacom-database.c
1919
+++ b/libwacom/libwacom-database.c
20-
@@ -130,6 +130,8 @@ bus_from_str (const char *str)
21-
return WBUSTYPE_BLUETOOTH;
22-
if (streq(str, "i2c"))
20+
@@ -132,6 +132,8 @@ bus_from_str (const char *str)
2321
return WBUSTYPE_I2C;
22+
if (streq(str, "virt"))
23+
return WBUSTYPE_VIRTUAL;
2424
+ if (strcmp (str, "mei") == 0)
2525
+ return WBUSTYPE_MEI;
2626
return WBUSTYPE_UNKNOWN;
2727
}
2828

29-
@@ -148,6 +150,8 @@ bus_to_str (WacomBusType bus)
30-
return "bluetooth";
31-
case WBUSTYPE_I2C:
29+
@@ -152,6 +154,8 @@ bus_to_str (WacomBusType bus)
3230
return "i2c";
31+
case WBUSTYPE_VIRTUAL:
32+
return "virt";
3333
+ case WBUSTYPE_MEI:
3434
+ return "mei";
3535
}
3636
g_assert_not_reached ();
3737
}
3838
diff --git a/libwacom/libwacom.c b/libwacom/libwacom.c
39-
index 627354c..c52daed 100644
39+
index aa1d47f..c6551ad 100644
4040
--- a/libwacom/libwacom.c
4141
+++ b/libwacom/libwacom.c
42-
@@ -147,6 +147,10 @@ get_bus_vid_pid (GUdevDevice *device,
43-
*bus = WBUSTYPE_I2C;
42+
@@ -151,6 +151,10 @@ get_bus_vid_pid (GUdevDevice *device,
43+
*bus = WBUSTYPE_VIRTUAL;
4444
retval = TRUE;
4545
break;
4646
+ case 68:
@@ -50,38 +50,38 @@ index 627354c..c52daed 100644
5050
}
5151

5252
out:
53-
@@ -765,6 +769,7 @@ static void print_match(int fd, const WacomMatch *match)
54-
case WBUSTYPE_USB: bus_name = "usb"; break;
53+
@@ -770,6 +774,7 @@ static void print_match(int fd, const WacomMatch *match)
5554
case WBUSTYPE_SERIAL: bus_name = "serial"; break;
5655
case WBUSTYPE_I2C: bus_name = "i2c"; break;
56+
case WBUSTYPE_VIRTUAL: bus_name = "virt"; break;
5757
+ case WBUSTYPE_MEI: bus_name = "mei"; break;
5858
case WBUSTYPE_UNKNOWN: bus_name = "unknown"; break;
5959
default: g_assert_not_reached(); break;
6060
}
6161
diff --git a/libwacom/libwacom.h b/libwacom/libwacom.h
62-
index a848133..af0f134 100644
62+
index 30636b4..e555be3 100644
6363
--- a/libwacom/libwacom.h
6464
+++ b/libwacom/libwacom.h
65-
@@ -117,6 +117,7 @@ typedef enum {
66-
WBUSTYPE_SERIAL, /**< Serial tablet */
65+
@@ -118,6 +118,7 @@ typedef enum {
6766
WBUSTYPE_BLUETOOTH, /**< Bluetooth tablet */
6867
WBUSTYPE_I2C, /**< I2C tablet */
68+
WBUSTYPE_VIRTUAL, /**< Virtual (uinput) tablet */
6969
+ WBUSTYPE_MEI, /**< MEI */
7070
} WacomBusType;
7171

7272
/**
7373
diff --git a/test/test-tablet-validity.c b/test/test-tablet-validity.c
74-
index 65b87c0..745c46d 100644
74+
index 0b117eb..58b909f 100644
7575
--- a/test/test-tablet-validity.c
7676
+++ b/test/test-tablet-validity.c
77-
@@ -177,6 +177,7 @@ assert_vidpid(WacomBusType bus, int vid, int pid)
78-
/* fall through */
77+
@@ -178,6 +178,7 @@ assert_vidpid(WacomBusType bus, int vid, int pid)
7978
case WBUSTYPE_BLUETOOTH:
8079
case WBUSTYPE_I2C:
80+
case WBUSTYPE_VIRTUAL:
8181
+ case WBUSTYPE_MEI:
8282
g_assert_cmpint(vid, >, 0);
8383
g_assert_cmpint(pid, >, 0);
8484
break;
8585
--
86-
2.27.0
86+
2.28.0
8787

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 50e1eff057aab7b2b92ea65de3097ab37692fb75 Mon Sep 17 00:00:00 2001
1+
From 40978156216b4158d0b3fcbcbc712382c193fcbd Mon Sep 17 00:00:00 2001
22
From: Maximilian Luz <[email protected]>
3-
Date: Mon, 3 Jun 2019 00:42:30 +0200
4-
Subject: [PATCH 2/8] data: Add Microsoft Surface Pro 4
3+
Date: Tue, 18 Aug 2020 20:18:55 +0200
4+
Subject: [PATCH 03/12] data: Add Microsoft Surface pro 4
55

66
---
77
data/surface-pro4.tablet | 14 ++++++++++++++
@@ -10,16 +10,16 @@ Subject: [PATCH 2/8] data: Add Microsoft Surface Pro 4
1010

1111
diff --git a/data/surface-pro4.tablet b/data/surface-pro4.tablet
1212
new file mode 100644
13-
index 0000000..bb6f02f
13+
index 0000000..bfbe809
1414
--- /dev/null
1515
+++ b/data/surface-pro4.tablet
1616
@@ -0,0 +1,14 @@
1717
+# This is for the Microsoft Surface Pro 4
1818
+
1919
+[Device]
2020
+Name=Microsoft Surface Pro 4
21-
+DeviceMatch=mei:1B96:006A
22-
+Class=ISDV4
21+
+Class=PenDisplay
22+
+DeviceMatch=virt:1B96:006A;virt:1B96:0021;mei:1B96:006A;mei:1B96:0021
2323
+Width=10
2424
+Height=6
2525
+IntegratedIn=Display;System;
@@ -29,5 +29,5 @@ index 0000000..bb6f02f
2929
+Touch=true
3030
+Buttons=0
3131
--
32-
2.27.0
32+
2.28.0
3333

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From a66716aa122b99f2c3c12b9d487640c120be7426 Mon Sep 17 00:00:00 2001
1+
From 9437dac1f05a295afc2fb6fd9a7a89018757b5dd Mon Sep 17 00:00:00 2001
22
From: Maximilian Luz <[email protected]>
3-
Date: Sat, 1 Jun 2019 22:09:47 +0200
4-
Subject: [PATCH 3/8] data: Add Microsoft Surface Pro 5
3+
Date: Tue, 18 Aug 2020 20:19:02 +0200
4+
Subject: [PATCH 04/12] data: Add Microsoft Surface pro 5
55

66
---
77
data/surface-pro5.tablet | 14 ++++++++++++++
@@ -10,16 +10,16 @@ Subject: [PATCH 3/8] data: Add Microsoft Surface Pro 5
1010

1111
diff --git a/data/surface-pro5.tablet b/data/surface-pro5.tablet
1212
new file mode 100644
13-
index 0000000..2ad6539
13+
index 0000000..4fdbac6
1414
--- /dev/null
1515
+++ b/data/surface-pro5.tablet
1616
@@ -0,0 +1,14 @@
1717
+# This is for the Microsoft Surface Pro 5 (2017)
1818
+
1919
+[Device]
2020
+Name=Microsoft Surface Pro 5
21-
+DeviceMatch=mei:1B96:001F
22-
+Class=ISDV4
21+
+Class=PenDisplay
22+
+DeviceMatch=virt:1B96:001F;mei:1B96:001F
2323
+Width=10
2424
+Height=6
2525
+IntegratedIn=Display;System;
@@ -29,5 +29,5 @@ index 0000000..2ad6539
2929
+Touch=true
3030
+Buttons=0
3131
--
32-
2.27.0
32+
2.28.0
3333

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From cfdb0ebe6303ec2eada62b9f61e4e1c1b0fc0233 Mon Sep 17 00:00:00 2001
1+
From 31f366ad82ac7ee32526bb3c429a9c98a0391463 Mon Sep 17 00:00:00 2001
22
From: Maximilian Luz <[email protected]>
3-
Date: Mon, 3 Jun 2019 00:40:34 +0200
4-
Subject: [PATCH 4/8] data: Add Microsoft Surface Pro 6
3+
Date: Tue, 18 Aug 2020 20:19:07 +0200
4+
Subject: [PATCH 05/12] data: Add Microsoft Surface pro 6
55

66
---
77
data/surface-pro6.tablet | 14 ++++++++++++++
@@ -10,16 +10,16 @@ Subject: [PATCH 4/8] data: Add Microsoft Surface Pro 6
1010

1111
diff --git a/data/surface-pro6.tablet b/data/surface-pro6.tablet
1212
new file mode 100644
13-
index 0000000..da31e8f
13+
index 0000000..787fd7a
1414
--- /dev/null
1515
+++ b/data/surface-pro6.tablet
1616
@@ -0,0 +1,14 @@
1717
+# This is for the Microsoft Surface Pro 6
1818
+
1919
+[Device]
2020
+Name=Microsoft Surface Pro 6
21-
+DeviceMatch=mei:045E:001F
22-
+Class=ISDV4
21+
+Class=PenDisplay
22+
+DeviceMatch=virt:045E:001F;mei:045E:001F
2323
+Width=10
2424
+Height=6
2525
+IntegratedIn=Display;System;
@@ -29,5 +29,5 @@ index 0000000..da31e8f
2929
+Touch=true
3030
+Buttons=0
3131
--
32-
2.27.0
32+
2.28.0
3333

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
From 65e14e2a29dffae46526c7e1b7f0efba1477dbfa Mon Sep 17 00:00:00 2001
2+
From: Maximilian Luz <[email protected]>
3+
Date: Tue, 18 Aug 2020 20:19:13 +0200
4+
Subject: [PATCH 06/12] data: Add Microsoft Surface pro 7
5+
6+
---
7+
data/surface-pro7.tablet | 14 ++++++++++++++
8+
1 file changed, 14 insertions(+)
9+
create mode 100644 data/surface-pro7.tablet
10+
11+
diff --git a/data/surface-pro7.tablet b/data/surface-pro7.tablet
12+
new file mode 100644
13+
index 0000000..4659131
14+
--- /dev/null
15+
+++ b/data/surface-pro7.tablet
16+
@@ -0,0 +1,14 @@
17+
+# This is for the Microsoft Surface Pro 7
18+
+
19+
+[Device]
20+
+Name=Microsoft Surface Pro 7
21+
+Class=PenDisplay
22+
+DeviceMatch=virt:045E:099F;mei:045E:099F
23+
+Width=10
24+
+Height=6
25+
+IntegratedIn=Display;System;
26+
+
27+
+[Features]
28+
+Stylus=false
29+
+Touch=true
30+
+Buttons=0
31+
--
32+
2.28.0
33+
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
From 122fcb323532c576fb3913b6c2230dc57cf35b12 Mon Sep 17 00:00:00 2001
1+
From 910d868d837aa1989695cdbcbf07f47fae3086d3 Mon Sep 17 00:00:00 2001
22
From: Maximilian Luz <[email protected]>
3-
Date: Mon, 3 Jun 2019 00:45:41 +0200
4-
Subject: [PATCH 5/8] data: Add Microsoft Surface Book
3+
Date: Tue, 18 Aug 2020 20:19:38 +0200
4+
Subject: [PATCH 07/12] data: Add Microsoft Surface Book
55

66
---
77
data/surface-book.tablet | 14 ++++++++++++++
@@ -10,16 +10,16 @@ Subject: [PATCH 5/8] data: Add Microsoft Surface Book
1010

1111
diff --git a/data/surface-book.tablet b/data/surface-book.tablet
1212
new file mode 100644
13-
index 0000000..45e17db
13+
index 0000000..a551c9b
1414
--- /dev/null
1515
+++ b/data/surface-book.tablet
1616
@@ -0,0 +1,14 @@
1717
+# This is for the Microsoft Surface Book (1)
1818
+
1919
+[Device]
2020
+Name=Microsoft Surface Book
21-
+DeviceMatch=mei:1B96:005e
22-
+Class=ISDV4
21+
+Class=PenDisplay
22+
+DeviceMatch=virt:1B96:005e;mei:1B96:005e
2323
+Width=11
2424
+Height=7
2525
+IntegratedIn=Display;System;
@@ -29,5 +29,5 @@ index 0000000..45e17db
2929
+Touch=true
3030
+Buttons=0
3131
--
32-
2.27.0
32+
2.28.0
3333

0 commit comments

Comments
 (0)