Actually I’ve inserted some pr_alert code into i2c-hid-core.c to find out which line of function call wasn’t unsuccessful. I‘ve also enable I2C tracing and turned on the dynamic debug feature of i2c-designware-platdrv.c to verify it.
Unfortunately I could only tell the I2C controller somehow fails to read HID Descriptor from the touchpad. As for the root cause, my best guess is due to a bug in the i2c-designware.