Skip to content
ardacoskunses edited this page Jun 28, 2016 · 21 revisions

Welcome to the ipts-linux wiki!

Intel Precise Touch and Stylus Technology offloads the touch signal processing to GPU and enable more computational power to support advanced algorithms.

Intel developed the HID Driver for Linux kernel for Intel Precise Touch. The development is still in progress and has not yet been up streamed. This HID Driver was developed for Linux Kernel 4.4 and above.

Kernel Compile instructions

$ make intelpt_defconfig

  • Make sure “CONFIG_INTEL_MEI_ITOUCH=m” is set, after this regular kernel compile instructions can be followed.

Installing i915 GuC FW

We need to use specific GuC FW for IPTS, this FW comes within kernel repo within the following directory:

  • ipts-linux/firmware/i915/skl_guc_ver4.bin
  • ipts-linux/firmware/i915/skl_guc_ver4_3.bin

These files should end up in sysfs in the following location:

  • /lib/firmware/i915/skl_guc_ver4.bin -> /lib/firmware/i915/skl_guc_ver4_3.bin
  • /lib/firmware/i915/skl_guc_ver4_3.bin

If above files are missing, please add them manually and reboot. Best to check kernel logs if GuC FW loaded gracefully or not.

For more information

Note: for current release we need GuC version v4.3 only. OTC website has GuC v6.1 which will not work with this kernel!!

User Space Components

Intel Precise Touch uses Touch OpenCL kernel binaries provided by Touch Vendor. They are explained below table.

  1. Descriptor.bin: A HID descriptor file provided by vendor. The HID Driver appends the panel’s HID descriptor to information.
  2. iaPreciseTouchDescriptor.bin: A HID descriptor file. A bare minimum HID descriptor descripting the device. The HID Driver appends the panel’s HID descriptor to information.
  3. KernelSKL.bin: Touch Vendor provided OpenCL kernel includes touch algorithms.
  4. SFTConfig.bin: Touch Vendor provided configuration binary.

Each Touch vendor runs different OpenCL kernels. So for different machines this files needs to be updated. On IPTS supported platforms these files can be extracted from Windows OS. These files are located in:

*%Windir%\inf\PreciseTouch*

So binary names explained above can be different on different systems but fundamentally we need this 4 files: Vendor descriptor, iaDescriptor, Vendor kernel, vendor configuration file.

Kernel will look for these user space binaries in /itouch folder, to be able to try different vendor kernels using softlinks are safe:

  • ln -sf /itouch/SKernelSKL.bin /itouch/vendor_kernel_skl.bin
  • ln -sf /itouch/SFTConfig.bin /itouch/integ_sft_cfg_skl.bin
  • ln -sf /itouch/Descriptor.bin /itouch/vendor_descriptor.bin
  • ln -sf /itouch/iaPreciseTouchDescriptor.bin /itouch/integ_descriptor.bin

Open Issues

When RC6 is disabled, we observed some screen fragmentation but when RC6 is enabled this issue goes away.

Fixed issues

Previously reported screen fragmentation issue is fixed by enabling RC6 in this release. After Display off and on iTouch stops working.

Clone this wiki locally