# Elan touchpad stopped working, I fixed it but...

## Zucca

Long story short: My Huawei MateBook D touchpad stopped working while I was using my laptop. I then thought it was a driver issue and rebooted. It didn't help. At this point I was sure this was a hardware failure. I haven't made any updates etc because we just moved to a new house and I have tons of other things to do. So hardware issue right? Maybe... BUT unloading and loading i2c_hid kernel module brought the touchpad back to life.

I can't think of any reason why this is like it is. Anyone have any guesses?

I'll be sure to save all the kernel messages if this happens again.

----------

## roccobaroccoSC

I disable the touchpad sometimes by accident when pressing the wrong keys (Fn+F7 on my machine). Check if you disabled it unintentionally.

----------

## Zucca

There's no quick key to disable touchpad on my laptop, afaik. Fn+F7 disables microphone.

But the touchpad really gave some error messages before dying.

----------

## Zucca

It happened again.

These messages started to appear on dmesg:

```
i2c_hid i2c-ELAN2204:00: i2c_hid_get_input: incomplete report (14/65535)
```

And then i did remove/unload i2c_hid and then loaded it again, but then:

```
i2c_hid i2c-ELAN2204:00: supply vdd not found, using dummy regulator

i2c_hid i2c-ELAN2204:00: supply vddl not found, using dummy regulator

i2c_hid i2c-ELAN2204:00: failed to reset device.

i2c_hid i2c-ELAN2204:00: failed to reset device.

i2c_hid i2c-ELAN2204:00: failed to reset device.

i2c_hid i2c-ELAN2204:00: failed to reset device.

i2c_hid i2c-ELAN2204:00: can't add hid device: -61

i2c_hid: probe of i2c-ELAN2204:00 failed with error -61
```

I guess compiling i2c_hid into kernel would only worsen things.

But also I just realized this "hangup" happens only short time after resuming from suspend. So the very ugly solution would be to unload the module before going to suspend...

----------

## allexj

I have the SAME issue and the SAME laptop.

 *Zucca wrote:*   

> It happened again.
> 
> So the very ugly solution would be to unload the module before going to suspend...

 

So you mean to create a suspend hook (to unload i2c_hid) and resume hook(to reload i2c_hid)?

Also, modprobe doesn't let me unload i2c_hid... I have to unload i2c_hid_acpi before, and then I can remove i2c_hid. Do you have the same scenario?

----------

## Zucca

Hi, allexj!

 *allexj wrote:*   

> So you mean to create a suspend hook (to unload i2c_hid) and resume hook(to reload i2c_hid)?

 Yes, that could solve the issue. *allexj wrote:*   

> Also, modprobe doesn't let me unload i2c_hid... I have to unload i2c_hid_acpi before, and then I can remove i2c_hid. Do you have the same scenario?

 I don't have i2c_hid_acpi, however.

Which kernel version you run?

```
# uname -rp

5.10.61-huawei-matebook-d-amd AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx
```

I bet we're not alone and this indicates that this isn't a hardware problem.

Oh, and welcome to Gentoo!

----------

## allexj

 *Zucca wrote:*   

> 
> 
> Which kernel version you run?
> 
> Oh, and welcome to Gentoo!

 

Hi! Thanks for welcome, but to be honest I am running ArchLinux. I searched for this issue and I noticed this thread so I commented.

```
$ uname -rp

5.14.16-arch1-1 unknown
```

Doing as you suggested (creating sleep and resume hooks) seem to have fixed the issue!  :Very Happy: 

If you want more resources about the bug, here there are some links:

https://www.reddit.com/r/linuxhardware/comments/mv9qew/elan2204_touchpad_stops_working_after_hibernation/

https://bugzilla.kernel.org/show_bug.cgi?id=214749

Thanks for the suggestion, I'll let you know if the bug happens again

----------

## Zucca

So let's wait for the fix, I guess.   :Confused: 

Darn. I'm not very eager to test out bleeding edge kernels, but this time, I guess, I have to when the time comes.

----------

