diff --git a/firmware/intel/ipts/MSHW0079/vendor_desc.bin b/firmware/intel/ipts/MSHW0079/vendor_desc.bin index d1bf1abb8..004aa0817 100644 Binary files a/firmware/intel/ipts/MSHW0079/vendor_desc.bin and b/firmware/intel/ipts/MSHW0079/vendor_desc.bin differ diff --git a/firmware/intel/ipts/MSHW0079/vendor_desc_orig.bin b/firmware/intel/ipts/MSHW0079/vendor_desc_orig.bin new file mode 100644 index 000000000..d1bf1abb8 Binary files /dev/null and b/firmware/intel/ipts/MSHW0079/vendor_desc_orig.bin differ diff --git a/firmware/intel/ipts/README.md b/firmware/intel/ipts/README.md new file mode 100644 index 000000000..ad8073640 --- /dev/null +++ b/firmware/intel/ipts/README.md @@ -0,0 +1,24 @@ +# IPTS driver firmware +This is the driver firmware required for the `intel_ipts` module. It was +extracted from the `SurfaceBook2_Win10_18362_1904009_0` firmware bundle for +Windows. + +### Filenames +* `SurfaceTouchServicingKernel*.bin` -> `vendor_kernel.bin` +* `SurfaceTouchServicingSFTConfig*.bin` -> `config.bin` +* `SurfaceTouchServicingDescriptor*.bin` -> `vendor_desc.bin` +* `iaPreciseTouchDescriptor.bin` -> `intel_desc.bin` (the same for all models) +* `ipts_fw_config.bin` (custom, the same for all models; https://github.com/ipts-linux-org/ipts-linux-new/commit/63a8944729d989dd98b0fa382fd9693d6a8c097f) + +### HID descriptor +The HID descriptor for IPTS devices consists of `intel_desc.bin` and +`vendor_desc.bin` concatinated together by the driver. The result can be +decompiled by various tools found on the internet: +```bash +$ cat intel_desc.bin vendor_desc.bin > hid_desc.bin +``` + +### Quirks +At the moment, `MSHW0079` is using the HID descriptor from `MSHW0137`. It's own +HID descriptor is bugged and needs kernel mitigations to have the kernel properly +register touch input events. See: https://github.com/jakeday/linux-surface/issues/574