Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

galp3-c: Touchpad not always restored on S3 resume #195

Open
crawfxrd opened this issue May 13, 2021 · 3 comments
Open

galp3-c: Touchpad not always restored on S3 resume #195

crawfxrd opened this issue May 13, 2021 · 3 comments
Labels
status:needs-repro Need to check if reproducible on newer version

Comments

@crawfxrd
Copy link
Member

This blocks the Open Firmware release for galp3-c and galp4.

Affects

  • galp3-c
  • galp4

Steps to reproduce

  • Perform S3 suspend
  • Wake system
  • Check touchpad functionality
  • Repeat

To ease reproduction of this issue, I am using a modified suspender.sh script from the private testing repo. It checks for the existence of/sys/devices/platform/i8042/serio1/input instead of running a certain number of times.

Expected behavior

The touchpad functions on every resume.

Actual behavior

Consistently, but after an arbitrary amount of suspends, the touchpad no longer functions.

After enabling TRACE debugging, I see that all kbc mouse logs stop occurring once the device is lost.

In the case of the galp3-c, functionality does not seem to be restored until a reboot. (Although I was not particularly interested in seeing it would return after more suspend cycles, so only attempted more suspend cycles once.)

@crawfxrd
Copy link
Member Author

With i8042.debug=1 on Linux, you can see that IRQ12 stops happening.

  • Good: Touchpad restored on resume
  • Bad: Touchpad not restored, no IRQ12

@crawfxrd
Copy link
Member Author

crawfxrd commented May 17, 2021

The mouse reset (0xDD 0xFF) never completes: TDS isn't set after 10k (PS2_TIMEOUT) reads, but neither is TOER. It's normally complete on the first read.

I sometimes see more ACPI timeouts related to this as well (about 3 times in 20 repros).

[  403.492994] i8042: [100527] d4 -> i8042 (command)
[  403.493581] i8042: [100527] ff -> i8042 (parameter)
[  403.574765] usb 1-7: reset high-speed USB device number 3 using xhci_hcd
[  403.583216] ata1: SATA link down (SStatus 4 SControl 300)
[  403.749599] OOM killer enabled.
[  403.749603] Restarting tasks ... done.
[  403.753510] video LNXVIDEO:00: Restoring backlight state
[  403.774779] PM: suspend exit
[  404.514746] i8042: [100783] d4 -> i8042 (command)
[  405.138280] i8042: [100938]      -- i8042 (wait write timeout)
[  405.991647] ACPI Error: AE_TIME, Returned by Handler for [EmbeddedControl] (20201113/evregion-294)
[  405.991655] ACPI Error: Timeout from EC hardware or EC device driver (20201113/evregion-304)

[  405.991670] No Local Variables are initialized for Method [SKBL]

[  405.991672] Initialized Arguments for Method [SKBL]:  (1 arguments defined for method invocation)
[  405.991672]   Arg0:   00000000adf03106 <Obj>           Integer 0000000000000000

[  408.492877] ACPI Error: AE_TIME, Aborting method \_SB.S76D.SKBL due to previous error (AE_TIME) (20201113/psparse-529)
[  408.492921] leds system76_acpi::kbd_backlight: Setting an LED's brightness failed (-1)
[  408.492924]  (20201113/psparse-529)
[  408.492925] Returned by Handler for [EmbeddedControl] (20201113/evregion-294)
[  408.492926] ACPI Error: Timeout from EC hardware or EC device driver (20201113/evregion-304)

[  408.492933] No Local Variables are initialized for Method [SAPL]

[  408.492934] Initialized Arguments for Method [SAPL]:  (1 arguments defined for method invocation)
[  408.492935]   Arg0:   00000000ae89d4fc <Obj>           Integer 0000000000000000

[  408.492940] ACPI Error: Aborting method \_SB.S76D.SAPL due to previous error (AE_TIME) (20201113/psparse-529)
[  408.492946] leds system76_acpi::airplane: Setting an LED's brightness failed (-1)
[  408.814697] i8042: [101857] d4 -> i8042 (command)
[  408.825646] i8042: [101860] e8 -> i8042 (parameter)

@crawfxrd
Copy link
Member Author

#201 appears to have fixed the ACPI timeouts.

@crawfxrd crawfxrd added the status:needs-repro Need to check if reproducible on newer version label Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:needs-repro Need to check if reproducible on newer version
Projects
None yet
Development

No branches or pull requests

1 participant