hotfix: Fix SPDX license identifier for Surface Aggregator

This commit is contained in:
Maximilian Luz 2020-10-01 19:16:52 +02:00
parent f8b1f574bf
commit 80f6acecc9
No known key found for this signature in database
GPG key ID: 70EC0937F6C26F02
9 changed files with 195 additions and 195 deletions

View file

@ -1,4 +1,4 @@
From f6914d98615e84fb362289463dfd40e46a9e99aa Mon Sep 17 00:00:00 2001
From 969e408207ae0c481873feab6cd0788722dc5bcb Mon Sep 17 00:00:00 2001
From: qzed <qzed@users.noreply.github.com>
Date: Mon, 26 Aug 2019 01:15:40 +0200
Subject: [PATCH 08/10] surface-sam
@ -1440,11 +1440,11 @@ index eb1eb0d58c32..c8665072cca5 100644
+obj-$(CONFIG_SURFACE_AGGREGATOR) += surface_aggregator/
diff --git a/drivers/misc/surface_aggregator/Kconfig b/drivers/misc/surface_aggregator/Kconfig
new file mode 100644
index 000000000000..6d33e3259a3d
index 000000000000..47dd8fdffac3
--- /dev/null
+++ b/drivers/misc/surface_aggregator/Kconfig
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+menuconfig SURFACE_AGGREGATOR
@ -1513,11 +1513,11 @@ index 000000000000..6d33e3259a3d
+source "drivers/misc/surface_aggregator/clients/Kconfig"
diff --git a/drivers/misc/surface_aggregator/Makefile b/drivers/misc/surface_aggregator/Makefile
new file mode 100644
index 000000000000..c48e58657116
index 000000000000..b48ffc37ab52
--- /dev/null
+++ b/drivers/misc/surface_aggregator/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+# For include/trace/define_trace.h to include trace.h
@ -1537,11 +1537,11 @@ index 000000000000..c48e58657116
+endif
diff --git a/drivers/misc/surface_aggregator/bus.c b/drivers/misc/surface_aggregator/bus.c
new file mode 100644
index 000000000000..efd72ce7a672
index 000000000000..5e734bbd18cd
--- /dev/null
+++ b/drivers/misc/surface_aggregator/bus.c
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module bus and device integration.
+ *
@ -1967,11 +1967,11 @@ index 000000000000..efd72ce7a672
+}
diff --git a/drivers/misc/surface_aggregator/bus.h b/drivers/misc/surface_aggregator/bus.h
new file mode 100644
index 000000000000..798471a9b369
index 000000000000..7712baaed6a5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/bus.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module bus and device integration.
+ *
@ -2000,11 +2000,11 @@ index 000000000000..798471a9b369
+#endif /* _SURFACE_AGGREGATOR_BUS_H */
diff --git a/drivers/misc/surface_aggregator/clients/Kconfig b/drivers/misc/surface_aggregator/clients/Kconfig
new file mode 100644
index 000000000000..82c6e7d48e17
index 000000000000..c18403c13df5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/Kconfig
@@ -0,0 +1,155 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+config SURFACE_AGGREGATOR_CDEV
@ -2161,11 +2161,11 @@ index 000000000000..82c6e7d48e17
+ controlling said mode via the corresponding client device.
diff --git a/drivers/misc/surface_aggregator/clients/Makefile b/drivers/misc/surface_aggregator/clients/Makefile
new file mode 100644
index 000000000000..c7b1c20f865c
index 000000000000..6d1707bc5705
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/Makefile
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o
@ -2179,11 +2179,11 @@ index 000000000000..c7b1c20f865c
+obj-$(CONFIG_SURFACE_PERFMODE) += surface_perfmode.o
diff --git a/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c
new file mode 100644
index 000000000000..1859db6b7323
index 000000000000..ddc27a196fec
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Driver for the Surface ACPI Notify (SAN) interface/shim.
+ *
@ -3069,11 +3069,11 @@ index 000000000000..1859db6b7323
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c b/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c
new file mode 100644
index 000000000000..2d2880e69313
index 000000000000..65f75ac7e864
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c
@@ -0,0 +1,228 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Provides user-space access to the SSAM EC via the /dev/surface/aggregator
+ * misc device. Intended for debugging and development.
@ -3303,11 +3303,11 @@ index 000000000000..2d2880e69313
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c b/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c
new file mode 100644
index 000000000000..ad6720676abd
index 000000000000..abebc4c446b0
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c
@@ -0,0 +1,602 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) client device registry.
+ *
@ -3911,11 +3911,11 @@ index 000000000000..ad6720676abd
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_battery.c b/drivers/misc/surface_aggregator/clients/surface_battery.c
new file mode 100644
index 000000000000..83903feb38e1
index 000000000000..900d1372864a
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_battery.c
@@ -0,0 +1,1191 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface battery and AC device driver.
+ *
@ -5108,11 +5108,11 @@ index 000000000000..83903feb38e1
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_dtx.c b/drivers/misc/surface_aggregator/clients/surface_dtx.c
new file mode 100644
index 000000000000..ee815ad0fdad
index 000000000000..d667f605b74d
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_dtx.c
@@ -0,0 +1,591 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Book (gen. 2 and later) detachment system (DTX) driver.
+ *
@ -5705,11 +5705,11 @@ index 000000000000..ee815ad0fdad
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_hid.c b/drivers/misc/surface_aggregator/clients/surface_hid.c
new file mode 100644
index 000000000000..c29cb39543c5
index 000000000000..1c029345cde6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_hid.c
@@ -0,0 +1,495 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) HID device driver.
+ *
@ -6206,11 +6206,11 @@ index 000000000000..c29cb39543c5
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_hotplug.c b/drivers/misc/surface_aggregator/clients/surface_hotplug.c
new file mode 100644
index 000000000000..165c5b452bee
index 000000000000..f18cc17d019d
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_hotplug.c
@@ -0,0 +1,1285 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Book (gen. 2 and later) discrete GPU (dGPU) hot-plug system driver.
+ *
@ -7497,11 +7497,11 @@ index 000000000000..165c5b452bee
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_keyboard.c b/drivers/misc/surface_aggregator/clients/surface_keyboard.c
new file mode 100644
index 000000000000..94b1e0728bb2
index 000000000000..3d1269229d92
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_keyboard.c
@@ -0,0 +1,333 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) legacy HID input device driver.
+ *
@ -7836,11 +7836,11 @@ index 000000000000..94b1e0728bb2
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_perfmode.c b/drivers/misc/surface_aggregator/clients/surface_perfmode.c
new file mode 100644
index 000000000000..580ac680a183
index 000000000000..006601b3bea6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_perfmode.c
@@ -0,0 +1,122 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface performance-mode driver.
+ *
@ -7964,11 +7964,11 @@ index 000000000000..580ac680a183
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/controller.c b/drivers/misc/surface_aggregator/controller.c
new file mode 100644
index 000000000000..d73db08662b8
index 000000000000..d20efc9a341a
--- /dev/null
+++ b/drivers/misc/surface_aggregator/controller.c
@@ -0,0 +1,2552 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Main SSAM/SSH controller structure and functionality.
+ *
@ -10522,11 +10522,11 @@ index 000000000000..d73db08662b8
+}
diff --git a/drivers/misc/surface_aggregator/controller.h b/drivers/misc/surface_aggregator/controller.h
new file mode 100644
index 000000000000..b855fd54a163
index 000000000000..96e2b87a25d9
--- /dev/null
+++ b/drivers/misc/surface_aggregator/controller.h
@@ -0,0 +1,288 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Main SSAM/SSH controller structure and functionality.
+ *
@ -10816,11 +10816,11 @@ index 000000000000..b855fd54a163
+#endif /* _SURFACE_AGGREGATOR_CONTROLLER_H */
diff --git a/drivers/misc/surface_aggregator/core.c b/drivers/misc/surface_aggregator/core.c
new file mode 100644
index 000000000000..539da8781ffb
index 000000000000..8b694c4ba6a4
--- /dev/null
+++ b/drivers/misc/surface_aggregator/core.c
@@ -0,0 +1,842 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Serial Hub (SSH) driver for communication with the Surface/System
+ * Aggregator Module (SSAM/SAM).
@ -11664,11 +11664,11 @@ index 000000000000..539da8781ffb
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/ssh_msgb.h b/drivers/misc/surface_aggregator/ssh_msgb.h
new file mode 100644
index 000000000000..1735a01f1f95
index 000000000000..7c29e7d7028a
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_msgb.h
@@ -0,0 +1,201 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH message builder functions.
+ *
@ -11871,11 +11871,11 @@ index 000000000000..1735a01f1f95
+#endif /* _SURFACE_AGGREGATOR_SSH_MSGB_H */
diff --git a/drivers/misc/surface_aggregator/ssh_packet_layer.c b/drivers/misc/surface_aggregator/ssh_packet_layer.c
new file mode 100644
index 000000000000..861fa712b06f
index 000000000000..2951d245359c
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_packet_layer.c
@@ -0,0 +1,2009 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH packet transport layer.
+ *
@ -13886,11 +13886,11 @@ index 000000000000..861fa712b06f
+}
diff --git a/drivers/misc/surface_aggregator/ssh_packet_layer.h b/drivers/misc/surface_aggregator/ssh_packet_layer.h
new file mode 100644
index 000000000000..39500b05d1f8
index 000000000000..f3d8a85389d5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_packet_layer.h
@@ -0,0 +1,175 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH packet transport layer.
+ *
@ -14067,11 +14067,11 @@ index 000000000000..39500b05d1f8
+#endif /* _SURFACE_AGGREGATOR_SSH_PACKET_LAYER_H */
diff --git a/drivers/misc/surface_aggregator/ssh_parser.c b/drivers/misc/surface_aggregator/ssh_parser.c
new file mode 100644
index 000000000000..fb96ce326d63
index 000000000000..575cbc039ad7
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_parser.c
@@ -0,0 +1,229 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH message parser.
+ *
@ -14302,11 +14302,11 @@ index 000000000000..fb96ce326d63
+}
diff --git a/drivers/misc/surface_aggregator/ssh_parser.h b/drivers/misc/surface_aggregator/ssh_parser.h
new file mode 100644
index 000000000000..ba6eaa1ea2bd
index 000000000000..71c43ab07bf6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_parser.h
@@ -0,0 +1,157 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH message parser.
+ *
@ -14465,11 +14465,11 @@ index 000000000000..ba6eaa1ea2bd
+#endif /* _SURFACE_AGGREGATOR_SSH_PARSER_h */
diff --git a/drivers/misc/surface_aggregator/ssh_request_layer.c b/drivers/misc/surface_aggregator/ssh_request_layer.c
new file mode 100644
index 000000000000..d536f40635ae
index 000000000000..f47bd949b6c3
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_request_layer.c
@@ -0,0 +1,1254 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH request transport layer.
+ *
@ -15725,11 +15725,11 @@ index 000000000000..d536f40635ae
+}
diff --git a/drivers/misc/surface_aggregator/ssh_request_layer.h b/drivers/misc/surface_aggregator/ssh_request_layer.h
new file mode 100644
index 000000000000..0265f38dfa5f
index 000000000000..e945e0532628
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_request_layer.h
@@ -0,0 +1,142 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH request transport layer.
+ *
@ -15873,11 +15873,11 @@ index 000000000000..0265f38dfa5f
+#endif /* _SURFACE_AGGREGATOR_SSH_REQUEST_LAYER_H */
diff --git a/drivers/misc/surface_aggregator/trace.h b/drivers/misc/surface_aggregator/trace.h
new file mode 100644
index 000000000000..86da9631fdf2
index 000000000000..232bf1142aae
--- /dev/null
+++ b/drivers/misc/surface_aggregator/trace.h
@@ -0,0 +1,625 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Trace points for SSAM/SSH.
+ *
@ -16686,11 +16686,11 @@ index 610cdf8082f2..2c8dd2abbd04 100644
#endif /* LINUX_MOD_DEVICETABLE_H */
diff --git a/include/linux/surface_acpi_notify.h b/include/linux/surface_acpi_notify.h
new file mode 100644
index 000000000000..d45e2420eaa0
index 000000000000..8e3e86c7d78c
--- /dev/null
+++ b/include/linux/surface_acpi_notify.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Interface for Surface ACPI Notify (SAN) driver.
+ *
@ -16731,11 +16731,11 @@ index 000000000000..d45e2420eaa0
+#endif /* _LINUX_SURFACE_ACPI_NOTIFY_H */
diff --git a/include/linux/surface_aggregator/controller.h b/include/linux/surface_aggregator/controller.h
new file mode 100644
index 000000000000..f4f93c2072f0
index 000000000000..d91348d54457
--- /dev/null
+++ b/include/linux/surface_aggregator/controller.h
@@ -0,0 +1,814 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module (SSAM) controller interface.
+ *
@ -17551,11 +17551,11 @@ index 000000000000..f4f93c2072f0
+#endif /* _LINUX_SURFACE_AGGREGATOR_CONTROLLER_H */
diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h
new file mode 100644
index 000000000000..80b6d5a0fa97
index 000000000000..41d06f665135
--- /dev/null
+++ b/include/linux/surface_aggregator/device.h
@@ -0,0 +1,430 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module (SSAM) bus and client-device subsystem.
+ *
@ -17987,11 +17987,11 @@ index 000000000000..80b6d5a0fa97
+#endif /* _LINUX_SURFACE_AGGREGATOR_DEVICE_H */
diff --git a/include/linux/surface_aggregator/serial_hub.h b/include/linux/surface_aggregator/serial_hub.h
new file mode 100644
index 000000000000..80200ec0fc8a
index 000000000000..3974535796ca
--- /dev/null
+++ b/include/linux/surface_aggregator/serial_hub.h
@@ -0,0 +1,655 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface Serial Hub (SSH) protocol and communication interface.
+ *
@ -18648,11 +18648,11 @@ index 000000000000..80200ec0fc8a
+#endif /* _LINUX_SURFACE_AGGREGATOR_SERIAL_HUB_H */
diff --git a/include/uapi/linux/surface_aggregator/cdev.h b/include/uapi/linux/surface_aggregator/cdev.h
new file mode 100644
index 000000000000..43819986f911
index 000000000000..e85351141a2d
--- /dev/null
+++ b/include/uapi/linux/surface_aggregator/cdev.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * Surface System Aggregator Module (SSAM) user-space EC interface.
+ *

