jekhor / yogabook-linux

Yoga Book Linux porting efforts, umbrella repository for link all pieces together
74 stars 8 forks source link

Wacom digitizer starts to work after i2c_hid module restart only #10

Closed jekhor closed 3 years ago

jekhor commented 5 years ago

Wacom pad ('keyboard') starts to work only if i2c_hid module was reloaded.

TiNredmc commented 5 years ago

So the keyboard will not work after booted up ?

jekhor commented 5 years ago

No, keyboard works. Keyboard area contains two pointing devices really: touchpad (Goodix chip) and Wacom digitizer. First is for fingers, second is for pen.

TiNredmc commented 5 years ago

So digitizer doesn't works after the boot , Right?

TiNredmc commented 5 years ago

Did you tried to look at the dmesg ?

jekhor commented 5 years ago

So digitizer doesn't works after the boot , Right?

yes.

jekhor commented 5 years ago

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.

TiNredmc commented 5 years ago

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).

jekhor commented 5 years ago

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.

TiNredmc commented 5 years ago

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 ?

TiNredmc commented 4 years ago

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 ).

jekhor commented 3 years ago

Fixed in the LiveCD 5.10.2 by some magic with binding and unbinding devices at events from the WMI kernel driver.