Untitled
unknown
plain_text
6 months ago
3.8 kB
50
Indexable
#!/bin/sh
disable_wakeup() {
local device="$1"
# Check current status
if grep -q "^$device.*enabled" /proc/acpi/wakeup; then
echo "$device" > /proc/acpi/wakeup
fi
}
case $1 in
pre)
# Optionally unload Thunderbolt module.
# For when you have devices connected to a dock that may trigger wakeup's.
# modprobe -r thunderbolt 2>/dev/null
# Disable pinctrl_amd-related wakeups
disable_wakeup "GP11"
disable_wakeup "GP12"
disable_wakeup "GP23"
# Disable Thunderbolt wakeups
disable_wakeup "NHI0"
disable_wakeup "NHI1"
# disable USB wakeups
disable_wakeup "XHC0"
disable_wakeup "XHC1"
disable_wakeup "XHC3"
disable_wakeup "XHC4"
# Disable some ACPI related wakeups.
disable_wakeup "SWUS"
# ***** Descriptions below for the gpe* interrupts are educated guesses ***
# system control interrupts (SCI) or power management events
echo disable >/sys/firmware/acpi/interrupts/gpe02
# touchpad / I2C controller(s)
echo disable >/sys/firmware/acpi/interrupts/gpe03
# I2C or SPI controllers, sensors
echo disable >/sys/firmware/acpi/interrupts/gpe0D
# USB controllers (e.g., XHCI), PCIe devices, or GPIO interrupts
echo disable >/sys/firmware/acpi/interrupts/gpe10
# potentially lid switch, power button, or keyboard events etc.
# echo disable >/sys/firmware/acpi/interrupts/gpe19
# Disable touchpad driver
modprobe -r i2c_hid_acpi
echo "** Suspend before state:" >/tmp/suspend_stats.txt
echo "/proc/acpi/wakeup" >>/tmp/suspend_stats.txt
cat /proc/acpi/wakeup >>/tmp/suspend_stats.txt
echo "/sys/firmware/acpi/interrupts/gpe_all" >>/tmp/suspend_stats.txt
cat /sys/firmware/acpi/interrupts/gpe_all >>/tmp/suspend_stats.txt
echo "/sys/kernel/debug/wakeup_sources" >>/tmp/suspend_stats.txt
cat /sys/kernel/debug/wakeup_sources >>/tmp/suspend_stats.txt
echo "GPE states" >>/tmp/suspend_stats.txt
grep "" /sys/firmware/acpi/interrupts/gpe* >>/tmp/suspend_stats.txt
echo "** Entering suspend **" >>/tmp/suspend_stats.txt
echo "" >>/tmp/suspend_stats.txt
;;
post)
echo "** Exit suspend state:" >>/tmp/suspend_stats.txt
echo "/proc/acpi/wakeup" >>/tmp/suspend_stats.txt
cat /proc/acpi/wakeup >>/tmp/suspend_stats.txt
echo "/sys/firmware/acpi/interrupts/gpe_all" >>/tmp/suspend_stats.txt
cat /sys/firmware/acpi/interrupts/gpe_all >>/tmp/suspend_stats.txt
echo "/sys/kernel/debug/wakeup_sources" >>/tmp/suspend_stats.txt
cat /sys/kernel/debug/wakeup_sources >>/tmp/suspend_stats.txt
echo "GPE states" >>/tmp/suspend_stats.txt
grep "" /sys/firmware/acpi/interrupts/gpe* >>/tmp/suspend_stats.txt
# Re-enable touchpad driver.
modprobe i2c_hid_acpi
echo enable >/sys/firmware/acpi/interrupts/gpe03
echo enable >/sys/firmware/acpi/interrupts/gpe02
echo enable >/sys/firmware/acpi/interrupts/gpe03
echo enable >/sys/firmware/acpi/interrupts/gpe0D
echo enable >/sys/firmware/acpi/interrupts/gpe10
# Optionally reload Thunderbolt module (uncomment if unloaded above)
# modprobe thunderbolt 2>/dev/null
;;
esacEditor is loading...
Leave a Comment