View file

@ -1,4 +1,4 @@
From 2520c5a968888ed72838d339157eee1dae13e91f Mon Sep 17 00:00:00 2001
From ef2d643eff344b4a2ee783657ad622bbd7b7bcbe Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sat, 25 Jul 2020 17:19:53 +0200
Subject: [PATCH 09/10] surface-sam-over-hid

View file

@ -1,4 +1,4 @@
From 1de7ef5a41806dfe6cae0a31e842b8a32faceff1 Mon Sep 17 00:00:00 2001
From baae2c87ff5085336162fed05670353bfe0fcd9c Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sun, 16 Aug 2020 23:39:56 +0200
Subject: [PATCH 10/10] surface-gpe

View file

@ -1,4 +1,4 @@
From 1dc4c106acb0c4f0a5bf385663e5103da2544757 Mon Sep 17 00:00:00 2001
From 4ca3c02ea1b9ef60079219eb84ca379f76f03abe Mon Sep 17 00:00:00 2001
From: qzed <qzed@users.noreply.github.com>
Date: Mon, 26 Aug 2019 01:11:08 +0200
Subject: [PATCH 5/7] surface-sam
@ -1419,11 +1419,11 @@ index c1860d35dc7e..986da863df27 100644
+obj-$(CONFIG_SURFACE_AGGREGATOR) += surface_aggregator/
diff --git a/drivers/misc/surface_aggregator/Kconfig b/drivers/misc/surface_aggregator/Kconfig
new file mode 100644
index 000000000000..6d33e3259a3d
index 000000000000..47dd8fdffac3
--- /dev/null
+++ b/drivers/misc/surface_aggregator/Kconfig
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+menuconfig SURFACE_AGGREGATOR
@ -1492,11 +1492,11 @@ index 000000000000..6d33e3259a3d
+source "drivers/misc/surface_aggregator/clients/Kconfig"
diff --git a/drivers/misc/surface_aggregator/Makefile b/drivers/misc/surface_aggregator/Makefile
new file mode 100644
index 000000000000..c48e58657116
index 000000000000..b48ffc37ab52
--- /dev/null
+++ b/drivers/misc/surface_aggregator/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+# For include/trace/define_trace.h to include trace.h
@ -1516,11 +1516,11 @@ index 000000000000..c48e58657116
+endif
diff --git a/drivers/misc/surface_aggregator/bus.c b/drivers/misc/surface_aggregator/bus.c
new file mode 100644
index 000000000000..efd72ce7a672
index 000000000000..5e734bbd18cd
--- /dev/null
+++ b/drivers/misc/surface_aggregator/bus.c
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module bus and device integration.
+ *
@ -1946,11 +1946,11 @@ index 000000000000..efd72ce7a672
+}
diff --git a/drivers/misc/surface_aggregator/bus.h b/drivers/misc/surface_aggregator/bus.h
new file mode 100644
index 000000000000..798471a9b369
index 000000000000..7712baaed6a5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/bus.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module bus and device integration.
+ *
@ -1979,11 +1979,11 @@ index 000000000000..798471a9b369
+#endif /* _SURFACE_AGGREGATOR_BUS_H */
diff --git a/drivers/misc/surface_aggregator/clients/Kconfig b/drivers/misc/surface_aggregator/clients/Kconfig
new file mode 100644
index 000000000000..82c6e7d48e17
index 000000000000..c18403c13df5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/Kconfig
@@ -0,0 +1,155 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+config SURFACE_AGGREGATOR_CDEV
@ -2140,11 +2140,11 @@ index 000000000000..82c6e7d48e17
+ controlling said mode via the corresponding client device.
diff --git a/drivers/misc/surface_aggregator/clients/Makefile b/drivers/misc/surface_aggregator/clients/Makefile
new file mode 100644
index 000000000000..c7b1c20f865c
index 000000000000..6d1707bc5705
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/Makefile
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o
@ -2158,11 +2158,11 @@ index 000000000000..c7b1c20f865c
+obj-$(CONFIG_SURFACE_PERFMODE) += surface_perfmode.o
diff --git a/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c
new file mode 100644
index 000000000000..1859db6b7323
index 000000000000..ddc27a196fec
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Driver for the Surface ACPI Notify (SAN) interface/shim.
+ *
@ -3048,11 +3048,11 @@ index 000000000000..1859db6b7323
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c b/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c
new file mode 100644
index 000000000000..287aff6129f6
index 000000000000..b2bfbaa01609
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c
@@ -0,0 +1,228 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Provides user-space access to the SSAM EC via the /dev/surface/aggregator
+ * misc device. Intended for debugging and development.
@ -3282,11 +3282,11 @@ index 000000000000..287aff6129f6
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c b/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c
new file mode 100644
index 000000000000..ad6720676abd
index 000000000000..abebc4c446b0
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c
@@ -0,0 +1,602 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) client device registry.
+ *
@ -3890,11 +3890,11 @@ index 000000000000..ad6720676abd
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_battery.c b/drivers/misc/surface_aggregator/clients/surface_battery.c
new file mode 100644
index 000000000000..4c78b054774b
index 000000000000..4b63713bcd1e
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_battery.c
@@ -0,0 +1,1195 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface battery and AC device driver.
+ *
@ -5091,11 +5091,11 @@ index 000000000000..4c78b054774b
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_dtx.c b/drivers/misc/surface_aggregator/clients/surface_dtx.c
new file mode 100644
index 000000000000..ee815ad0fdad
index 000000000000..d667f605b74d
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_dtx.c
@@ -0,0 +1,591 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Book (gen. 2 and later) detachment system (DTX) driver.
+ *
@ -5688,11 +5688,11 @@ index 000000000000..ee815ad0fdad
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_hid.c b/drivers/misc/surface_aggregator/clients/surface_hid.c
new file mode 100644
index 000000000000..c29cb39543c5
index 000000000000..1c029345cde6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_hid.c
@@ -0,0 +1,495 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) HID device driver.
+ *
@ -6189,11 +6189,11 @@ index 000000000000..c29cb39543c5
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_hotplug.c b/drivers/misc/surface_aggregator/clients/surface_hotplug.c
new file mode 100644
index 000000000000..165c5b452bee
index 000000000000..f18cc17d019d
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_hotplug.c
@@ -0,0 +1,1285 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Book (gen. 2 and later) discrete GPU (dGPU) hot-plug system driver.
+ *
@ -7480,11 +7480,11 @@ index 000000000000..165c5b452bee
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_keyboard.c b/drivers/misc/surface_aggregator/clients/surface_keyboard.c
new file mode 100644
index 000000000000..94b1e0728bb2
index 000000000000..3d1269229d92
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_keyboard.c
@@ -0,0 +1,333 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) legacy HID input device driver.
+ *
@ -7819,11 +7819,11 @@ index 000000000000..94b1e0728bb2
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_perfmode.c b/drivers/misc/surface_aggregator/clients/surface_perfmode.c
new file mode 100644
index 000000000000..580ac680a183
index 000000000000..006601b3bea6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_perfmode.c
@@ -0,0 +1,122 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface performance-mode driver.
+ *
@ -7947,11 +7947,11 @@ index 000000000000..580ac680a183
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/controller.c b/drivers/misc/surface_aggregator/controller.c
new file mode 100644
index 000000000000..9125e51e7c8d
index 000000000000..f69347623a20
--- /dev/null
+++ b/drivers/misc/surface_aggregator/controller.c
@@ -0,0 +1,2554 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Main SSAM/SSH controller structure and functionality.
+ *
@ -10507,11 +10507,11 @@ index 000000000000..9125e51e7c8d
+}
diff --git a/drivers/misc/surface_aggregator/controller.h b/drivers/misc/surface_aggregator/controller.h
new file mode 100644
index 000000000000..b855fd54a163
index 000000000000..96e2b87a25d9
--- /dev/null
+++ b/drivers/misc/surface_aggregator/controller.h
@@ -0,0 +1,288 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Main SSAM/SSH controller structure and functionality.
+ *
@ -10801,11 +10801,11 @@ index 000000000000..b855fd54a163
+#endif /* _SURFACE_AGGREGATOR_CONTROLLER_H */
diff --git a/drivers/misc/surface_aggregator/core.c b/drivers/misc/surface_aggregator/core.c
new file mode 100644
index 000000000000..539da8781ffb
index 000000000000..8b694c4ba6a4
--- /dev/null
+++ b/drivers/misc/surface_aggregator/core.c
@@ -0,0 +1,842 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Serial Hub (SSH) driver for communication with the Surface/System
+ * Aggregator Module (SSAM/SAM).
@ -11649,11 +11649,11 @@ index 000000000000..539da8781ffb
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/ssh_msgb.h b/drivers/misc/surface_aggregator/ssh_msgb.h
new file mode 100644
index 000000000000..1735a01f1f95
index 000000000000..7c29e7d7028a
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_msgb.h
@@ -0,0 +1,201 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH message builder functions.
+ *
@ -11856,11 +11856,11 @@ index 000000000000..1735a01f1f95
+#endif /* _SURFACE_AGGREGATOR_SSH_MSGB_H */
diff --git a/drivers/misc/surface_aggregator/ssh_packet_layer.c b/drivers/misc/surface_aggregator/ssh_packet_layer.c
new file mode 100644
index 000000000000..54f16ef040ef
index 000000000000..2d72e8c02842
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_packet_layer.c
@@ -0,0 +1,2009 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH packet transport layer.
+ *
@ -13871,11 +13871,11 @@ index 000000000000..54f16ef040ef
+}
diff --git a/drivers/misc/surface_aggregator/ssh_packet_layer.h b/drivers/misc/surface_aggregator/ssh_packet_layer.h
new file mode 100644
index 000000000000..39500b05d1f8
index 000000000000..f3d8a85389d5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_packet_layer.h
@@ -0,0 +1,175 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH packet transport layer.
+ *
@ -14052,11 +14052,11 @@ index 000000000000..39500b05d1f8
+#endif /* _SURFACE_AGGREGATOR_SSH_PACKET_LAYER_H */
diff --git a/drivers/misc/surface_aggregator/ssh_parser.c b/drivers/misc/surface_aggregator/ssh_parser.c
new file mode 100644
index 000000000000..fb96ce326d63
index 000000000000..575cbc039ad7
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_parser.c
@@ -0,0 +1,229 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH message parser.
+ *
@ -14287,11 +14287,11 @@ index 000000000000..fb96ce326d63
+}
diff --git a/drivers/misc/surface_aggregator/ssh_parser.h b/drivers/misc/surface_aggregator/ssh_parser.h
new file mode 100644
index 000000000000..ba6eaa1ea2bd
index 000000000000..71c43ab07bf6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_parser.h
@@ -0,0 +1,157 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH message parser.
+ *
@ -14450,11 +14450,11 @@ index 000000000000..ba6eaa1ea2bd
+#endif /* _SURFACE_AGGREGATOR_SSH_PARSER_h */
diff --git a/drivers/misc/surface_aggregator/ssh_request_layer.c b/drivers/misc/surface_aggregator/ssh_request_layer.c
new file mode 100644
index 000000000000..d536f40635ae
index 000000000000..f47bd949b6c3
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_request_layer.c
@@ -0,0 +1,1254 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH request transport layer.
+ *
@ -15710,11 +15710,11 @@ index 000000000000..d536f40635ae
+}
diff --git a/drivers/misc/surface_aggregator/ssh_request_layer.h b/drivers/misc/surface_aggregator/ssh_request_layer.h
new file mode 100644
index 000000000000..0265f38dfa5f
index 000000000000..e945e0532628
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_request_layer.h
@@ -0,0 +1,142 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH request transport layer.
+ *
@ -15858,11 +15858,11 @@ index 000000000000..0265f38dfa5f
+#endif /* _SURFACE_AGGREGATOR_SSH_REQUEST_LAYER_H */
diff --git a/drivers/misc/surface_aggregator/trace.h b/drivers/misc/surface_aggregator/trace.h
new file mode 100644
index 000000000000..86da9631fdf2
index 000000000000..232bf1142aae
--- /dev/null
+++ b/drivers/misc/surface_aggregator/trace.h
@@ -0,0 +1,625 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Trace points for SSAM/SSH.
+ *
@ -16671,11 +16671,11 @@ index 4c56404e53a7..3e2fe1c6631c 100644
#endif /* LINUX_MOD_DEVICETABLE_H */
diff --git a/include/linux/surface_acpi_notify.h b/include/linux/surface_acpi_notify.h
new file mode 100644
index 000000000000..d45e2420eaa0
index 000000000000..8e3e86c7d78c
--- /dev/null
+++ b/include/linux/surface_acpi_notify.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Interface for Surface ACPI Notify (SAN) driver.
+ *
@ -16716,11 +16716,11 @@ index 000000000000..d45e2420eaa0
+#endif /* _LINUX_SURFACE_ACPI_NOTIFY_H */
diff --git a/include/linux/surface_aggregator/controller.h b/include/linux/surface_aggregator/controller.h
new file mode 100644
index 000000000000..f4f93c2072f0
index 000000000000..d91348d54457
--- /dev/null
+++ b/include/linux/surface_aggregator/controller.h
@@ -0,0 +1,814 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module (SSAM) controller interface.
+ *
@ -17536,11 +17536,11 @@ index 000000000000..f4f93c2072f0
+#endif /* _LINUX_SURFACE_AGGREGATOR_CONTROLLER_H */
diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h
new file mode 100644
index 000000000000..80b6d5a0fa97
index 000000000000..41d06f665135
--- /dev/null
+++ b/include/linux/surface_aggregator/device.h
@@ -0,0 +1,430 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module (SSAM) bus and client-device subsystem.
+ *
@ -17972,11 +17972,11 @@ index 000000000000..80b6d5a0fa97
+#endif /* _LINUX_SURFACE_AGGREGATOR_DEVICE_H */
diff --git a/include/linux/surface_aggregator/serial_hub.h b/include/linux/surface_aggregator/serial_hub.h
new file mode 100644
index 000000000000..de4dbb3cda58
index 000000000000..376313f402b2
--- /dev/null
+++ b/include/linux/surface_aggregator/serial_hub.h
@@ -0,0 +1,659 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface Serial Hub (SSH) protocol and communication interface.
+ *
@ -18637,11 +18637,11 @@ index 000000000000..de4dbb3cda58
+#endif /* _LINUX_SURFACE_AGGREGATOR_SERIAL_HUB_H */
diff --git a/include/uapi/linux/surface_aggregator/cdev.h b/include/uapi/linux/surface_aggregator/cdev.h
new file mode 100644
index 000000000000..43819986f911
index 000000000000..e85351141a2d
--- /dev/null
+++ b/include/uapi/linux/surface_aggregator/cdev.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * Surface System Aggregator Module (SSAM) user-space EC interface.
+ *

