linux-surface / kernel

Linux kernel with modifications for Microsoft Surface devices.
Other
118 stars 33 forks source link

Add Surface Aggregator Module support for the Surface Pro 8 #110

Closed qzed closed 2 years ago

qzed commented 2 years ago

The Surface Pro 8 uses the same keyboard cover as the Surface Pro X. This type of cover is no longer connected via USB as on earlier generations, but is now connected via the Surface Aggregator Module.

To this end, we need to add hot-plugging support for Surface Aggregator Module devices to prevent communication when the device is removed. This would otherwise result in timeouts. Further, we need to introduce a new device hub (using the KIP subsystem) via which we get notified of device removal/addition. This hub is used to manage all keyboard-cover HID devices.

Lastly, this PR also introduces a tablet mode switch based on the KIP subsystem and the notifications we receive from it regarding keyboard-cover devices.