diff --git a/packages/audio/pipewire/package.mk b/packages/audio/pipewire/package.mk index e5f4c0421..270ce8482 100644 --- a/packages/audio/pipewire/package.mk +++ b/packages/audio/pipewire/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv) PKG_NAME="pipewire" -PKG_VERSION="0.3.84" +PKG_VERSION="1.0.1" PKG_LICENSE="LGPL" PKG_SITE="https://pipewire.org" PKG_URL="https://github.com/PipeWire/pipewire/archive/${PKG_VERSION}.tar.gz" diff --git a/packages/audio/pipewire/patches/001-pipewire-pulse.patch b/packages/audio/pipewire/patches/001-pipewire-pulse.patch index b71eae88e..bb7a5af62 100644 --- a/packages/audio/pipewire/patches/001-pipewire-pulse.patch +++ b/packages/audio/pipewire/patches/001-pipewire-pulse.patch @@ -1,7 +1,7 @@ -diff -rupN pipewire-0.3.84.orig/src/daemon/pipewire-pulse.conf.in pipewire-0.3.84/src/daemon/pipewire-pulse.conf.in ---- pipewire-0.3.84.orig/src/daemon/pipewire-pulse.conf.in 2023-11-13 16:35:56.502690919 +0000 -+++ pipewire-0.3.84/src/daemon/pipewire-pulse.conf.in 2023-11-13 16:36:28.096495134 +0000 -@@ -90,11 +90,11 @@ pulse.properties = { +diff -rupN pipewire-1.0.0.orig/src/daemon/pipewire-pulse.conf.in pipewire-1.0.0/src/daemon/pipewire-pulse.conf.in +--- pipewire-1.0.0.orig/src/daemon/pipewire-pulse.conf.in 2023-12-29 13:41:35.329947857 +0000 ++++ pipewire-1.0.0/src/daemon/pipewire-pulse.conf.in 2023-12-29 13:41:46.850669838 +0000 +@@ -92,11 +92,11 @@ pulse.properties = { #"tcp:[::]:9999" # IPv6 on all addresses #"tcp:127.0.0.1:8888" # IPv4 on a single address # @@ -18,23 +18,17 @@ diff -rupN pipewire-0.3.84.orig/src/daemon/pipewire-pulse.conf.in pipewire-0.3.8 ] #server.dbus-name = "org.pulseaudio.Server" #pulse.min.req = 128/48000 # 2.7ms -diff -rupN pipewire-0.3.84.orig/src/daemon/systemd/system/pipewire.service.in pipewire-0.3.84/src/daemon/systemd/system/pipewire.service.in ---- pipewire-0.3.84.orig/src/daemon/systemd/system/pipewire.service.in 2023-11-13 16:35:56.502690919 +0000 -+++ pipewire-0.3.84/src/daemon/systemd/system/pipewire.service.in 2023-11-13 16:36:28.096495134 +0000 -@@ -15,21 +15,24 @@ Description=PipeWire Multimedia Service - Requires=pipewire.socket - - [Service] --LockPersonality=yes --MemoryDenyWriteExecute=yes --NoNewPrivileges=yes --RestrictNamespaces=yes --SystemCallArchitectures=native --SystemCallFilter=@system-service +diff -rupN pipewire-1.0.0.orig/src/daemon/systemd/system/pipewire.service.in pipewire-1.0.0/src/daemon/systemd/system/pipewire.service.in +--- pipewire-1.0.0.orig/src/daemon/systemd/system/pipewire.service.in 2023-12-29 13:41:35.329947857 +0000 ++++ pipewire-1.0.0/src/daemon/systemd/system/pipewire.service.in 2023-12-29 13:43:32.217227049 +0000 +@@ -21,15 +21,25 @@ NoNewPrivileges=yes + RestrictNamespaces=yes + SystemCallArchitectures=native + SystemCallFilter=@system-service +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket +User=root Type=simple --AmbientCapabilities=CAP_SYS_NICE + AmbientCapabilities=CAP_SYS_NICE -ExecStart=@PW_BINARY@ +ExecStart=/usr/bin/pipewire Restart=on-failure @@ -53,16 +47,16 @@ diff -rupN pipewire-0.3.84.orig/src/daemon/systemd/system/pipewire.service.in pi +Environment=HOME=/storage [Install] --Also=pipewire.socket -+Also=pipewire-pulse.socket +-Also=pipewire.socket pipewire-manager.socket ++Also=pipewire.socket pipewire-pulse.socket pipewire-manager.socket WantedBy=default.target -diff -rupN pipewire-0.3.84.orig/src/daemon/systemd/system/pipewire.socket pipewire-0.3.84/src/daemon/systemd/system/pipewire.socket ---- pipewire-0.3.84.orig/src/daemon/systemd/system/pipewire.socket 2023-11-13 16:35:56.502690919 +0000 -+++ pipewire-0.3.84/src/daemon/systemd/system/pipewire.socket 2023-11-13 16:36:58.434228383 +0000 -@@ -5,8 +5,8 @@ Description=PipeWire Multimedia System S +diff -rupN pipewire-1.0.0.orig/src/daemon/systemd/system/pipewire.socket pipewire-1.0.0/src/daemon/systemd/system/pipewire.socket +--- pipewire-1.0.0.orig/src/daemon/systemd/system/pipewire.socket 2023-12-29 13:41:35.329947857 +0000 ++++ pipewire-1.0.0/src/daemon/systemd/system/pipewire.socket 2023-12-29 13:44:04.291208172 +0000 +@@ -4,8 +4,8 @@ Description=PipeWire Multimedia System S + [Socket] Priority=6 ListenStream=%t/pipewire/pipewire-0 - ListenStream=%t/pipewire/pipewire-0-manager -SocketUser=pipewire -SocketGroup=pipewire +SocketUser=root diff --git a/packages/audio/pipewire/patches/002-revert-pollfd.patch b/packages/audio/pipewire/patches/002-revert-pollfd.patch new file mode 100644 index 000000000..ddea2e936 --- /dev/null +++ b/packages/audio/pipewire/patches/002-revert-pollfd.patch @@ -0,0 +1,106 @@ +diff -rupN pipewire-1.0.1.orig/pipewire-alsa/alsa-plugins/pcm_pipewire.c pipewire-1.0.1/pipewire-alsa/alsa-plugins/pcm_pipewire.c +--- pipewire-1.0.1.orig/pipewire-alsa/alsa-plugins/pcm_pipewire.c 2024-01-23 20:57:27.818081461 +0000 ++++ pipewire-1.0.1/pipewire-alsa/alsa-plugins/pcm_pipewire.c 2024-01-23 20:57:56.203633317 +0000 +@@ -89,7 +89,7 @@ typedef struct { + + static int snd_pcm_pipewire_stop(snd_pcm_ioplug_t *io); + +-static int update_active(snd_pcm_ioplug_t *io) ++static int check_active(snd_pcm_ioplug_t *io) + { + snd_pcm_pipewire_t *pw = io->private_data; + snd_pcm_sframes_t avail; +@@ -97,10 +97,7 @@ static int update_active(snd_pcm_ioplug_ + + avail = snd_pcm_ioplug_avail(io, pw->hw_ptr, io->appl_ptr); + +- if (pw->error > 0) { +- active = true; +- } +- else if (io->state == SND_PCM_STATE_DRAINING) { ++ if (io->state == SND_PCM_STATE_DRAINING) { + active = pw->drained; + } + else if (avail >= 0 && avail < (snd_pcm_sframes_t)pw->min_avail) { +@@ -108,27 +105,33 @@ static int update_active(snd_pcm_ioplug_ + } + else if (avail >= (snd_pcm_sframes_t)pw->min_avail) { + active = true; +- } +- else { ++ } else { + active = false; + } + if (pw->active != active) { +- uint64_t val; +- + pw_log_trace("%p: avail:%lu min-avail:%lu state:%s hw:%lu appl:%lu active:%d->%d state:%s", + pw, avail, pw->min_avail, snd_pcm_state_name(io->state), + pw->hw_ptr, io->appl_ptr, pw->active, active, + snd_pcm_state_name(io->state)); +- +- pw->active = active; +- if (active) +- spa_system_eventfd_write(pw->system, io->poll_fd, 1); +- else +- spa_system_eventfd_read(pw->system, io->poll_fd, &val); + } + return active; + } + ++ ++static int update_active(snd_pcm_ioplug_t *io) ++{ ++ snd_pcm_pipewire_t *pw = io->private_data; ++ pw->active = check_active(io); ++ uint64_t val; ++ ++ if (pw->active || pw->error < 0) ++ spa_system_eventfd_write(pw->system, io->poll_fd, 1); ++ else ++ spa_system_eventfd_read(pw->system, io->poll_fd, &val); ++ ++ return pw->active; ++} ++ + static void snd_pcm_pipewire_free(snd_pcm_pipewire_t *pw) + { + if (pw == NULL) +@@ -159,6 +162,15 @@ static int snd_pcm_pipewire_close(snd_pc + return 0; + } + ++static int snd_pcm_pipewire_poll_descriptors(snd_pcm_ioplug_t *io, struct pollfd *pfds, unsigned int space) ++{ ++ snd_pcm_pipewire_t *pw = io->private_data; ++ update_active(io); ++ pfds->fd = pw->fd; ++ pfds->events = POLLIN | POLLERR | POLLNVAL; ++ return 1; ++} ++ + static int snd_pcm_pipewire_poll_revents(snd_pcm_ioplug_t *io, + struct pollfd *pfds, unsigned int nfds, + unsigned short *revents) +@@ -171,10 +183,10 @@ static int snd_pcm_pipewire_poll_revents + return pw->error; + + *revents = pfds[0].revents & ~(POLLIN | POLLOUT); +- if (pfds[0].revents & POLLIN && update_active(io)) ++ if (pfds[0].revents & POLLIN && check_active(io)) { + *revents |= (io->stream == SND_PCM_STREAM_PLAYBACK) ? POLLOUT : POLLIN; +- +- pw_log_trace_fp("poll %d", *revents); ++ update_active(io); ++ } + + return 0; + } +@@ -899,6 +911,7 @@ static snd_pcm_ioplug_callback_t pipewir + .delay = snd_pcm_pipewire_delay, + .drain = snd_pcm_pipewire_drain, + .prepare = snd_pcm_pipewire_prepare, ++ .poll_descriptors = snd_pcm_pipewire_poll_descriptors, + .poll_revents = snd_pcm_pipewire_poll_revents, + .hw_params = snd_pcm_pipewire_hw_params, + .sw_params = snd_pcm_pipewire_sw_params, diff --git a/packages/audio/pulseaudio/package.mk b/packages/audio/pulseaudio/package.mk index 0cee45008..b3005ab5c 100644 --- a/packages/audio/pulseaudio/package.mk +++ b/packages/audio/pulseaudio/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="pulseaudio" -PKG_VERSION="16.1" +PKG_VERSION="17.0" PKG_LICENSE="GPL" PKG_SITE="http://pulseaudio.org/" PKG_URL="http://www.freedesktop.org/software/pulseaudio/releases/${PKG_NAME}-${PKG_VERSION}.tar.xz" diff --git a/packages/audio/wireplumber/package.mk b/packages/audio/wireplumber/package.mk index 231f3b1cd..e048dca17 100644 --- a/packages/audio/wireplumber/package.mk +++ b/packages/audio/wireplumber/package.mk @@ -2,7 +2,7 @@ # Copyright (C) 2022-present Team LibreELEC (https://libreelec.tv) PKG_NAME="wireplumber" -PKG_VERSION="0.4.15" +PKG_VERSION="0.4.17" PKG_LICENSE="MIT" PKG_SITE="https://gitlab.freedesktop.org/pipewire/wireplumber" PKG_URL="https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.gz" @@ -21,6 +21,7 @@ PKG_MESON_OPTS_TARGET="-Dintrospection=disabled \ post_makeinstall_target() { + mkdir -p ${INSTALL}/usr/share/wireplumber/{main.lua.d,bluetooth.lua.d} # ref https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/0da29f38181e391160fa8702623050b8544ec775 cat > ${INSTALL}/usr/share/wireplumber/main.lua.d/89-disable-session-dbus-dependent-features.lua << EOF alsa_monitor.properties["alsa.reserve"] = false diff --git a/packages/emulators/standalone/retroarch/patches/0007-xkb-fix.patch b/packages/emulators/standalone/retroarch/patches/0007-xkb-fix.patch deleted file mode 100644 index 630547b0e..000000000 --- a/packages/emulators/standalone/retroarch/patches/0007-xkb-fix.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c -index bcdacb60a6..d2f00114bd 100644 ---- a/input/drivers/udev_input.c -+++ b/input/drivers/udev_input.c -@@ -76,14 +76,14 @@ - #include "../../retroarch.h" - #include "../../verbosity.h" - --#if defined(HAVE_XKBCOMMON) && defined(HAVE_KMS) -+#if defined(HAVE_XKBCOMMON) - #define UDEV_XKB_HANDLING - #endif - - /* Force UDEV_XKB_HANDLING for Lakka */ - #ifdef HAVE_LAKKA - #ifndef UDEV_XKB_HANDLING --#define UDEV_XKB_HANDLING -+#undef UDEV_XKB_HANDLING - #endif - #endif - -@@ -1402,7 +1402,7 @@ - /* Force xkb_handling on Lakka */ - udev->xkb_handling = true; - #else -- udev->xkb_handling = string_is_equal(ctx_ident.ident, "kms"); -+ udev->xkb_handling = true; //string_is_equal(ctx_ident.ident, "kms"); - #endif /* HAVE_LAKKA */ - #endif - diff --git a/packages/hardware/quirks/autostart/095-turbo-mode b/packages/hardware/quirks/autostart/095-turbo-mode new file mode 100644 index 000000000..2d063b7dd --- /dev/null +++ b/packages/hardware/quirks/autostart/095-turbo-mode @@ -0,0 +1,16 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2024-present JELOS (https://github.com/JustEnoughLinuxOS) + +. /etc/profile.d/001-functions + +# Get Turbo Mode state. +TURBO_MODE_STATE=$(get_setting "enable.turbo-mode") +if [ ! -n "${TURBO_MODE_STATE}" ]; then + TURBO_MODE_STATE=0 + set_setting "enable.turbo-mode" "0" +fi + +# Set turbo-mode at boot +echo ${TURBO_MODE_STATE} > /sys/devices/system/cpu/cpufreq/boost diff --git a/packages/hardware/quirks/devices/AYANEO AIR Plus/010-dpms b/packages/hardware/quirks/devices/AYANEO AIR Plus/010-dpms new file mode 100644 index 000000000..f4a112017 --- /dev/null +++ b/packages/hardware/quirks/devices/AYANEO AIR Plus/010-dpms @@ -0,0 +1,8 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +### Set the default device configuration +cat <>/storage/.config/profile.d/001-device_config +DEVICE_SLEEP_DPMS="false" +EOF diff --git a/packages/hardware/quirks/devices/AYANEO AIR Plus/bin/ledcontrol b/packages/hardware/quirks/devices/AYANEO AIR Plus/bin/ledcontrol index 3c301539b..4a68c19e5 100755 --- a/packages/hardware/quirks/devices/AYANEO AIR Plus/bin/ledcontrol +++ b/packages/hardware/quirks/devices/AYANEO AIR Plus/bin/ledcontrol @@ -303,6 +303,9 @@ case ${LEDBRIGHTNESS} in esac case ${1} in + poweroff) + led_state 0x31 + ;; off) led_state 0x31 set_setting led.color off diff --git a/packages/hardware/quirks/devices/AYANEO AIR/010-dpms b/packages/hardware/quirks/devices/AYANEO AIR/010-dpms new file mode 100644 index 000000000..f4a112017 --- /dev/null +++ b/packages/hardware/quirks/devices/AYANEO AIR/010-dpms @@ -0,0 +1,8 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +### Set the default device configuration +cat <>/storage/.config/profile.d/001-device_config +DEVICE_SLEEP_DPMS="false" +EOF diff --git a/packages/hardware/quirks/devices/AYANEO AIR/bin/ledcontrol b/packages/hardware/quirks/devices/AYANEO AIR/bin/ledcontrol index ba9bd8747..83da486db 100755 --- a/packages/hardware/quirks/devices/AYANEO AIR/bin/ledcontrol +++ b/packages/hardware/quirks/devices/AYANEO AIR/bin/ledcontrol @@ -157,6 +157,9 @@ case $1 in color 1 ${LEDBRIGHTNESS} set_setting led.color purple ;; + poweroff) + off + ;; off) off set_setting led.color off diff --git a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/ledcontrol b/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/ledcontrol index ba9bd8747..83da486db 100755 --- a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/ledcontrol +++ b/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/ledcontrol @@ -157,6 +157,9 @@ case $1 in color 1 ${LEDBRIGHTNESS} set_setting led.color purple ;; + poweroff) + off + ;; off) off set_setting led.color off diff --git a/packages/hardware/quirks/devices/ayn Loki Max/010-dpms b/packages/hardware/quirks/devices/ayn Loki Max/010-dpms new file mode 100755 index 000000000..ca371e8a2 --- /dev/null +++ b/packages/hardware/quirks/devices/ayn Loki Max/010-dpms @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +cat </storage/.config/profile.d/010-dpms +DEVICE_SLEEP_DPMS="false" +EOF diff --git a/packages/hardware/quirks/devices/ayn Loki Max/bin/ledcontrol b/packages/hardware/quirks/devices/ayn Loki Max/bin/ledcontrol index c023d5fa8..866931afc 100755 --- a/packages/hardware/quirks/devices/ayn Loki Max/bin/ledcontrol +++ b/packages/hardware/quirks/devices/ayn Loki Max/bin/ledcontrol @@ -151,6 +151,9 @@ case $1 in ec_save set_setting led.color white ;; + poweroff) + off + ;; off) off set_setting led.color off diff --git a/packages/hardware/quirks/devices/ayn Loki Zero/001-device_config b/packages/hardware/quirks/devices/ayn Loki Zero/001-device_config old mode 100644 new mode 100755 index 1ab12d92f..123af288c --- a/packages/hardware/quirks/devices/ayn Loki Zero/001-device_config +++ b/packages/hardware/quirks/devices/ayn Loki Zero/001-device_config @@ -7,9 +7,6 @@ ### Set the default device configuration cat </storage/.config/profile.d/001-device_config DEVICE_BASE_TDP="6w" -DEVICE_LED_CONTROL="false" -DEVICE_LED_BRIGHTNESS="false" -DEVICE_HAS_FAN="false" DEVICE_VOLUMECTL="true" DEVICE_BRIGHTNESS="hardware" EOF diff --git a/packages/hardware/quirks/devices/ayn Loki Zero/010-dpms b/packages/hardware/quirks/devices/ayn Loki Zero/010-dpms new file mode 100755 index 000000000..ca371e8a2 --- /dev/null +++ b/packages/hardware/quirks/devices/ayn Loki Zero/010-dpms @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +cat </storage/.config/profile.d/010-dpms +DEVICE_SLEEP_DPMS="false" +EOF diff --git a/packages/hardware/quirks/devices/ayn Loki Zero/020-audio_latency b/packages/hardware/quirks/devices/ayn Loki Zero/020-audio_latency old mode 100644 new mode 100755 diff --git a/packages/hardware/quirks/devices/ayn Loki Zero/bin/ledcontrol b/packages/hardware/quirks/devices/ayn Loki Zero/bin/ledcontrol index c023d5fa8..866931afc 100755 --- a/packages/hardware/quirks/devices/ayn Loki Zero/bin/ledcontrol +++ b/packages/hardware/quirks/devices/ayn Loki Zero/bin/ledcontrol @@ -151,6 +151,9 @@ case $1 in ec_save set_setting led.color white ;; + poweroff) + off + ;; off) off set_setting led.color off diff --git a/packages/hardware/quirks/package.mk b/packages/hardware/quirks/package.mk index cff5bbd52..91053eba9 100644 --- a/packages/hardware/quirks/package.mk +++ b/packages/hardware/quirks/package.mk @@ -22,3 +22,7 @@ makeinstall_target() { fi chmod -R 0755 ${INSTALL}/usr/lib/autostart/quirks } + +post_install() { + enable_service led-poweroff.service +} diff --git a/packages/hardware/quirks/platforms/AMD64/001-device_config b/packages/hardware/quirks/platforms/AMD64/001-device_config index 309b6dd55..29d2bef44 100755 --- a/packages/hardware/quirks/platforms/AMD64/001-device_config +++ b/packages/hardware/quirks/platforms/AMD64/001-device_config @@ -7,9 +7,6 @@ ### Set the default device configuration cat </storage/.config/profile.d/001-device_config DEVICE_BASE_TDP="15w" -DEVICE_LED_CONTROL="false" -DEVICE_LED_BRIGHTNESS="false" -DEVICE_HAS_FAN="false" DEVICE_VOLUMECTL="true" DEVICE_BRIGHTNESS="hardware" EOF diff --git a/packages/hardware/quirks/platforms/AMD64/010-dpms b/packages/hardware/quirks/platforms/AMD64/010-dpms new file mode 100755 index 000000000..a13917d3e --- /dev/null +++ b/packages/hardware/quirks/platforms/AMD64/010-dpms @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +cat </storage/.config/profile.d/010-dpms +DEVICE_SLEEP_DPMS="true" +EOF diff --git a/packages/hardware/quirks/platforms/AMD64/010-led_control b/packages/hardware/quirks/platforms/AMD64/010-led_control new file mode 100755 index 000000000..905d0dbbe --- /dev/null +++ b/packages/hardware/quirks/platforms/AMD64/010-led_control @@ -0,0 +1,11 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +. /etc/profile.d/001-functions + +### Set the default device configuration +cat </storage/.config/profile.d/010-led_control +DEVICE_LED_CONTROL="false" +DEVICE_LED_BRIGHTNESS="false" +EOF diff --git a/packages/hardware/quirks/platforms/AMD64/020-fan_control b/packages/hardware/quirks/platforms/AMD64/020-fan_control new file mode 100755 index 000000000..eb4ddf9a9 --- /dev/null +++ b/packages/hardware/quirks/platforms/AMD64/020-fan_control @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) + +cat </storage/.config/profile.d/020-fan_control +DEVICE_HAS_FAN="false" +EOF diff --git a/packages/hardware/quirks/platforms/AMD64/sleep.d/post/001-dpms b/packages/hardware/quirks/platforms/AMD64/sleep.d/post/001-dpms new file mode 100755 index 000000000..5a3e11088 --- /dev/null +++ b/packages/hardware/quirks/platforms/AMD64/sleep.d/post/001-dpms @@ -0,0 +1,10 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS) + +. /etc/profile.d/001-functions + +if [ "${DEVICE_SLEEP_DPMS}" = "true" ] +then + dpms-client -m on & +fi diff --git a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/post/001-dpms b/packages/hardware/quirks/platforms/AMD64/sleep.d/post/002-ledcontrol similarity index 54% rename from packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/post/001-dpms rename to packages/hardware/quirks/platforms/AMD64/sleep.d/post/002-ledcontrol index 347ca4593..7f7d042f9 100755 --- a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/post/001-dpms +++ b/packages/hardware/quirks/platforms/AMD64/sleep.d/post/002-ledcontrol @@ -2,6 +2,9 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS) -. /etc/profile +. /etc/profile.d/001-functions -dpms-client -m on +if [ "${DEVICE_LED_CONTROL}" = "true" ] +then + ledcontrol & +fi diff --git a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/pre/001-dpms b/packages/hardware/quirks/platforms/AMD64/sleep.d/pre/001-dpms similarity index 53% rename from packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/pre/001-dpms rename to packages/hardware/quirks/platforms/AMD64/sleep.d/pre/001-dpms index ad3d488f2..1da07fab7 100755 --- a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/pre/001-dpms +++ b/packages/hardware/quirks/platforms/AMD64/sleep.d/pre/001-dpms @@ -2,6 +2,9 @@ # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS) -. /etc/profile +. /etc/profile.d/001-functions -dpms-client -m off +if [ "${DEVICE_SLEEP_DPMS}" = "true" ] +then + dpms-client -m off +fi diff --git a/packages/hardware/quirks/platforms/AMD64/sleep.d/pre/002-ledcontrol b/packages/hardware/quirks/platforms/AMD64/sleep.d/pre/002-ledcontrol new file mode 100755 index 000000000..62a728258 --- /dev/null +++ b/packages/hardware/quirks/platforms/AMD64/sleep.d/pre/002-ledcontrol @@ -0,0 +1,10 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS) + +. /etc/profile.d/001-functions + +if [ "${DEVICE_LED_CONTROL}" = "true" ] +then + ledcontrol poweroff +fi diff --git a/packages/hardware/quirks/platforms/RK3326/002-turbo-mode_config b/packages/hardware/quirks/platforms/RK3326/002-turbo-mode_config new file mode 100644 index 000000000..e78c24e2f --- /dev/null +++ b/packages/hardware/quirks/platforms/RK3326/002-turbo-mode_config @@ -0,0 +1,7 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS) + +cat </storage/.config/profile.d/002-turbo-mode_config +DEVICE_TURBO_MODE="true" +EOF diff --git a/packages/hardware/quirks/profile.d/999-export b/packages/hardware/quirks/profile.d/999-export index 95433c38e..00bcb3509 100755 --- a/packages/hardware/quirks/profile.d/999-export +++ b/packages/hardware/quirks/profile.d/999-export @@ -37,8 +37,10 @@ export SLOW_CORES \ DEVICE_PWM_FAN \ DEVICE_PWM_MOTOR \ DEVICE_ROTATED_SDL \ + DEVICE_SLEEP_DPMS \ DEVICE_SW_HP_SWITCH \ DEVICE_TEMP_SENSOR \ + DEVICE_TURBO_MODE \ DEVICE_VOLUME \ DEVICE_VOLUMECTL \ DEVICE_WIFI \ diff --git a/packages/hardware/quirks/system.d/led-poweroff.service b/packages/hardware/quirks/system.d/led-poweroff.service new file mode 100644 index 000000000..e32d6c84e --- /dev/null +++ b/packages/hardware/quirks/system.d/led-poweroff.service @@ -0,0 +1,12 @@ +[Unit] +Description=Power LEDs off before shutting down. +After=multi-user.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/bin/true +ExecStop=/usr/bin/ledcontrol poweroff + +[Install] +WantedBy=multi-user.target diff --git a/packages/jelos/sources/scripts/factoryreset b/packages/jelos/sources/scripts/factoryreset index 67c2efcfd..0f28cd0a4 100755 --- a/packages/jelos/sources/scripts/factoryreset +++ b/packages/jelos/sources/scripts/factoryreset @@ -22,13 +22,13 @@ case "${1}" in systemctl reboot ;; "ALL") - swapoff -a - umount /storage/roms ||: - umount /storage/games-external ||: + swapoff -a 2>/dev/null + umount /storage/roms 2>/dev/null ||: + umount /storage/games-external 2>/dev/null ||: cd / - find /storage -mindepth 1 \( ! -regex '^/storage/.update.*' -a ! -regex '^/storage/roms.*' -a ! -regex '^/storage/games-.*' \) -delete + find /storage -mindepth 1 \( ! -regex '^/storage/.update.*' -a ! -regex '^/storage/roms.*' -a ! -regex '^/storage/games-.*' \) -delete 2>/dev/null mkdir /storage/.config/ - sync + sync 2>/dev/null systemctl reboot ;; esac diff --git a/packages/kernel/linux-firmware/kernel-firmware/package.mk b/packages/kernel/linux-firmware/kernel-firmware/package.mk index 794b5d98c..e7f40b781 100644 --- a/packages/kernel/linux-firmware/kernel-firmware/package.mk +++ b/packages/kernel/linux-firmware/kernel-firmware/package.mk @@ -2,10 +2,10 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="kernel-firmware" -PKG_VERSION="20231211" +PKG_VERSION="20240115" PKG_LICENSE="other" PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/" -PKG_URL="https://cdn.kernel.org/pub/linux/kernel/firmware/linux-firmware-${PKG_VERSION}.tar.xz" +PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-${PKG_VERSION}.tar.gz" PKG_NEED_UNPACK="${PROJECT_DIR}/${PROJECT}/packages/${PKG_NAME} ${PROJECT_DIR}/${PROJECT}/devices/${DEVICE}/packages/${PKG_NAME}" PKG_LONGDESC="kernel-firmware: kernel related firmware" PKG_TOOLCHAIN="manual" diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk index 539c3c994..60d87bfe0 100644 --- a/packages/kernel/linux/package.mk +++ b/packages/kernel/linux/package.mk @@ -4,7 +4,7 @@ PKG_NAME="linux" PKG_LICENSE="GPL" -PKG_VERSION="6.7.1" +PKG_VERSION="6.6.13" PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host rdfind:host" diff --git a/packages/kernel/linux/patches/AMD64/002-LegionGO-rotation-quirk.patch b/packages/kernel/linux/patches/AMD64/002-LegionGO-rotation-quirk.patch index 1bca49a0a..f4b8423eb 100644 --- a/packages/kernel/linux/patches/AMD64/002-LegionGO-rotation-quirk.patch +++ b/packages/kernel/linux/patches/AMD64/002-LegionGO-rotation-quirk.patch @@ -1,533 +1,17 @@ -diff -rupN linux-6.7-rc8.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux-6.7-rc8.panel/drivers/gpu/drm/drm_panel_orientation_quirks.c ---- linux-6.7-rc8.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-01-04 23:15:09.706448784 +0000 -+++ linux-6.7-rc8.panel/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-01-04 23:20:09.071025713 +0000 +diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drivers/gpu/drm/drm_panel_orientation_quirks.c +--- linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-11-28 17:20:18.000000000 +0000 ++++ linux/drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-11-30 15:33:54.949480402 +0000 @@ -336,6 +336,13 @@ static const struct dmi_system_id orient DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Duet 3 10IGL5"), }, .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Lenovo Legion Go */ ++ }, { /* Lenovo Legion Go */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "83E1"), + DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Legion Go 8APU1"), + }, + .driver_data = (void *)&lcd1600x2560_leftside_up, - }, { /* Lenovo Legion Go 8APU1 */ + }, { /* Lenovo Yoga Book X90F / X90L */ .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -diff -rupN linux-6.7-rc8.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c.orig linux-6.7-rc8.panel/drivers/gpu/drm/drm_panel_orientation_quirks.c.orig ---- linux-6.7-rc8.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c.orig 1970-01-01 00:00:00.000000000 +0000 -+++ linux-6.7-rc8.panel/drivers/gpu/drm/drm_panel_orientation_quirks.c.orig 2024-01-04 23:18:55.450922222 +0000 -@@ -0,0 +1,492 @@ -+/* SPDX-License-Identifier: MIT */ -+/* -+ * drm_panel_orientation_quirks.c -- Quirks for non-normal panel orientation -+ * -+ * Copyright (C) 2017 Hans de Goede -+ * -+ * Note the quirks in this file are shared with fbdev/efifb and as such -+ * must not depend on other drm code. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#ifdef CONFIG_DMI -+ -+/* -+ * Some x86 clamshell design devices use portrait tablet screens and a display -+ * engine which cannot rotate in hardware, so we need to rotate the fbcon to -+ * compensate. Unfortunately these (cheap) devices also typically have quite -+ * generic DMI data, so we match on a combination of DMI data, screen resolution -+ * and a list of known BIOS dates to avoid false positives. -+ */ -+ -+struct drm_dmi_panel_orientation_data { -+ int width; -+ int height; -+ const char * const *bios_dates; -+ int orientation; -+}; -+ -+static const struct drm_dmi_panel_orientation_data gpd_micropc = { -+ .width = 720, -+ .height = 1280, -+ .bios_dates = (const char * const []){ "04/26/2019", -+ NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data gpd_onemix2s = { -+ .width = 1200, -+ .height = 1920, -+ .bios_dates = (const char * const []){ "05/21/2018", "10/26/2018", -+ "03/04/2019", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data gpd_pocket = { -+ .width = 1200, -+ .height = 1920, -+ .bios_dates = (const char * const []){ "05/26/2017", "06/28/2017", -+ "07/05/2017", "08/07/2017", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data gpd_pocket2 = { -+ .width = 1200, -+ .height = 1920, -+ .bios_dates = (const char * const []){ "06/28/2018", "08/28/2018", -+ "12/07/2018", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data gpd_win = { -+ .width = 720, -+ .height = 1280, -+ .bios_dates = (const char * const []){ -+ "10/25/2016", "11/18/2016", "12/23/2016", "12/26/2016", -+ "02/21/2017", "03/20/2017", "05/25/2017", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data gpd_win2 = { -+ .width = 720, -+ .height = 1280, -+ .bios_dates = (const char * const []){ -+ "12/07/2017", "05/24/2018", "06/29/2018", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data itworks_tw891 = { -+ .width = 800, -+ .height = 1280, -+ .bios_dates = (const char * const []){ "10/16/2015", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data onegx1_pro = { -+ .width = 1200, -+ .height = 1920, -+ .bios_dates = (const char * const []){ "12/17/2020", NULL }, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd720x1280_rightside_up = { -+ .width = 720, -+ .height = 1280, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd800x1280_leftside_up = { -+ .width = 800, -+ .height = 1280, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd800x1280_rightside_up = { -+ .width = 800, -+ .height = 1280, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd1080x1920_leftside_up = { -+ .width = 1080, -+ .height = 1920, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd1200x1920_rightside_up = { -+ .width = 1200, -+ .height = 1920, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd1280x1920_rightside_up = { -+ .width = 1280, -+ .height = 1920, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd1600x2560_leftside_up = { -+ .width = 1600, -+ .height = 2560, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, -+}; -+ -+static const struct drm_dmi_panel_orientation_data lcd1600x2560_rightside_up = { -+ .width = 1600, -+ .height = 2560, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, -+}; -+ -+static const struct dmi_system_id orientation_data[] = { -+ { /* Acer One 10 (S1003) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Acer Switch V 10 (SW5-017) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Anbernic Win600 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Anbernic"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Win600"), -+ }, -+ .driver_data = (void *)&lcd720x1280_rightside_up, -+ }, { /* Asus T100HA */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100HAN"), -+ }, -+ .driver_data = (void *)&lcd800x1280_leftside_up, -+ }, { /* Asus T101HA */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T101HA"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Asus T103HAF */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* AYA NEO 2021 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYADEVICE"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* AYA NEO AIR */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "AIR"), -+ }, -+ .driver_data = (void *)&lcd1080x1920_leftside_up, -+ }, { /* AYA NEO NEXT */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"), -+ DMI_MATCH(DMI_BOARD_NAME, "NEXT"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Chuwi HiBook (CWI514) */ -+ .matches = { -+ DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"), -+ DMI_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"), -+ /* Above matches are too generic, add bios-date match */ -+ DMI_MATCH(DMI_BIOS_DATE, "05/07/2016"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Chuwi Hi10 Pro (CWI529) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Hampoo"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Hi10 pro tablet"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Dynabook K50 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Dynabook Inc."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "dynabook K50/FR"), -+ }, -+ .driver_data = (void *)&lcd800x1280_leftside_up, -+ }, { /* GPD MicroPC (generic strings, also match on bios date) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_micropc, -+ }, { /* GPD MicroPC (later BIOS versions with proper DMI strings) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "MicroPC"), -+ }, -+ .driver_data = (void *)&lcd720x1280_rightside_up, -+ }, { /* GPD Win Max */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1619-01"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* -+ * GPD Pocket, note that the DMI data is less generic then -+ * it seems, devices with a board-vendor of "AMI Corporation" -+ * are quite rare, as are devices which have both board- *and* -+ * product-id set to "Default String" -+ */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_pocket, -+ }, { /* GPD Pocket 2 (generic strings, also match on bios date) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_pocket2, -+ }, { /* GPD Win (same note on DMI match as GPD Pocket) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_win, -+ }, { /* GPD Win 2 (too generic strings, also match on bios date) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_win2, -+ }, { /* GPD Win 3 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "G1618-03") -+ }, -+ .driver_data = (void *)&lcd720x1280_rightside_up, -+ }, { /* I.T.Works TW891 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "To be filled by O.E.M."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "TW891"), -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "To be filled by O.E.M."), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "TW891"), -+ }, -+ .driver_data = (void *)&itworks_tw891, -+ }, { /* KD Kurio Smart C15200 2-in-1 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "KD Interactive"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Kurio Smart"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "KDM960BCP"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* -+ * Lenovo Ideapad Miix 310 laptop, only some production batches -+ * have a portrait screen, the resolution checks makes the quirk -+ * apply only to those batches. -+ */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "80SG"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "MIIX 310-10ICR"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Lenovo Ideapad Miix 320 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "80XF"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Lenovo Ideapad D330-10IGM (HD) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Lenovo Ideapad D330-10IGM (FHD) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Lenovo Ideapad D330-10IGL (HD) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGL"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* Lenovo IdeaPad Duet 3 10IGL5 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Duet 3 10IGL5"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Lenovo Legion Go 8APU1 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Legion Go 8APU1"), -+ }, -+ .driver_data = (void *)&lcd1600x2560_leftside_up, -+ }, { /* Lenovo Yoga Book X90F / X90L */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Lenovo Yoga Book X91F / X91L */ -+ .matches = { -+ /* Non exact match to match F + L versions */ -+ DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Lenovo Yoga Tablet 2 830F / 830L */ -+ .matches = { -+ /* -+ * Note this also matches the Lenovo Yoga Tablet 2 1050F/L -+ * since that uses the same mainboard. The resolution match -+ * will limit this to only matching on the 830F/L. Neither has -+ * any external video outputs so those are not a concern. -+ */ -+ DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."), -+ DMI_MATCH(DMI_PRODUCT_NAME, "VALLEYVIEW C0 PLATFORM"), -+ DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"), -+ /* Partial match on beginning of BIOS version */ -+ DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* Lenovo Yoga Tab 3 X90F */ -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"), -+ DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"), -+ }, -+ .driver_data = (void *)&lcd1600x2560_rightside_up, -+ }, { /* Nanote UMPC-01 */ -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "RWC CO.,LTD"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "UMPC-01"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -+ }, { /* OneGX1 Pro */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SYSTEM_PRODUCT_NAME"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"), -+ }, -+ .driver_data = (void *)&onegx1_pro, -+ }, { /* OneXPlayer */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"), -+ }, -+ .driver_data = (void *)&lcd1600x2560_leftside_up, -+ }, { /* Samsung GalaxyBook 10.6 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Galaxy Book 10.6"), -+ }, -+ .driver_data = (void *)&lcd1280x1920_rightside_up, -+ }, { /* Valve Steam Deck */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Valve"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Jupiter"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "1"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* VIOS LTH17 */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VIOS"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "LTH17"), -+ }, -+ .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* One Mix 2S (generic strings, also match on bios date) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Default string"), -+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), -+ }, -+ .driver_data = (void *)&gpd_onemix2s, -+ }, -+ {} -+}; -+ -+/** -+ * drm_get_panel_orientation_quirk - Check for panel orientation quirks -+ * @width: width in pixels of the panel -+ * @height: height in pixels of the panel -+ * -+ * This function checks for platform specific (e.g. DMI based) quirks -+ * providing info on panel_orientation for systems where this cannot be -+ * probed from the hard-/firm-ware. To avoid false-positive this function -+ * takes the panel resolution as argument and checks that against the -+ * resolution expected by the quirk-table entry. -+ * -+ * Note this function is also used outside of the drm-subsys, by for example -+ * the efifb code. Because of this this function gets compiled into its own -+ * kernel-module when built as a module. -+ * -+ * Returns: -+ * A DRM_MODE_PANEL_ORIENTATION_* value if there is a quirk for this system, -+ * or DRM_MODE_PANEL_ORIENTATION_UNKNOWN if there is no quirk. -+ */ -+int drm_get_panel_orientation_quirk(int width, int height) -+{ -+ const struct dmi_system_id *match; -+ const struct drm_dmi_panel_orientation_data *data; -+ const char *bios_date; -+ int i; -+ -+ for (match = dmi_first_match(orientation_data); -+ match; -+ match = dmi_first_match(match + 1)) { -+ data = match->driver_data; -+ -+ if (data->width != width || -+ data->height != height) -+ continue; -+ -+ if (!data->bios_dates) -+ return data->orientation; -+ -+ bios_date = dmi_get_system_info(DMI_BIOS_DATE); -+ if (!bios_date) -+ continue; -+ -+ i = match_string(data->bios_dates, -1, bios_date); -+ if (i >= 0) -+ return data->orientation; -+ } -+ -+ return DRM_MODE_PANEL_ORIENTATION_UNKNOWN; -+} -+EXPORT_SYMBOL(drm_get_panel_orientation_quirk); -+ -+#else -+ -+/* There are no quirks for non x86 devices yet */ -+int drm_get_panel_orientation_quirk(int width, int height) -+{ -+ return DRM_MODE_PANEL_ORIENTATION_UNKNOWN; -+} -+EXPORT_SYMBOL(drm_get_panel_orientation_quirk); -+ -+#endif -+ -+MODULE_LICENSE("Dual MIT/GPL"); -diff -rupN linux-6.7-rc8.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c.rej linux-6.7-rc8.panel/drivers/gpu/drm/drm_panel_orientation_quirks.c.rej ---- linux-6.7-rc8.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c.rej 1970-01-01 00:00:00.000000000 +0000 -+++ linux-6.7-rc8.panel/drivers/gpu/drm/drm_panel_orientation_quirks.c.rej 2024-01-04 23:18:55.450922222 +0000 -@@ -0,0 +1,16 @@ -+--- drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-11-28 17:20:18.000000000 +0000 -++++ drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-11-30 15:33:54.949480402 +0000 -+@@ -336,6 +336,13 @@ static const struct dmi_system_id orient -+ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Duet 3 10IGL5"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_rightside_up, -++ }, { /* Lenovo Legion Go */ -++ .matches = { -++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), -++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "83E1"), -++ DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Legion Go 8APU1"), -++ }, -++ .driver_data = (void *)&lcd1600x2560_leftside_up, -+ }, { /* Lenovo Yoga Book X90F / X90L */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), diff --git a/packages/kernel/linux/patches/AMD64/002-display-quirks.patch b/packages/kernel/linux/patches/AMD64/002-display-quirks.patch index 806f3f644..7352a9946 100755 --- a/packages/kernel/linux/patches/AMD64/002-display-quirks.patch +++ b/packages/kernel/linux/patches/AMD64/002-display-quirks.patch @@ -1,7 +1,7 @@ -diff -rupN linux-6.6.9.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux-6.6.9/drivers/gpu/drm/drm_panel_orientation_quirks.c ---- linux-6.6.9.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-01-04 00:22:05.545161814 +0000 -+++ linux-6.6.9/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-01-04 00:23:21.365247268 +0000 -@@ -141,6 +141,12 @@ static const struct drm_dmi_panel_orient +diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drivers/gpu/drm/drm_panel_orientation_quirks.c +--- linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-09-02 07:14:38.000000000 +0000 ++++ linux/drivers/gpu/drm/drm_panel_orientation_quirks.c 2023-09-09 03:24:49.178775423 +0000 +@@ -133,6 +133,12 @@ static const struct drm_dmi_panel_orient .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, }; @@ -14,7 +14,7 @@ diff -rupN linux-6.6.9.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux static const struct dmi_system_id orientation_data[] = { { /* Acer One 10 (S1003) */ .matches = { -@@ -178,13 +184,13 @@ static const struct dmi_system_id orient +@@ -170,13 +176,13 @@ static const struct dmi_system_id orient DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"), }, .driver_data = (void *)&lcd800x1280_rightside_up, @@ -31,7 +31,7 @@ diff -rupN linux-6.6.9.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), DMI_MATCH(DMI_PRODUCT_NAME, "AIR"), -@@ -196,6 +202,30 @@ static const struct dmi_system_id orient +@@ -188,6 +194,30 @@ static const struct dmi_system_id orient DMI_MATCH(DMI_BOARD_NAME, "NEXT"), }, .driver_data = (void *)&lcd800x1280_rightside_up, @@ -41,7 +41,7 @@ diff -rupN linux-6.6.9.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux + DMI_MATCH(DMI_BOARD_NAME, "GEEK"), + }, + .driver_data = (void *)&lcd800x1280_rightside_up, -+ }, { /* AYANEO AYANEO 2, 2S */ ++ }, { /* AYANEO AYANEO 2 */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), + DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"), diff --git a/packages/kernel/linux/patches/AMD64/009-ayaneo-audio.patch b/packages/kernel/linux/patches/AMD64/009-ayaneo-audio.patch new file mode 100644 index 000000000..d8ce9fe35 --- /dev/null +++ b/packages/kernel/linux/patches/AMD64/009-ayaneo-audio.patch @@ -0,0 +1,52 @@ +diff -rupN linux-6.7-rc8.orig/sound/pci/hda/patch_realtek.c linux-6.7-rc8.hda/sound/pci/hda/patch_realtek.c +--- linux-6.7-rc8.orig/sound/pci/hda/patch_realtek.c 2024-01-04 23:15:10.710503820 +0000 ++++ linux-6.7-rc8.hda/sound/pci/hda/patch_realtek.c 2024-01-04 23:23:29.598266931 +0000 +@@ -6550,6 +6550,20 @@ static void alc294_gx502_toggle_output(s + alc_write_coef_idx(codec, 0x10, 0x0a20); + } + ++static void alc269_fixup_headphone_volume(struct hda_codec *codec, ++ const struct hda_fixup *fix, int action) ++{ ++ /* Pin 0x21: Some devices share 0x14 for headphones and speakers. ++ * This will fix ensure these devices have volume controls. */ ++ if (!is_jack_detectable(codec, 0x21)) ++ return; ++ ++ if (action == HDA_FIXUP_ACT_PRE_PROBE) { ++ static const hda_nid_t conn1[] = { 0x02 }; ++ snd_hda_override_conn_list(codec, 0x14, ARRAY_SIZE(conn1), conn1); ++ } ++} ++ + static void alc294_fixup_gx502_hp(struct hda_codec *codec, + const struct hda_fixup *fix, int action) + { +@@ -7235,6 +7249,7 @@ enum { + ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, + ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, + ALC269_FIXUP_DELL4_MIC_NO_PRESENCE_QUIET, ++ ALC269_FIXUP_HEADSET_AYANEO_DEVICES, + ALC269_FIXUP_HEADSET_MODE, + ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, + ALC269_FIXUP_ASPIRE_HEADSET_MIC, +@@ -8391,6 +8406,10 @@ static const struct hda_fixup alc269_fix + .chained = true, + .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE + }, ++ [ALC269_FIXUP_HEADSET_AYANEO_DEVICES] = { ++ .type = HDA_FIXUP_FUNC, ++ .v.func = alc269_fixup_headphone_volume, ++ }, + [ALC256_FIXUP_ASUS_AIO_GPIO2] = { + .type = HDA_FIXUP_FUNC, + /* Set up GPIO2 for the speaker amp */ +@@ -10283,6 +10302,8 @@ static const struct snd_pci_quirk alc269 + SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC), + SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC), + SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC), ++ SND_PCI_QUIRK(0x1f66, 0x0101, "AYANEO Devices", ALC269_FIXUP_HEADSET_AYANEO_DEVICES), ++ SND_PCI_QUIRK(0x1f66, 0x0103, "AYANEO Air Plus", ALC269_FIXUP_HEADSET_AYANEO_DEVICES), + SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO), + SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC), + SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED), diff --git a/packages/network/bluez/autostart/009-bluetooth b/packages/network/bluez/autostart/009-bluetooth index ebccc94d5..60fb5bd92 100755 --- a/packages/network/bluez/autostart/009-bluetooth +++ b/packages/network/bluez/autostart/009-bluetooth @@ -7,6 +7,10 @@ if [ "$(get_setting bluetooth.enabled)" == "1" ] then tocon "Starting bluetooth..." + if [ ! -e "/storage/.cache/services/bluez.conf" ] + then + cp -f /usr/share/services/bluez.conf /storage/.cache/services/bluez.conf + fi nohup systemctl start bluetooth & nohup systemctl start bluetooth-agent & nohup systemctl start bluetoothsense & diff --git a/packages/network/bluez/package.mk b/packages/network/bluez/package.mk index 90d1a22b1..a738d5e17 100644 --- a/packages/network/bluez/package.mk +++ b/packages/network/bluez/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) PKG_NAME="bluez" -PKG_VERSION="5.70" +PKG_VERSION="5.72" PKG_LICENSE="GPL" PKG_SITE="http://www.bluez.org/" PKG_URL="https://www.kernel.org/pub/linux/bluetooth/${PKG_NAME}-${PKG_VERSION}.tar.xz" @@ -71,9 +71,15 @@ post_makeinstall_target() { mkdir -p ${INSTALL}/etc/bluetooth cp src/main.conf ${INSTALL}/etc/bluetooth + cat <${INSTALL}/etc/bluetooth/input.conf +[General] +ClassicBondedOnly=false +EOF + mkdir -p ${INSTALL}/usr/share/services cp -P ${PKG_DIR}/default.d/*.conf ${INSTALL}/usr/share/services + # bluez looks in /etc/firmware/ ln -sf /usr/lib/firmware ${INSTALL}/etc/firmware diff --git a/packages/sysutils/system-utils/package.mk b/packages/sysutils/system-utils/package.mk index a1baf0744..7bf26a40e 100644 --- a/packages/sysutils/system-utils/package.mk +++ b/packages/sysutils/system-utils/package.mk @@ -22,6 +22,7 @@ makeinstall_target() { cp ${PKG_DIR}/sources/scripts/volume_sense ${INSTALL}/usr/bin cp ${PKG_DIR}/sources/scripts/bluetooth_sense ${INSTALL}/usr/bin cp ${PKG_DIR}/sources/scripts/ledcontrol ${INSTALL}/usr/bin + cp ${PKG_DIR}/sources/scripts/turbomode ${INSTALL}/usr/bin if [ -d "${PKG_DIR}/sources/devices/${DEVICE}" ] then cp ${PKG_DIR}/sources/devices/${DEVICE}/* ${INSTALL}/usr/bin diff --git a/packages/sysutils/system-utils/sources/scripts/turbomode b/packages/sysutils/system-utils/sources/scripts/turbomode new file mode 100644 index 000000000..0eeee9388 --- /dev/null +++ b/packages/sysutils/system-utils/sources/scripts/turbomode @@ -0,0 +1,15 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS) + +# Set turbomode state +case $1 in + disable) + echo "0" > /sys/devices/system/cpu/cpufreq/boost + set_setting enable.turbo-mode 0 + ;; + enable) + echo "1" > /sys/devices/system/cpu/cpufreq/boost + set_setting enable.turbo-mode 1 + ;; +esac diff --git a/packages/ui/emulationstation/package.mk b/packages/ui/emulationstation/package.mk index ba2b55005..7bad46104 100644 --- a/packages/ui/emulationstation/package.mk +++ b/packages/ui/emulationstation/package.mk @@ -3,7 +3,7 @@ # Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS) PKG_NAME="emulationstation" -PKG_VERSION="ba5c0f88a21fdd19fe0b0f94e1ff6229fbf682cf" +PKG_VERSION="67e3614fad133fcc414bffed9ed7941bfac3bc05" PKG_GIT_CLONE_BRANCH="main" PKG_REV="1" PKG_ARCH="any" diff --git a/packages/wayland/weston/patches/003-use-old-repaint-behavior.patch b/packages/wayland/weston/patches/003-use-old-repaint-behavior.patch index 6d7bafbe2..a9c0af1b5 100644 --- a/packages/wayland/weston/patches/003-use-old-repaint-behavior.patch +++ b/packages/wayland/weston/patches/003-use-old-repaint-behavior.patch @@ -1,19 +1,12 @@ diff -rupN weston-12.0.3.orig/libweston/compositor.c weston-12.0.3/libweston/compositor.c --- weston-12.0.3.orig/libweston/compositor.c 2024-01-15 15:42:23.723505677 +0000 -+++ weston-12.0.3/libweston/compositor.c 2024-01-20 13:27:54.816568920 +0000 -@@ -3349,10 +3349,13 @@ weston_output_finish_frame(struct weston - * If timestamp of latest vblank is given, it must always go forwards. ++++ weston-12.0.3/libweston/compositor.c 2024-01-24 00:32:15.715324559 +0000 +@@ -3350,7 +3350,7 @@ weston_output_finish_frame(struct weston * If not given, INVALID flag must be set. */ -- if (stamp) -+ /* if (stamp) - assert(timespec_sub_to_nsec(stamp, &output->frame_time) >= 0); + if (stamp) +- assert(timespec_sub_to_nsec(stamp, &output->frame_time) >= 0); ++ assert(timespec_sub_to_nsec(stamp, &output->frame_time) || (presented_flags & WP_PRESENTATION_FEEDBACK_INVALID)); else -- assert(presented_flags & WP_PRESENTATION_FEEDBACK_INVALID); -+ assert(presented_flags & WP_PRESENTATION_FEEDBACK_INVALID); */ -+ -+ assert(output->repaint_status == REPAINT_AWAITING_COMPLETION); -+ assert(stamp || (presented_flags & WP_PRESENTATION_FEEDBACK_INVALID)); - - weston_compositor_read_presentation_clock(compositor, &now); + assert(presented_flags & WP_PRESENTATION_FEEDBACK_INVALID); diff --git a/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-dts.patch b/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-dts.patch index 679f44ca1..a1200ec50 100644 --- a/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-dts.patch +++ b/projects/Rockchip/packages/linux/patches/RK3326/000-rk3326-dts.patch @@ -1,6 +1,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/Makefile linux/arch/arm64/boot/dts/rockchip/Makefile ---- linux.orig/arch/arm64/boot/dts/rockchip/Makefile 2024-01-17 03:47:10.074350115 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/Makefile 2024-01-17 04:01:50.682844812 +0000 +--- linux.orig/arch/arm64/boot/dts/rockchip/Makefile 2024-01-22 23:55:56.423256979 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/Makefile 2024-01-23 03:05:55.471049048 +0000 @@ -9,9 +9,12 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-ro dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-rock-pi-s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb @@ -15,9 +15,9 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/Makefile linux/arch/arm64/boo dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi linux/arch/arm64/boot/dts/rockchip/px30.dtsi ---- linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi 2024-01-17 03:47:10.078350209 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/px30.dtsi 2024-01-17 03:59:58.108276677 +0000 -@@ -114,27 +114,11 @@ +--- linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi 2024-01-22 23:55:56.427257071 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/px30.dtsi 2024-01-23 18:01:18.953774998 +0000 +@@ -114,32 +114,22 @@ compatible = "operating-points-v2"; opp-shared; @@ -45,7 +45,18 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi linux/arch/arm64/bo opp-1296000000 { opp-hz = /bits/ 64 <1296000000>; opp-microvolt = <1350000 1350000 1350000>; -@@ -349,6 +333,32 @@ + clock-latency-ns = <40000>; + }; ++ opp-1416000000 { ++ opp-hz = /bits/ 64 <1416000000>; ++ opp-microvolt = <1350000 1350000 1350000>; ++ clock-latency-ns = <40000>; ++ turbo-mode; ++ }; + }; + + arm-pmu { +@@ -349,6 +339,32 @@ }; }; @@ -78,7 +89,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi linux/arch/arm64/bo pmugrf: syscon@ff010000 { compatible = "rockchip,px30-pmugrf", "syscon", "simple-mfd"; reg = <0x0 0xff010000 0x0 0x1000>; -@@ -1064,20 +1074,12 @@ +@@ -1064,21 +1080,9 @@ gpu_opp_table: opp-table-1 { compatible = "operating-points-v2"; @@ -90,20 +101,22 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/px30.dtsi linux/arch/arm64/bo - opp-hz = /bits/ 64 <300000000>; - opp-microvolt = <975000>; - }; - opp-400000000 { - opp-hz = /bits/ 64 <400000000>; - opp-microvolt = <1050000>; - }; +- opp-400000000 { +- opp-hz = /bits/ 64 <400000000>; +- opp-microvolt = <1050000>; +- }; - opp-480000000 { - opp-hz = /bits/ 64 <480000000>; -+ opp-440000000 { -+ opp-hz = /bits/ 64 <440000000>; - opp-microvolt = <1125000>; +- opp-microvolt = <1125000>; ++ opp-560000000 { ++ opp-hz = /bits/ 64 <560000000>; ++ opp-microvolt = <1150000>; }; }; + diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts linux/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts 2024-01-17 03:47:10.078350209 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts 2024-01-17 03:59:58.108276677 +0000 +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts 2024-01-22 23:55:56.427257071 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts 2024-01-23 03:05:55.471049048 +0000 @@ -12,6 +12,25 @@ model = "Anbernic RG351M"; compatible = "anbernic,rg351m", "rockchip,rk3326"; @@ -156,7 +169,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351m.dts li +}; diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts linux/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts --- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts 1970-01-01 00:00:00.000000000 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts 2024-01-17 03:59:58.108276677 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts 2024-01-23 03:05:55.471049048 +0000 @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* @@ -282,8 +295,9 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts li + }; + }; +}; ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 1969-12-31 19:00:00.000000000 -0500 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 2024-01-19 15:39:57.362135961 -0500 +diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 1970-01-01 00:00:00.000000000 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 2024-01-23 03:05:55.471049048 +0000 @@ -0,0 +1,848 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* @@ -1134,8 +1148,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts li + }; +}; diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi 2024-01-17 03:47:10.078350209 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi 2024-01-17 03:59:58.108276677 +0000 +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi 2024-01-22 23:55:56.427257071 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi 2024-01-23 03:05:55.471049048 +0000 @@ -25,93 +25,40 @@ compatible = "pwm-backlight"; power-supply = <&vcc_bl>; @@ -1292,8 +1306,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go.dtsi linux/a #clock-cells = <1>; #sound-dai-cells = <0>; diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts 2024-01-17 03:47:10.078350209 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts 2024-01-17 03:59:58.108276677 +0000 +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts 2024-01-22 23:55:56.427257071 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts 2024-01-23 03:05:55.471049048 +0000 @@ -16,31 +16,187 @@ mmc1 = &sdio; }; @@ -1575,8 +1589,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2-v11.dts lin <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts 2024-01-17 03:47:10.078350209 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts 2024-01-17 03:59:58.108276677 +0000 +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts 2024-01-22 23:55:56.427257071 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts 2024-01-23 03:05:55.471049048 +0000 @@ -12,30 +12,175 @@ model = "ODROID-GO Advance"; compatible = "hardkernel,rk3326-odroid-go2", "rockchip,rk3326"; @@ -1809,8 +1823,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts linux/a + }; +}; diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts ---- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts 2024-01-17 03:47:10.078350209 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts 2024-01-17 03:59:58.108276677 +0000 +--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts 2024-01-22 23:55:56.427257071 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts 2024-01-23 03:05:55.471049048 +0000 @@ -12,67 +12,196 @@ model = "ODROID-GO Super"; compatible = "hardkernel,rk3326-odroid-go3", "rockchip,rk3326"; @@ -2120,7 +2134,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-odroid-go3.dts linux/a }; diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts linux/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts --- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts 1970-01-01 00:00:00.000000000 +0000 -+++ linux/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts 2024-01-17 03:59:58.108276677 +0000 ++++ linux/arch/arm64/boot/dts/rockchip/rk3326-powkiddy-rgb10.dts 2024-01-23 03:05:55.471049048 +0000 @@ -0,0 +1,280 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*