Linux kernel: getting ELAN touchscreen to work, USB debug related

This problem is actually known (ext: ELAN Touchscreen regression in recent 3.12's), but has no known solution up to kernel 3.13.6:

[ 3844.533281] usb 2-7: new full-speed USB device number 91 using xhci_hcd
[ 3846.552668] usb 2-7: unable to read config index 0 descriptor/start: -71
[ 3846.552674] usb 2-7: can't read configurations, error -71
[ 3846.705075] usb 2-7: new full-speed USB device number 92 using xhci_hcd
[ 3848.724196] usb 2-7: unable to read config index 0 descriptor/start: -71
[ 3848.724203] usb 2-7: can't read configurations, error -71
[ 3848.876892] usb 2-7: new full-speed USB device number 93 using xhci_hcd
[ 3848.889370] usb 2-7: New USB device found, idVendor=04f3, idProduct=016f
[ 3848.889373] usb 2-7: New USB device strings: Mfr=4, Product=14, SerialNumber=0
[ 3848.889375] usb 2-7: Product: Touchscreen
[ 3848.889377] usb 2-7: Manufacturer: ELAN
[ 3848.889535] usb 2-7: ep 0x2 - rounding interval to 64 microframes, ep desc says 80 microframes
[ 3850.896928] usb 2-7: USB disconnect, device number 93
[ 3851.180686] usb 2-7: new full-speed USB device number 94 using xhci_hcd

Unfortunately, the expected solution didn't work for me. I've disabled anything with DEBUG in kernel, excepting these:

CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_SLUB_DEBUG=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_DEBUG_FS=y
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y

usbtouchscreen module is disabled (as recommended on the Arch wiki). Any ideas?


PROBLEM SOLVED.

So at a certain moment between 3.14 and 3.15-rc8 it started working.

Config: http://www.everfall.com/paste/id.php?pmj1v6mwhaly


Try enabling hid-multitouch module in your kernel:

-> Device Drivers
  -> HID support
    -> HID bus support (HID [=y])
      -> Special HID drivers
        -> HID Multitouch panels