View file

@ -1,4 +1,4 @@
From 18f53c08789f84ebbd93f68e1d1596a8858f998c Mon Sep 17 00:00:00 2001
From fb6bd8e1637f42c1cb841537675d66fb480115b2 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sat, 25 Jul 2020 17:19:53 +0200
Subject: [PATCH 6/7] surface-sam-over-hid

View file

@ -1,4 +1,4 @@
From 3dd9971da7cb354e94652f719346b531905b3a6a Mon Sep 17 00:00:00 2001
From fd3a63e99a7502e67f70c0a4daf8a53039cc8d6d Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sun, 16 Aug 2020 23:39:56 +0200
Subject: [PATCH 7/7] surface-gpe

View file

@ -1,4 +1,4 @@
From b8af319992ad0b751fb116b9eeb4182c07b54b92 Mon Sep 17 00:00:00 2001
From 46b062660d497e28753879aaa71f11ed7cebbfaa Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Mon, 17 Aug 2020 01:23:20 +0200
Subject: [PATCH 4/6] surface-sam
@ -1372,11 +1372,11 @@ index f97938d777e1..b0caee1dd3b7 100644
+obj-$(CONFIG_SURFACE_AGGREGATOR) += surface_aggregator/
diff --git a/drivers/misc/surface_aggregator/Kconfig b/drivers/misc/surface_aggregator/Kconfig
new file mode 100644
index 000000000000..6d33e3259a3d
index 000000000000..47dd8fdffac3
--- /dev/null
+++ b/drivers/misc/surface_aggregator/Kconfig
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+menuconfig SURFACE_AGGREGATOR
@ -1445,11 +1445,11 @@ index 000000000000..6d33e3259a3d
+source "drivers/misc/surface_aggregator/clients/Kconfig"
diff --git a/drivers/misc/surface_aggregator/Makefile b/drivers/misc/surface_aggregator/Makefile
new file mode 100644
index 000000000000..c48e58657116
index 000000000000..b48ffc37ab52
--- /dev/null
+++ b/drivers/misc/surface_aggregator/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+# For include/trace/define_trace.h to include trace.h
@ -1469,11 +1469,11 @@ index 000000000000..c48e58657116
+endif
diff --git a/drivers/misc/surface_aggregator/bus.c b/drivers/misc/surface_aggregator/bus.c
new file mode 100644
index 000000000000..efd72ce7a672
index 000000000000..5e734bbd18cd
--- /dev/null
+++ b/drivers/misc/surface_aggregator/bus.c
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module bus and device integration.
+ *
@ -1899,11 +1899,11 @@ index 000000000000..efd72ce7a672
+}
diff --git a/drivers/misc/surface_aggregator/bus.h b/drivers/misc/surface_aggregator/bus.h
new file mode 100644
index 000000000000..798471a9b369
index 000000000000..7712baaed6a5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/bus.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module bus and device integration.
+ *
@ -1932,11 +1932,11 @@ index 000000000000..798471a9b369
+#endif /* _SURFACE_AGGREGATOR_BUS_H */
diff --git a/drivers/misc/surface_aggregator/clients/Kconfig b/drivers/misc/surface_aggregator/clients/Kconfig
new file mode 100644
index 000000000000..82c6e7d48e17
index 000000000000..c18403c13df5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/Kconfig
@@ -0,0 +1,155 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+config SURFACE_AGGREGATOR_CDEV
@ -2093,11 +2093,11 @@ index 000000000000..82c6e7d48e17
+ controlling said mode via the corresponding client device.
diff --git a/drivers/misc/surface_aggregator/clients/Makefile b/drivers/misc/surface_aggregator/clients/Makefile
new file mode 100644
index 000000000000..c7b1c20f865c
index 000000000000..6d1707bc5705
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/Makefile
@@ -0,0 +1,12 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright (C) 2019-2020 Maximilian Luz <luzmaximilian@gmail.com>
+
+obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o
@ -2111,11 +2111,11 @@ index 000000000000..c7b1c20f865c
+obj-$(CONFIG_SURFACE_PERFMODE) += surface_perfmode.o
diff --git a/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c
new file mode 100644
index 000000000000..1859db6b7323
index 000000000000..ddc27a196fec
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_acpi_notify.c
@@ -0,0 +1,884 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Driver for the Surface ACPI Notify (SAN) interface/shim.
+ *
@ -3001,11 +3001,11 @@ index 000000000000..1859db6b7323
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c b/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c
new file mode 100644
index 000000000000..287aff6129f6
index 000000000000..b2bfbaa01609
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_aggregator_cdev.c
@@ -0,0 +1,228 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Provides user-space access to the SSAM EC via the /dev/surface/aggregator
+ * misc device. Intended for debugging and development.
@ -3235,11 +3235,11 @@ index 000000000000..287aff6129f6
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c b/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c
new file mode 100644
index 000000000000..fc4b2b4e76fd
index 000000000000..869816f61d38
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_aggregator_registry.c
@@ -0,0 +1,646 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) client device registry.
+ *
@ -3887,11 +3887,11 @@ index 000000000000..fc4b2b4e76fd
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_battery.c b/drivers/misc/surface_aggregator/clients/surface_battery.c
new file mode 100644
index 000000000000..4c78b054774b
index 000000000000..4b63713bcd1e
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_battery.c
@@ -0,0 +1,1195 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface battery and AC device driver.
+ *
@ -5088,11 +5088,11 @@ index 000000000000..4c78b054774b
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_dtx.c b/drivers/misc/surface_aggregator/clients/surface_dtx.c
new file mode 100644
index 000000000000..ee815ad0fdad
index 000000000000..d667f605b74d
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_dtx.c
@@ -0,0 +1,591 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Book (gen. 2 and later) detachment system (DTX) driver.
+ *
@ -5685,11 +5685,11 @@ index 000000000000..ee815ad0fdad
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_hid.c b/drivers/misc/surface_aggregator/clients/surface_hid.c
new file mode 100644
index 000000000000..c29cb39543c5
index 000000000000..1c029345cde6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_hid.c
@@ -0,0 +1,495 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) HID device driver.
+ *
@ -6186,11 +6186,11 @@ index 000000000000..c29cb39543c5
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_hotplug.c b/drivers/misc/surface_aggregator/clients/surface_hotplug.c
new file mode 100644
index 000000000000..165c5b452bee
index 000000000000..f18cc17d019d
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_hotplug.c
@@ -0,0 +1,1285 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Book (gen. 2 and later) discrete GPU (dGPU) hot-plug system driver.
+ *
@ -7477,11 +7477,11 @@ index 000000000000..165c5b452bee
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_keyboard.c b/drivers/misc/surface_aggregator/clients/surface_keyboard.c
new file mode 100644
index 000000000000..94b1e0728bb2
index 000000000000..3d1269229d92
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_keyboard.c
@@ -0,0 +1,333 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface System Aggregator Module (SSAM) legacy HID input device driver.
+ *
@ -7816,11 +7816,11 @@ index 000000000000..94b1e0728bb2
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/clients/surface_perfmode.c b/drivers/misc/surface_aggregator/clients/surface_perfmode.c
new file mode 100644
index 000000000000..580ac680a183
index 000000000000..006601b3bea6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/clients/surface_perfmode.c
@@ -0,0 +1,122 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface performance-mode driver.
+ *
@ -7944,11 +7944,11 @@ index 000000000000..580ac680a183
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/controller.c b/drivers/misc/surface_aggregator/controller.c
new file mode 100644
index 000000000000..9125e51e7c8d
index 000000000000..f69347623a20
--- /dev/null
+++ b/drivers/misc/surface_aggregator/controller.c
@@ -0,0 +1,2554 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Main SSAM/SSH controller structure and functionality.
+ *
@ -10504,11 +10504,11 @@ index 000000000000..9125e51e7c8d
+}
diff --git a/drivers/misc/surface_aggregator/controller.h b/drivers/misc/surface_aggregator/controller.h
new file mode 100644
index 000000000000..b855fd54a163
index 000000000000..96e2b87a25d9
--- /dev/null
+++ b/drivers/misc/surface_aggregator/controller.h
@@ -0,0 +1,288 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Main SSAM/SSH controller structure and functionality.
+ *
@ -10798,11 +10798,11 @@ index 000000000000..b855fd54a163
+#endif /* _SURFACE_AGGREGATOR_CONTROLLER_H */
diff --git a/drivers/misc/surface_aggregator/core.c b/drivers/misc/surface_aggregator/core.c
new file mode 100644
index 000000000000..b9992f0c3ff1
index 000000000000..6aaac82b9091
--- /dev/null
+++ b/drivers/misc/surface_aggregator/core.c
@@ -0,0 +1,831 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Surface Serial Hub (SSH) driver for communication with the Surface/System
+ * Aggregator Module (SSAM/SAM).
@ -11635,11 +11635,11 @@ index 000000000000..b9992f0c3ff1
+MODULE_LICENSE("GPL");
diff --git a/drivers/misc/surface_aggregator/ssh_msgb.h b/drivers/misc/surface_aggregator/ssh_msgb.h
new file mode 100644
index 000000000000..1735a01f1f95
index 000000000000..7c29e7d7028a
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_msgb.h
@@ -0,0 +1,201 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH message builder functions.
+ *
@ -11842,11 +11842,11 @@ index 000000000000..1735a01f1f95
+#endif /* _SURFACE_AGGREGATOR_SSH_MSGB_H */
diff --git a/drivers/misc/surface_aggregator/ssh_packet_layer.c b/drivers/misc/surface_aggregator/ssh_packet_layer.c
new file mode 100644
index 000000000000..54f16ef040ef
index 000000000000..2d72e8c02842
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_packet_layer.c
@@ -0,0 +1,2009 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH packet transport layer.
+ *
@ -13857,11 +13857,11 @@ index 000000000000..54f16ef040ef
+}
diff --git a/drivers/misc/surface_aggregator/ssh_packet_layer.h b/drivers/misc/surface_aggregator/ssh_packet_layer.h
new file mode 100644
index 000000000000..39500b05d1f8
index 000000000000..f3d8a85389d5
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_packet_layer.h
@@ -0,0 +1,175 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH packet transport layer.
+ *
@ -14038,11 +14038,11 @@ index 000000000000..39500b05d1f8
+#endif /* _SURFACE_AGGREGATOR_SSH_PACKET_LAYER_H */
diff --git a/drivers/misc/surface_aggregator/ssh_parser.c b/drivers/misc/surface_aggregator/ssh_parser.c
new file mode 100644
index 000000000000..fb96ce326d63
index 000000000000..575cbc039ad7
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_parser.c
@@ -0,0 +1,229 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH message parser.
+ *
@ -14273,11 +14273,11 @@ index 000000000000..fb96ce326d63
+}
diff --git a/drivers/misc/surface_aggregator/ssh_parser.h b/drivers/misc/surface_aggregator/ssh_parser.h
new file mode 100644
index 000000000000..ba6eaa1ea2bd
index 000000000000..71c43ab07bf6
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_parser.h
@@ -0,0 +1,157 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH message parser.
+ *
@ -14436,11 +14436,11 @@ index 000000000000..ba6eaa1ea2bd
+#endif /* _SURFACE_AGGREGATOR_SSH_PARSER_h */
diff --git a/drivers/misc/surface_aggregator/ssh_request_layer.c b/drivers/misc/surface_aggregator/ssh_request_layer.c
new file mode 100644
index 000000000000..d536f40635ae
index 000000000000..f47bd949b6c3
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_request_layer.c
@@ -0,0 +1,1254 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * SSH request transport layer.
+ *
@ -15696,11 +15696,11 @@ index 000000000000..d536f40635ae
+}
diff --git a/drivers/misc/surface_aggregator/ssh_request_layer.h b/drivers/misc/surface_aggregator/ssh_request_layer.h
new file mode 100644
index 000000000000..0265f38dfa5f
index 000000000000..e945e0532628
--- /dev/null
+++ b/drivers/misc/surface_aggregator/ssh_request_layer.h
@@ -0,0 +1,142 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * SSH request transport layer.
+ *
@ -15844,11 +15844,11 @@ index 000000000000..0265f38dfa5f
+#endif /* _SURFACE_AGGREGATOR_SSH_REQUEST_LAYER_H */
diff --git a/drivers/misc/surface_aggregator/trace.h b/drivers/misc/surface_aggregator/trace.h
new file mode 100644
index 000000000000..86da9631fdf2
index 000000000000..232bf1142aae
--- /dev/null
+++ b/drivers/misc/surface_aggregator/trace.h
@@ -0,0 +1,625 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Trace points for SSAM/SSH.
+ *
@ -16502,11 +16502,11 @@ index e14cbe444afc..9932a610bda0 100644
#endif /* LINUX_MOD_DEVICETABLE_H */
diff --git a/include/linux/surface_acpi_notify.h b/include/linux/surface_acpi_notify.h
new file mode 100644
index 000000000000..d45e2420eaa0
index 000000000000..8e3e86c7d78c
--- /dev/null
+++ b/include/linux/surface_acpi_notify.h
@@ -0,0 +1,39 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Interface for Surface ACPI Notify (SAN) driver.
+ *
@ -16547,11 +16547,11 @@ index 000000000000..d45e2420eaa0
+#endif /* _LINUX_SURFACE_ACPI_NOTIFY_H */
diff --git a/include/linux/surface_aggregator/controller.h b/include/linux/surface_aggregator/controller.h
new file mode 100644
index 000000000000..f4f93c2072f0
index 000000000000..d91348d54457
--- /dev/null
+++ b/include/linux/surface_aggregator/controller.h
@@ -0,0 +1,814 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module (SSAM) controller interface.
+ *
@ -17367,11 +17367,11 @@ index 000000000000..f4f93c2072f0
+#endif /* _LINUX_SURFACE_AGGREGATOR_CONTROLLER_H */
diff --git a/include/linux/surface_aggregator/device.h b/include/linux/surface_aggregator/device.h
new file mode 100644
index 000000000000..80b6d5a0fa97
index 000000000000..41d06f665135
--- /dev/null
+++ b/include/linux/surface_aggregator/device.h
@@ -0,0 +1,430 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface System Aggregator Module (SSAM) bus and client-device subsystem.
+ *
@ -17803,11 +17803,11 @@ index 000000000000..80b6d5a0fa97
+#endif /* _LINUX_SURFACE_AGGREGATOR_DEVICE_H */
diff --git a/include/linux/surface_aggregator/serial_hub.h b/include/linux/surface_aggregator/serial_hub.h
new file mode 100644
index 000000000000..de4dbb3cda58
index 000000000000..376313f402b2
--- /dev/null
+++ b/include/linux/surface_aggregator/serial_hub.h
@@ -0,0 +1,659 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Surface Serial Hub (SSH) protocol and communication interface.
+ *
@ -18468,11 +18468,11 @@ index 000000000000..de4dbb3cda58
+#endif /* _LINUX_SURFACE_AGGREGATOR_SERIAL_HUB_H */
diff --git a/include/uapi/linux/surface_aggregator/cdev.h b/include/uapi/linux/surface_aggregator/cdev.h
new file mode 100644
index 000000000000..43819986f911
index 000000000000..e85351141a2d
--- /dev/null
+++ b/include/uapi/linux/surface_aggregator/cdev.h
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * Surface System Aggregator Module (SSAM) user-space EC interface.
+ *

View file

@ -1,4 +1,4 @@
From eeca95aae2ca982584ff3fea350e0db1b46db63d Mon Sep 17 00:00:00 2001
From 2d0655adddf7d426ddeb3a1b85134674293e7aca Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sat, 25 Jul 2020 17:19:53 +0200
Subject: [PATCH 5/6] surface-sam-over-hid

View file

@ -1,4 +1,4 @@
From d21aa94d36a6b3361b03bc3d154525cf30cf9bad Mon Sep 17 00:00:00 2001
From 980f9293ff6b0c2abb2b8b91b3df63f62f832cad Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sun, 16 Aug 2020 23:39:56 +0200
Subject: [PATCH 6/6] surface-gpe