Wacom digitizer starts to work after i2c_hid module restart only
Closed this issue · 11 comments
Wacom pad ('keyboard') starts to work only if i2c_hid module was reloaded.
So the keyboard will not work after booted up ?
No, keyboard works. Keyboard area contains two pointing devices really: touchpad (Goodix chip) and Wacom digitizer. First is for fingers, second is for pen.
So digitizer doesn't works after the boot , Right?
Did you tried to look at the dmesg ?
So digitizer doesn't works after the boot , Right?
yes.
Did you tried to look at the dmesg ?
Yes, I look but didn't dig deeply. I think that source of problem is some ACPI method which switches touchpad or wacom digitizer on/off.
I thing restart i2c_hid is re-initialize the hardware. Soon will take a look at the init command of the pad. Seems like it had a problem with sending byte. I had familiar with the i2c hardware. Timing must be at lease almost perfect to initialize the hardware. You should try adding some delay in us (Microsecond, at lease 100 us) before initialize the hardware ( wait for it to wake up from no power).
I thing restart i2c_hid is re-initialize the hardware. Soon will take a look at the init command of the pad. Seems like it had a problem with sending byte. I had familiar with the i2c hardware. Timing must be at lease almost perfect to initialize the hardware. You should try adding some delay in us (Microsecond, at lease 100 us) before initialize the hardware ( wait for it to wake up from no power).
Yes but no. x86 world is a bit more complicated than ARM or bare hardware ;) Power management usually is delegated to the ACPI subsystem which has own scripts for switching modes of HW modules.
So. It seems like the ACPI doesn't do the job well ?. The command is sent but wacom pad but no power to the wacom pad, right ?
Forgot to mention about the startup durations of the device. ACPI stuff must send the power to the pad then wait to initialize (on the hardware level). Then send bytes to talk with the pad. Or easier way is to create custom run-at-boot scriptor some execbin that start and restart the service (such a stupid fun workaround xD ).
Fixed in the LiveCD 5.10.2 by some magic with binding and unbinding devices at events from the WMI kernel driver.