From b776afaeac6eb2967232620de6074b2bb45d0f6b Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Mon, 2 May 2022 21:05:59 +0200 Subject: core/linux: added ACPI C3 patch --- core/linux/PKGBUILD | 125 +++++++++++++++++++++++++---------------------- core/linux/acpi-c3.patch | 12 +++++ 2 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 core/linux/acpi-c3.patch diff --git a/core/linux/PKGBUILD b/core/linux/PKGBUILD index 9d2b4a74..90edf152 100644 --- a/core/linux/PKGBUILD +++ b/core/linux/PKGBUILD @@ -33,67 +33,74 @@ eval "$( )" # use our tarballer instead of cloning from git -for ((i=0; i<${#source[@]}; i++)); do - infos=$( - printf '%s\n' "${source[${i}]}" | \ - sed ' - s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\([^#?]\+\)\(?signed\)\?#\(\(tag\|commit\)=[^?]\+\)$@\3 \2 \4 \5 \6@ - t - s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\([^#?]\+\)#\(\(tag\|commit\)=[^?]\+\)\(?signed\)\?$@\3 \2 \4 \7 \5@ - t - d - ' - ) - if [ -n "${infos}" ]; then - source[${i}]=$( - type="${infos%% *}" - infos="${infos#* }" - if [ -n "${infos%% *}" ]; then - prefix="${infos%% *}" - else - prefix='' - fi - infos="${infos#* }" - repo="${infos%% *}" - repo64=$( - printf '%s' "${repo}" | \ - base64 -w0 | \ - sed 's/=/%3D/g' - ) - infos="${infos#* }" - if [ "${infos%% *}" = '?signed' ]; then - key_check=$( - printf '&valid_keys=' - printf '%s,' "${validpgpkeys[@]}" | \ - sed 's/,$//' - ) - else - key_check='' - fi - infos="${infos#* }" - if [ -z "${prefix}" ]; then - prefix="${repo%.git}" - prefix="${prefix##*/}" - fi - prefix_64=$( - printf '%s/' "${prefix}" | \ - base64 -w0 | \ - sed 's/=/%3D/g' - ) +#~ for ((i=0; i<${#source[@]}; i++)); do + #~ infos=$( + #~ printf '%s\n' "${source[${i}]}" | \ + #~ sed ' + #~ s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\([^#?]\+\)\(?signed\)\?#\(\(tag\|commit\)=[^?]\+\)$@\3 \2 \4 \5 \6@ + #~ t + #~ s@^\(\([^:]\+\)::\)\?\(git\|hg\)+\([^#?]\+\)#\(\(tag\|commit\)=[^?]\+\)\(?signed\)\?$@\3 \2 \4 \7 \5@ + #~ t + #~ d + #~ ' + #~ ) + #~ if [ -n "${infos}" ]; then + #~ source[${i}]=$( + #~ type="${infos%% *}" + #~ infos="${infos#* }" + #~ if [ -n "${infos%% *}" ]; then + #~ prefix="${infos%% *}" + #~ else + #~ prefix='' + #~ fi + #~ infos="${infos#* }" + #~ repo="${infos%% *}" + #~ repo64=$( + #~ printf '%s' "${repo}" | \ + #~ base64 -w0 | \ + #~ sed 's/=/%3D/g' + #~ ) + #~ infos="${infos#* }" + #~ if [ "${infos%% *}" = '?signed' ]; then + #~ key_check=$( + #~ printf '&valid_keys=' + #~ printf '%s,' "${validpgpkeys[@]}" | \ + #~ sed 's/,$//' + #~ ) + #~ else + #~ key_check='' + #~ fi + #~ infos="${infos#* }" + #~ if [ -z "${prefix}" ]; then + #~ prefix="${repo%.git}" + #~ prefix="${prefix##*/}" + #~ fi + #~ prefix_64=$( + #~ printf '%s/' "${prefix}" | \ + #~ base64 -w0 | \ + #~ sed 's/=/%3D/g' + #~ ) - printf '%s-%s.tar.gz::https://archive-server.archlinux32.org/?t=%s&p=%s&r=%s%s&%s\n' \ - "${prefix}" \ - "${pkgver}" \ - "${type}" \ - "${prefix_64}" \ - "${repo64}" \ - "${key_check}" \ - "${infos}" - ) - fi -done + #~ printf '%s-%s.tar.gz::https://archive-server.archlinux32.org/?t=%s&p=%s&r=%s%s&%s\n' \ + #~ "${prefix}" \ + #~ "${pkgver}" \ + #~ "${type}" \ + #~ "${prefix_64}" \ + #~ "${repo64}" \ + #~ "${key_check}" \ + #~ "${infos}" + #~ ) + #~ fi +#~ done + +# upstream prepare() does already do the *.patch patching # avoid using zstd compression in ultra mode (exhausts virtual memory) source+=('core/linux/no-ultra-zstd.patch') sha256sums+=('d32270be5fd9c3e3ba50f3aef33f6cfcb85be0c8216f03b777287cc621fdff28') -# upstream prepare() does already do the *.patch patching + +# https://bbs.archlinux32.org/viewtopic.php?pid=9109#p9109 +# avoid "sleepy" VIA C7 CPUs (and possibly others) +source+=('core/linux/acpi-c3.patch') +sha256sums+=('fc44aaf0b68abc9502fd4e0f73345c53b756566b532005466b106bacc9f9bc9c') + diff --git a/core/linux/acpi-c3.patch b/core/linux/acpi-c3.patch new file mode 100644 index 00000000..a5b79972 --- /dev/null +++ b/core/linux/acpi-c3.patch @@ -0,0 +1,12 @@ +diff -rauN a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c +--- a/drivers/acpi/processor_idle.c 2022-05-02 21:01:51.302162225 +0200 ++++ b/drivers/acpi/processor_idle.c 2022-05-02 21:04:58.169438104 +0200 +@@ -796,6 +796,8 @@ + cx->type == ACPI_STATE_C3) { + state->enter_dead = acpi_idle_play_dead; + drv->safe_state_index = count; ++ if (cx->type != ACPI_STATE_C3) ++ drv->safe_state_index = count; + } + /* + * Halt-induced C1 is not good for ->enter_s2idle, because it -- cgit v1.2.3-70-g09d2