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

Looping "wake irq triggered" on Surface Studio 2 when volume button pressed #32

Open
camilio69 opened this issue Jan 8, 2020 · 11 comments
Labels
C: bug (upstream) Upstream bug D: Studio 2 Device: Surface Studio 2 P: high Priority: High priority

Comments

@camilio69
Copy link

On the Surface Studio 2 (not officially supported I know), most things works.
However, as soon as I press a volume button, the system goes unresponsive, with dmesg reporting repeatedly:
surface_sam_ssh serial0-0: wake irq triggered

@qzed qzed added D: Studio 2 Device: Surface Studio 2 C: bug Something isn't working P: medium Priority: Medium priority P: high Priority: High priority and removed P: medium Priority: Medium priority labels Jan 8, 2020
@qzed
Copy link
Member

qzed commented Jan 8, 2020

Can you upload an acpidump (run sudo acpidump > acpidump.out)?

@camilio69
Copy link
Author

Here it is.
acpidump.txt

@qzed
Copy link
Member

qzed commented Jan 8, 2020

Okay, to be sure: If you unload the SAM modules the system doesn't get unresponsive (you can unload all via https://github.com/linux-surface/surface-aggregator-module/blob/master/scripts/unload.sh)?

I can't find any obvious connection in the acpidump/DSDT between volume buttons and the SSH wake GPIO pin, so this may take some work to track down.

Also those are the side-buttons for the volume?

@camilio69
Copy link
Author

OK, so when removing the modules as specified, there is not IRQ going crazy when I press button, so system keeps its responsiveness.

To clarify, when I said system went unresponsive, that was exaggerated. Some CPU were stuck in IRQ processing.
After restart, with all default modules loaded, in /proc/interrupts, the ones which loop (10k/s) are:
14: 0 0 192731 0 0 0 0 0 IR-IO-APIC 14-fasteoi INT345D:00
135: 0 0 620288 0 0 0 0 0 INT345D:00 99 surface_sam_wakeup
Other interrupts looks OK.
If I stop the service and removes the module, IRQ 14 continues to trig only.

Yes, I speak of the hardware volume buttons on the side of the screen.

@qzed
Copy link
Member

qzed commented Jan 8, 2020

If you remove both the SAM modules and the soc_button_array, does IRQ 14 still trigger?

@camilio69
Copy link
Author

No, this stops it.

@qzed
Copy link
Member

qzed commented Jan 8, 2020

Does only removing soc_button_array stop it too? Also the volume switches do behave normally, so no constant/automatic increase/decrease after pressing?

@camilio69
Copy link
Author

Yes, removing only soc_button_array stops both IRQ.
The volume switch never worked with this kernel + module (it does not change the volume). The mechanic is OK: it works as expected when booting Windows.

I realize I did not put all information here:
I put Ubuntu 19.10 with the linux-surface/linux-surface from the package repositories (version 5.4.6-surface-1). I had to put nomodeset to be able to boot, or I had blank screen which seam frozen (divide error in nouveau driver at gf119_disp_super).
I used to run Ubuntu 19.04 with jakeday/linux-surface on this same hardware, and the button part was working, but rest was less working (specially very long startup with timeouts).

If you need any dmesg or other information to help the further development, I will be glad to help.
So, thanks to your help, I found that putting soc_button_array in blacklist makes the unit stable, even if I do not have the hardware button volume, which is OK for me.

@qzed
Copy link
Member

qzed commented Jan 10, 2020

It's good that you've found a workaround for now. I still have no real clue why this is happening and unfortunately not that much time to look into this at the moment.

A dmesg log would be nice (complete, before and after pressing a volume button), maybe we can spot something there, although I kind of doubt that. Do you still remember which kernel version of jakeday/linux-surface you were running, specifically on which version the volume buttons were working?

@camilio69
Copy link
Author

Unfortunately I do not have the PC anymore for now.
Here is the dmesg when graphics are enabled, I had a copy on my computer.
dmesg_nouveau.txt
I will try to make a new one with pressing button when I get the PC back, but I think it will be hard as the IRQ triggers too fast and fills up the ring buffer.
For the jakefay/linux-surface version, I will check, I let a partition to boot it. It was taken in late August/early September 2019.

Thanks,

@qzed
Copy link
Member

qzed commented Jan 15, 2020

Since the root problem seems to also occur when the SAM modules are unloaded you could unload them and then get the dmesg log, that way that part at least shouldn't be spammed to the log.

I'll try to have a look at the log later.

@qzed qzed added C: bug (upstream) Upstream bug and removed C: bug Something isn't working labels Jul 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: bug (upstream) Upstream bug D: Studio 2 Device: Surface Studio 2 P: high Priority: High priority
Projects
None yet
Development

No branches or pull requests

2 participants