commit
68414f1bc1
96 changed files with 192230 additions and 2415 deletions
2
.github/workflows/release-dev.yaml
vendored
2
.github/workflows/release-dev.yaml
vendored
|
@ -6,8 +6,6 @@
|
|||
|
||||
name: release-dev
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 12 * * *'
|
||||
workflow_dispatch:
|
||||
env:
|
||||
BRANCH: dev
|
||||
|
|
|
@ -115,6 +115,7 @@ JELOS supports a variety of ARM and Intel/AMD based devices.
|
|||
| AYANEO | [Air / Air Pro](http://jelos.org/devices/ayaneo/air) | Amd Ryzen 5 5560U / AMD Ryzen 7 5825U (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
| AYANEO | [Air Plus](http://jelos.org/devices/ayaneo/air-plus) | Amd Ryzen 7 6800U / (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
| AYANEO | [AYANEO 2](http://jelos.org/devices/ayaneo/ayaneo-2) | Amd Ryzen 7 6800U / (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
| AYANEO | [AYANEO 2S](http://jelos.org/devices/ayaneo/ayaneo-2) | Amd Ryzen 7 7840U / (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
| Ayn | [Loki Zero](http://jelos.org/devices/ayn/loki-zero) | AMD Athlon Silver 3050e (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
| Ayn | [Loki Max](http://jelos.org/devices/ayn/loki-max) | Amd Ryzen 7 6800U / (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
| GPD | [Win 4](http://jelos.org/devices/gpd/win4) | Amd Ryzen 7 6800U / (x86_64) | Mainline Linux | Radeonsi | Weston + Emulation Station |
|
||||
|
|
|
@ -12,3 +12,4 @@ mupen64plus-sa-ui-console #Causes segfaults
|
|||
kronos-sa #using the release version of kronos had better results.
|
||||
retroarch #pinning to release versions for stability.
|
||||
vita3k-sa #Patch updates needed.
|
||||
gzdoom-sa #Stick to release versions.
|
||||
|
|
|
@ -14,7 +14,7 @@ if [ "${TARGET_ARCH}" = "x86_64" ]
|
|||
then
|
||||
PKG_SITE+="qt"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_VERSION="8f2db994068757bead7598a8308c9e839be85e8c"
|
||||
PKG_VERSION="c3e886fbcc4664b7afb5f0062c1558eda02b9001"
|
||||
PKG_DEPENDS_TARGET+=" qt5"
|
||||
PKG_TOOLCHAIN="manual"
|
||||
make_target() {
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="beetle-pce-fast-lr"
|
||||
PKG_VERSION="fe662eb161f73749a372657192c7fe234bc8e3ad"
|
||||
PKG_VERSION="fa2ad8e4ad2c01f2e6dc05e5e9cc3b68153c4d66"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="beetle-pce-lr"
|
||||
PKG_VERSION="65977d85040622d15e96b6aa6581e30e6c6829e8"
|
||||
PKG_VERSION="7f0375608181c02b504d585c788a568522a0606c"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
supafaust_audio_rate = "disabled"
|
||||
supafaust_correct_aspect = "enabled"
|
||||
supafaust_cx4_clock_rate = "100"
|
||||
supafaust_deinterlacer = "bob_offset"
|
||||
supafaust_frame_begin_vblank = "enabled"
|
||||
supafaust_h_filter = "phr256blend_auto512"
|
||||
supafaust_multitap = "disabled"
|
||||
supafaust_pixel_format = "rgb565"
|
||||
supafaust_region = "auto"
|
||||
supafaust_renderer = "mt"
|
||||
supafaust_run_ahead = "disabled"
|
||||
supafaust_slend = "223"
|
||||
supafaust_slendp = "238"
|
||||
supafaust_slstart = "0"
|
||||
supafaust_slstartp = "0"
|
||||
supafaust_superfx_clock_rate = "100"
|
||||
supafaust_superfx_icache = "disabled"
|
||||
supafaust_thread_affinity_emu = "0x3"
|
||||
supafaust_thread_affinity_ppu = "0xc"
|
|
@ -38,4 +38,7 @@ PKG_AUTORECONF="no"
|
|||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/usr/lib/libretro
|
||||
cp ${PKG_BUILD}/mednafen_supafaust_libretro.so ${INSTALL}/usr/lib/libretro/beetle_supafaust_libretro.so
|
||||
|
||||
mkdir -p ${INSTALL}/usr/config/retroarch
|
||||
cp -rf ${PKG_DIR}/config/* ${INSTALL}/usr/config/retroarch/
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="beetle-supergrafx-lr"
|
||||
PKG_VERSION="47c977c169cd60f1518d64ccf1fc83481bf6e869"
|
||||
PKG_VERSION="b30e5619610f9ddba3932a9a45542c1665121502"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="bsnes-lr"
|
||||
PKG_VERSION="370a8642b1ec06d60d65467f4db1b098e4cb49f1"
|
||||
PKG_VERSION="80066f22b12014f02f853fbfcf0f494c974800ec"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/bsnes-libretro"
|
||||
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="cap32-lr"
|
||||
PKG_VERSION="4a071f2c004273abf0f9fa0640b36f6664d8381a"
|
||||
PKG_VERSION="e727310c86ef1dc1d1c3ffa2e7fa73b3c8dd0d0d"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="dosbox-pure-lr"
|
||||
PKG_VERSION="696503df41c52376cc4de8774c4c46107a846a8f"
|
||||
PKG_VERSION="87bf6365158325b76ff238c1ad8daf16a859bbe8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="fbneo-lr"
|
||||
PKG_VERSION="c6cb6e43497f45a7d39e1194447f318eb0b27b16"
|
||||
PKG_VERSION="4138e7d4f949780f4176f6c174177eb3b6cc2789"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Non-commercial"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="fceumm-lr"
|
||||
PKG_VERSION="76bde1c45707db6c5947c35b9c3e46dea4eb6258"
|
||||
PKG_VERSION="20efbf049918a1000e43fb240fba57ed70887581"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="gambatte-lr"
|
||||
PKG_VERSION="035dbe127a38ce55501a0dfc3913d85f6446fe9a"
|
||||
PKG_VERSION="71d22fdd891e7776f9a175a5a6af51d2b9844b44"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="gearboy-lr"
|
||||
PKG_VERSION="7e2b48051875ea5fe9a61d68b821bab763646c85"
|
||||
PKG_VERSION="af6ed2870c104e266accfb3cbb2fde761cec9e63"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="gearcoleco-lr"
|
||||
PKG_VERSION="09f8d89f1c35bbd5d6eaf5fb47c090a3fdad28ba"
|
||||
PKG_VERSION="512990acdeb98fc87483e2964f21be557ccd0844"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="gearsystem-lr"
|
||||
PKG_VERSION="302fc34fc36e33d017bbc6dbe3ca101e6e3fafae"
|
||||
PKG_VERSION="538367784fecf9767cf9197794b9d489fd044042"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="genesis-plus-gx-lr"
|
||||
PKG_VERSION="5ca4135eed69e8ce153c76e403491eae560eae69"
|
||||
PKG_VERSION="565c126dfa2edd12c6ab27acb168465bace33171"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Non-commercial"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="genesis-plus-gx-wide-lr"
|
||||
PKG_VERSION="659329cbfbc3267f4f617910a3ecee60dd655dac"
|
||||
PKG_VERSION="d5531ca58d628a2ba6f791804aa01e2fb2cb0e13"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Non-commercial"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="handy-lr"
|
||||
PKG_VERSION="0559d3397f689ea453b986311aeac8dbd33afb0b"
|
||||
PKG_VERSION="65d6b865544cd441ef2bd18cde7bd834c23d0e48"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Zlib"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="libretro-database"
|
||||
PKG_VERSION="02dac2c8a7b779b495d5ce93d8fedd01738fc566"
|
||||
PKG_VERSION="4d5109f74e9a5b1050398bcbe84ebcf0bd14ff7c"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="mame2003-plus-lr"
|
||||
PKG_VERSION="59e49400fa6fc95237885c06732dfeef27687dec"
|
||||
PKG_VERSION="b4b8587904ffe8870708861d7209938c33cd7fc3"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MAME"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present AmberELEC (https://github.com/AmberELEC)
|
||||
|
||||
PKG_NAME="mojozork-lr"
|
||||
PKG_VERSION="89832e31d9d05c4e81908286b99db21924f3ba1a"
|
||||
PKG_VERSION="5c8d81f8db53c206ace6952472e7a7e68bd8e752"
|
||||
PKG_SITE="https://github.com/icculus/mojozork"
|
||||
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="mupen64plus-nx-lr"
|
||||
PKG_VERSION="f1ad37c3a9be64b499d9a36f57e41d59fb677c73"
|
||||
PKG_VERSION="9e54bfbee47cd161df31c6bf429a9761ae7e005a"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/mupen64plus-libretro-nx"
|
||||
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="opera-lr"
|
||||
PKG_VERSION="100ae1e7decefe1f17d98cfcb9f2af4ff8452691"
|
||||
PKG_VERSION="a830b24fc38b62c36ae3086c7c6e1159e9d7b064"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL with additional notes"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="pcsx_rearmed-lr"
|
||||
PKG_VERSION="963f41620dce6ddb2527b7e3dced09564031f783"
|
||||
PKG_VERSION="5ee1c9269d333936eba3e7e3259956f601ff5edd"
|
||||
PKG_ARCH="arm aarch64"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/pcsx_rearmed"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
PKG_NAME="picodrive-lr"
|
||||
PKG_VERSION="6101a0052d9a49bc9f5a5f97f1369a41726f25d6"
|
||||
PKG_VERSION="019421c9a1d70cc7d30ae4bfa60a79660a0e2bcd"
|
||||
PKG_LICENSE="MAME"
|
||||
PKG_SITE="https://github.com/libretro/picodrive"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="scummvm-lr"
|
||||
PKG_VERSION="0db091d15ac2a1a6058c8f0d69df36d23bc3638f"
|
||||
PKG_VERSION="6118a0d92907ae68c38d444a680aa4a1610099c8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="slang-shaders"
|
||||
PKG_VERSION="8595c3cbea2120bc9b82e4ff756f61100543ec83"
|
||||
PKG_VERSION="5e1db94e0d3e5cde0267e0766a9b2f4344f652c8"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="stella-lr"
|
||||
PKG_VERSION="8fe2adf28affc0477ee91689edef3b90168cd3ce"
|
||||
PKG_VERSION="39caf7d629eda889d239fea629b56f38e6fff2fc"
|
||||
PKG_REV="1"
|
||||
PKG_LICENSE="GPL2"
|
||||
PKG_SITE="https://github.com/stella-emu/stella"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="tic80-lr"
|
||||
PKG_VERSION="8bae7dd6fae8e2660f2523992392a07357e6eabf"
|
||||
PKG_VERSION="f83a769e63783aac848cb1084450064c16ce0b83"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/nesbox/TIC-80"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 22f6adb2..465e48cd 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -479,7 +479,7 @@ endif()
|
||||
diff --git a/cmake/janet.cmake b/cmake/janet.cmake
|
||||
index 5830878e..65a71989 100644
|
||||
--- a/cmake/janet.cmake
|
||||
+++ b/cmake/janet.cmake
|
||||
@@ -2,7 +2,7 @@
|
||||
# Janet
|
||||
################################
|
||||
|
||||
|
@ -11,3 +11,10 @@ index 22f6adb2..465e48cd 100644
|
|||
|
||||
option(BUILD_WITH_JANET "Janet Enabled" ${BUILD_WITH_JANET_DEFAULT})
|
||||
message("BUILD_WITH_JANET: ${BUILD_WITH_JANET}")
|
||||
@@ -42,4 +42,4 @@ if(BUILD_WITH_JANET)
|
||||
target_include_directories(janet PUBLIC ${CMAKE_SOURCE_DIR}/build/janet/)
|
||||
target_compile_definitions(janet INTERFACE TIC_BUILD_WITH_JANET=1)
|
||||
|
||||
-endif()
|
||||
\ No newline at end of file
|
||||
+endif()
|
||||
|
|
|
@ -17,7 +17,7 @@ case ${DEVICE} in
|
|||
;;
|
||||
*)
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_VERSION="b6b98af105c7bcc958b5888f8a3b85fec71989ed"
|
||||
PKG_VERSION="9b147d3f9c31bc6af1ce1281c52b02b338925e5a"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
|
@ -45,18 +45,15 @@ if [ "${VULKAN_SUPPORT}" = "yes" ]
|
|||
then
|
||||
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DENABLE_VULKAN=ON"
|
||||
else
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DENABLE_VULKAN=OFF"
|
||||
fi
|
||||
|
||||
pre_configure_target() {
|
||||
sed -i 's~#include <cstdlib>~#include <cstdlib>\n#include <cstdint>~g' ${PKG_BUILD}/Externals/VulkanMemoryAllocator/include/vk_mem_alloc.h
|
||||
sed -i 's~#include <cstdint>~#include <cstdint>\n#include <string>~g' ${PKG_BUILD}/Externals/VulkanMemoryAllocator/include/vk_mem_alloc.h
|
||||
}
|
||||
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DENABLE_HEADLESS=ON \
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DENABLE_HEADLESS=ON \
|
||||
-DENABLE_EVDEV=ON \
|
||||
-DUSE_DISCORD_PRESENCE=OFF \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DUSE_MGBA=OFF \
|
||||
-DLINUX_LOCAL_DEV=ON \
|
||||
-DENABLE_PULSEAUDIO=ON \
|
||||
-DENABLE_ALSA=ON \
|
||||
|
@ -67,7 +64,10 @@ PKG_CMAKE_OPTS_TARGET+=" -DENABLE_HEADLESS=ON \
|
|||
-DENABLE_QT=OFF \
|
||||
-DENCODE_FRAMEDUMPS=OFF \
|
||||
-DENABLE_CLI_TOOL=OFF"
|
||||
sed -i 's~#include <cstdlib>~#include <cstdlib>\n#include <cstdint>~g' ${PKG_BUILD}/Externals/VulkanMemoryAllocator/include/vk_mem_alloc.h
|
||||
sed -i 's~#include <cstdint>~#include <cstdint>\n#include <string>~g' ${PKG_BUILD}/Externals/VulkanMemoryAllocator/include/vk_mem_alloc.h
|
||||
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="flycast-sa"
|
||||
PKG_VERSION="f4f087a6ea83a5483dedf23ad2b38763988eccc5"
|
||||
PKG_VERSION="e7d0a5f2f9e656bab8bbe64d9d5d9cf6034cf444"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/flyinghead/flycast"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="gzdoom-sa"
|
||||
PKG_VERSION="a368588db6f8485072429f264aca2d9c411fe9b2"
|
||||
PKG_VERSION="6ce809e"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/ZDoom/gzdoom"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_GIT_CLONE_BRANCH="4.11"
|
||||
PKG_DEPENDS_HOST="toolchain SDL2:host zmusic:host libvpx:host libwebp:host"
|
||||
PKG_DEPENDS_TARGET="toolchain SDL2 gzdoom-sa:host zmusic libvpx libwebp"
|
||||
PKG_LONGDESC="GZDoom is a modder-friendly OpenGL and Vulkan source port based on the DOOM engine"
|
||||
|
@ -36,15 +37,15 @@ pre_configure_target() {
|
|||
### Enable GLES on devices that don't support OpenGL.
|
||||
if [ ! "${OPENGL_SUPPORT}" = "yes" ]
|
||||
then
|
||||
sed -i 's~#define USE_GLAD_LOADER 0~#define USE_GLAD_LOADER 1~g' ${PKG_BUILD}/src/common/rendering/gles/gles_system.h
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DHAVE_GLES2=ON \
|
||||
-DHAVE_VULKAN=OFF"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DHAVE_GLES2=ON"
|
||||
fi
|
||||
|
||||
### Enable vulkan support on devices that have it available.
|
||||
if [ "${VULKAN_SUPPORT}" = "yes" ]
|
||||
then
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DHAVE_VULKAN=ON"
|
||||
else
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DHAVE_VULKAN=OFF"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
|
||||
|
||||
PKG_NAME="hatarisa"
|
||||
PKG_VERSION="4017c93ee54a99d6c28284d02eb62b981c742e8a"
|
||||
PKG_VERSION="3692376f4d77674eab322e4a05359d5ba10274d8"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/hatari/hatari"
|
||||
PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="openbor"
|
||||
PKG_VERSION="b8303cce992a0db93c3a465df3c943942fe322f8"
|
||||
PKG_VERSION="f0e209333dc784d39e92df16b9959873661bd427"
|
||||
PKG_ARCH="any"
|
||||
PKG_SITE="https://github.com/DCurrent/openbor"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
@ -24,6 +24,7 @@ pre_configure_target() {
|
|||
|
||||
pre_make_target() {
|
||||
cd ${PKG_BUILD}/engine
|
||||
chmod 0755 version.sh
|
||||
./version.sh
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="yuzu-sa"
|
||||
PKG_VERSION="05e3db3ac9edbff0e4885ef8b42d3a2427c9f027"
|
||||
PKG_VERSION="29b983398cadb90820210318ae7200ede3a582f9"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/yuzu-emu/yuzu"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="control-gen"
|
||||
PKG_VERSION="16179c655447007c2580243659fc36a34e6a749d"
|
||||
PKG_VERSION="3dd24b72a72316d3049dcf98dd2894ff91d971f6"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_DEPENDS_TARGET="toolchain"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="gamecontrollerdb"
|
||||
PKG_VERSION="a2ae8f6968dfb27a57a15c8f62ea9f20b05362c4"
|
||||
PKG_VERSION="ff1b4c410540068434a7d0de9201d5b62752f8da"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_DEPENDS_TARGET="toolchain SDL2"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="retroarch-assets"
|
||||
PKG_VERSION="1440f6737840f010f3b12a6b68b7a3871506e207"
|
||||
PKG_VERSION="923b711dc6772a168d83dc8915e9260730fcf3a1"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/libretro/retroarch-assets"
|
||||
PKG_URL="https://github.com/libretro/retroarch-assets/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="retroarch-joypads"
|
||||
PKG_VERSION="a57f1489ac289415d7fbdae4d56d55ed01c45714"
|
||||
PKG_VERSION="30d3ee6bae004e96660cefe402d5a5dba7b325e7"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/libretro/retroarch-joypad-autoconfig"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -16,9 +16,10 @@ case ${DEVICE} in
|
|||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_GIT_CLONE_BRANCH="csf"
|
||||
;;
|
||||
RK3399) #Upstream Mesa appears to be broken on the RK3399 build currently
|
||||
PKG_VERSION="22.3.7"
|
||||
PKG_URL="https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-${PKG_VERSION}/mesa-mesa-${PKG_VERSION}.tar.gz"
|
||||
RK3399) #Stable Mesa appears to be broken on the RK3399 build currently, using upstream dev
|
||||
PKG_VERSION="3ee633920618de559f6cf76225b1c2b27256facc"
|
||||
PKG_SITE="https://gitlab.freedesktop.org/mesa/mesa"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="23.3.2"
|
||||
|
|
|
@ -6,6 +6,6 @@ cat <<EOF >/storage/.config/profile.d/020-fan_control
|
|||
DEVICE_HAS_FAN="true"
|
||||
DEVICE_PWM_FAN="$(find /sys/devices/platform/oxp-platform -name pwm1)"
|
||||
DEVICE_FAN_INPUT="$(find /sys/devices/platform/oxp-platform -name fan*_input)"
|
||||
DEVICE_TEMP_SENSOR="$(find /sys/devices/pci*/* -path "*/nvme" -prune -o -name temp1_input -print)"
|
||||
DEVICE_TEMP_SENSOR="$(find /sys/devices/pci*/*/hwmon -path "*/nvme" -prune -o -name temp1_input -print)"
|
||||
EOF
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ function ec_writecmd() {
|
|||
function mode() {
|
||||
debug_out "Set mode ${1}"
|
||||
${ECTOOL} -w 0xbf -z ${1} >/dev/null 2>&1
|
||||
${ECTOOL} -w 0xbf -z ff >/dev/null 2>&1
|
||||
}
|
||||
|
||||
function off() {
|
||||
|
@ -123,16 +122,19 @@ debug_out "led brightness: ${LEDBRIGHTNESS}"
|
|||
case $1 in
|
||||
red)
|
||||
off
|
||||
mode 0xe0
|
||||
color 1 ${LEDBRIGHTNESS}
|
||||
set_setting led.color red
|
||||
;;
|
||||
green)
|
||||
off
|
||||
mode 0xe0
|
||||
color 2 ${LEDBRIGHTNESS}
|
||||
set_setting led.color green
|
||||
;;
|
||||
blue)
|
||||
off
|
||||
mode 0xe2
|
||||
color 3 ${LEDBRIGHTNESS}
|
||||
set_setting led.color blue
|
||||
;;
|
||||
|
|
8
packages/hardware/quirks/devices/AYANEO AYANEO 2S/010-led_control
Executable file
8
packages/hardware/quirks/devices/AYANEO AYANEO 2S/010-led_control
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
cat <<EOF >/storage/.config/profile.d/010-led_control
|
||||
DEVICE_LED_CONTROL="true"
|
||||
DEVICE_LED_BRIGHTNESS="true"
|
||||
EOF
|
11
packages/hardware/quirks/devices/AYANEO AYANEO 2S/020-fan_control
Executable file
11
packages/hardware/quirks/devices/AYANEO AYANEO 2S/020-fan_control
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
cat <<EOF >/storage/.config/profile.d/020-fan_control
|
||||
DEVICE_HAS_FAN="true"
|
||||
DEVICE_PWM_FAN="$(find /sys/devices/platform/oxp-platform -name pwm1)"
|
||||
DEVICE_FAN_INPUT="$(find /sys/devices/platform/oxp-platform -name fan*_input)"
|
||||
DEVICE_TEMP_SENSOR="$(find /sys/devices/pci*/*/hwmon -path "*/nvme" -prune -o -name temp1_input -print)"
|
||||
EOF
|
||||
|
82
packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/fancontrol
Executable file
82
packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/fancontrol
Executable file
|
@ -0,0 +1,82 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
. /etc/profile
|
||||
|
||||
DEBUG=false
|
||||
COOLING_PROFILE=$(get_setting "cooling.profile")
|
||||
FAN_PWM="${DEVICE_PWM_FAN}"
|
||||
|
||||
log $0 "Setting profile to ${COOLING_PROFILE}"
|
||||
|
||||
function set_control() {
|
||||
log $0 "Set fan control to ${1}"
|
||||
if [ -e "${DEVICE_PWM_FAN}_enable" ]
|
||||
then
|
||||
echo ${1} >${DEVICE_PWM_FAN}_enable
|
||||
fi
|
||||
}
|
||||
|
||||
trap "set_control 0 && exit 0" SIGHUP SIGINT SIGQUIT SIGABRT
|
||||
|
||||
if [ -e "/storage/.config/fancontrol.conf" ] && [ "${COOLING_PROFILE}" = "custom" ]
|
||||
then
|
||||
log $0 "Loading configuration file" 2>/dev/null
|
||||
source /storage/.config/fancontrol.conf
|
||||
if [ ! $? = 0 ]
|
||||
then
|
||||
WARN="Custom fan profile could not be loaded, defaulting to auto."
|
||||
log $0 "${WARN}"
|
||||
COOLING_PROFILE="auto"
|
||||
set_setting cooling.profile auto
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! "${COOLING_PROFILE}" = "custom" ]
|
||||
then
|
||||
if [ "${COOLING_PROFILE}" = "aggressive" ]
|
||||
then
|
||||
SPEEDS=(255 225 192)
|
||||
TEMPS=(70000 65000 0)
|
||||
elif [ "${COOLING_PROFILE}" = "moderate" ]
|
||||
then
|
||||
SPEEDS=(255 192 128 96)
|
||||
TEMPS=(75000 70000 65000 0)
|
||||
elif [ "${COOLING_PROFILE}" = "quiet" ]
|
||||
then
|
||||
# Quiet.
|
||||
SPEEDS=(255 192 128 96 64 48 32)
|
||||
TEMPS=(75000 70000 65000 60000 55000 50000 0)
|
||||
else
|
||||
# auto
|
||||
set_control 0 >/dev/null 2>&1
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
log $0 "Enabling fan control."
|
||||
set_control 1 >/dev/null 2>&1
|
||||
|
||||
while true
|
||||
do
|
||||
INDEX=0
|
||||
CPU_TEMP=$(printf "%.0f" $(awk '{ total += $1; count++ } END { print total/count }' ${DEVICE_TEMP_SENSOR}))
|
||||
$DEBUG && log $0 "CPU TEMP: ${CPU_TEMP}" 2>/dev/null
|
||||
for TEMP in "${TEMPS[@]}"
|
||||
do
|
||||
if (( "${CPU_TEMP}" > "${TEMP}" )) && \
|
||||
[ ! "${LASTSPEED}" = "${SPEEDS[${INDEX}]}" ]
|
||||
then
|
||||
$DEBUG && log $0 "Setting PWM FAN to ${SPEEDS[${INDEX}]} (${TEMP})" 2>/dev/null
|
||||
echo ${SPEEDS[${INDEX}]} >${FAN_PWM}
|
||||
LASTSPEED=${SPEEDS[${INDEX}]}
|
||||
break
|
||||
fi
|
||||
INDEX=$(( $INDEX + 1 ))
|
||||
done
|
||||
sleep 2
|
||||
done
|
||||
|
||||
log $0 "Disabling fan control."
|
||||
set_control 0 >/dev/null 2>&1
|
185
packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/ledcontrol
Executable file
185
packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/ledcontrol
Executable file
|
@ -0,0 +1,185 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
#
|
||||
# A simple tool to manipulate the controller LEDs using ectool, thanks to
|
||||
# Maya Matuszczyk (https://github.com/Maccraft123) for reverse engineering.
|
||||
#
|
||||
# Schema:
|
||||
#
|
||||
# 0x6d - LED PWM control (0x03)
|
||||
#
|
||||
# 0xb1 - Support for 4 zones and RGB color
|
||||
#
|
||||
# RGB colors:
|
||||
#
|
||||
# 1 - Red
|
||||
# 2 - Green
|
||||
# 3 - Blue
|
||||
#
|
||||
# Zones:
|
||||
#
|
||||
# Right (2), Down (5), Left (8) , Up (11)
|
||||
#
|
||||
# Note: Set 0xb1 to 02 for off.
|
||||
#
|
||||
# 0xb2 - Sets brightness, requires b1 to be set at the same time.
|
||||
#
|
||||
# 00-ff - brightness from 0-255. Not noticeable to me above 128.
|
||||
#
|
||||
# 0xbf - Set expected mode
|
||||
#
|
||||
# 0x10 - Enable
|
||||
# 0xe2 - Tint (+ Red for Purple, + Green for Teal)
|
||||
# 0xe3-0e5 - Tint + blink (unused)
|
||||
#
|
||||
# 0xff - Close channel
|
||||
#
|
||||
|
||||
. /etc/profile
|
||||
|
||||
ECTOOL="/usr/sbin/ectool"
|
||||
DEBUG=false
|
||||
|
||||
function debug_out() {
|
||||
$DEBUG && echo "ledcontrol: $*"
|
||||
}
|
||||
|
||||
function ec_writecmd() {
|
||||
${ECTOOL} -w 0x6d -z 0x03 >/dev/null 2>&1
|
||||
}
|
||||
|
||||
function mode() {
|
||||
debug_out "Set mode ${1}"
|
||||
${ECTOOL} -w 0xbf -z ${1} >/dev/null 2>&1
|
||||
}
|
||||
|
||||
function close_channel() {
|
||||
debug_out "Set close channel"
|
||||
${ECTOOL} -w 0xbf -z 0xFF >/dev/null 2>&1
|
||||
}
|
||||
|
||||
function off() {
|
||||
ec_writecmd
|
||||
for twice in 1 2
|
||||
do
|
||||
### RGB off command
|
||||
${ECTOOL} -w 0xb1 -z 0x02 >/dev/null 2>&1
|
||||
${ECTOOL} -w 0xb2 -z 0xc0 >/dev/null 2>&1
|
||||
mode 0x10
|
||||
done
|
||||
close_channel
|
||||
}
|
||||
|
||||
function brightness() {
|
||||
debug_out "Set brightness ${1}"
|
||||
${ECTOOL} -w 0xb2 -z 0x${1} >/dev/null 2>&1
|
||||
mode 0x10
|
||||
close_channel
|
||||
}
|
||||
|
||||
function color() {
|
||||
## Writing twice seems more reliable than inserting a delay.
|
||||
for twice in 1 2
|
||||
do
|
||||
for zone in 2 5 8 11
|
||||
do
|
||||
zone=$(( ${zone} + ${1} ))
|
||||
zone=$(printf '%02x' ${zone})
|
||||
debug_out "Set color 0x${zone}"
|
||||
${ECTOOL} -w 0xb1 -z 0x${zone} >/dev/null 2>&1
|
||||
brightness ${2}
|
||||
done
|
||||
done
|
||||
close_channel
|
||||
}
|
||||
|
||||
GETBRIGHTNESS=$(get_setting led.brightness)
|
||||
if [ ! -z "${2}" ]
|
||||
then
|
||||
LEDBRIGHTNESS=${2}
|
||||
debug_out "Arg[2]: ${2}"
|
||||
elif [ ! -z "${GETBRIGHTNESS}" ]
|
||||
then
|
||||
LEDBRIGHTNESS=${GETBRIGHTNESS}
|
||||
debug_out "GETBRIGHTESS: ${GETBRIGHTNESS}"
|
||||
else
|
||||
debug_out "NO SETTING: min"
|
||||
LEDBRIGHTNESS=min
|
||||
set_setting led.brightness min
|
||||
fi
|
||||
|
||||
case ${LEDBRIGHTNESS} in
|
||||
max)
|
||||
LEDBRIGHTNESS=ff
|
||||
set_setting led.brightness max
|
||||
;;
|
||||
mid)
|
||||
LEDBRIGHTNESS=a8
|
||||
set_setting led.brightness mid
|
||||
;;
|
||||
min)
|
||||
LEDBRIGHTNESS=54
|
||||
set_setting led.brightness min
|
||||
;;
|
||||
esac
|
||||
|
||||
debug_out "led brightness: ${LEDBRIGHTNESS}"
|
||||
|
||||
case $1 in
|
||||
red)
|
||||
off
|
||||
mode 0xe0
|
||||
color 1 ${LEDBRIGHTNESS}
|
||||
set_setting led.color red
|
||||
;;
|
||||
green)
|
||||
off
|
||||
mode 0xe0
|
||||
color 2 ${LEDBRIGHTNESS}
|
||||
set_setting led.color green
|
||||
;;
|
||||
blue)
|
||||
off
|
||||
mode 0xe2
|
||||
color 3 ${LEDBRIGHTNESS}
|
||||
set_setting led.color blue
|
||||
;;
|
||||
teal)
|
||||
off
|
||||
mode 0xe2
|
||||
color 2 ${LEDBRIGHTNESS}
|
||||
set_setting led.color teal
|
||||
;;
|
||||
purple)
|
||||
off
|
||||
mode 0xe2
|
||||
color 1 ${LEDBRIGHTNESS}
|
||||
set_setting led.color purple
|
||||
;;
|
||||
off)
|
||||
off
|
||||
set_setting led.color off
|
||||
;;
|
||||
default)
|
||||
del_setting led.color
|
||||
del_setting led.brightness
|
||||
;;
|
||||
brightness)
|
||||
COLOR=$(get_setting led.color)
|
||||
if [ ! -z "${COLOR}" ]
|
||||
then
|
||||
off
|
||||
ledcontrol ${COLOR} ${LEDBRIGHTNESS}
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
COLOR=$(get_setting led.color)
|
||||
if [ ! -z "${COLOR}" ]
|
||||
then
|
||||
off
|
||||
ledcontrol ${COLOR} ${LEDBRIGHTNESS}
|
||||
fi
|
||||
;;
|
||||
esac
|
Binary file not shown.
After Width: | Height: | Size: 619 B |
16
packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/post/001-image
Executable file
16
packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/post/001-image
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
# There is a display bug with the Ayaneo 2S preventing the display from
|
||||
# blanking and powering the backlight off. To work around this, we will
|
||||
# set the brightness to the lowest value, and display an black image before
|
||||
# entering sleep.
|
||||
|
||||
# Yes, it's gross.
|
||||
|
||||
. /etc/profile
|
||||
|
||||
BRIGHTNESS=$(cat /tmp/.brightness)
|
||||
echo ${BRIGHTNESS} >"/sys/devices/pci0000:00/0000:00:08.1/0000:c4:00.0/drm/card0/card0-eDP-1/amdgpu_bl0/brightness"
|
||||
killall weston-image
|
17
packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/pre/001-image
Executable file
17
packages/hardware/quirks/devices/AYANEO AYANEO 2S/sleep.d/pre/001-image
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
# There is a display bug with the Ayaneo 2S preventing the display from
|
||||
# blanking and powering the backlight off. To work around this, we will
|
||||
# set the brightness to the lowest value, and display an black image before
|
||||
# entering sleep.
|
||||
|
||||
# Yes, it's gross.
|
||||
|
||||
. /etc/profile
|
||||
|
||||
brightness >/tmp/.brightness
|
||||
echo 0 >"/sys/devices/pci0000:00/0000:00:08.1/0000:c4:00.0/drm/card0/card0-eDP-1/amdgpu_bl0/brightness"
|
||||
weston-image /usr/lib/autostart/quirks/devices/"${QUIRK_DEVICE}"/images/black.png &
|
||||
sleep 1
|
8
packages/hardware/quirks/platforms/AMD64/091-ui_shader
Normal file
8
packages/hardware/quirks/platforms/AMD64/091-ui_shader
Normal file
|
@ -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 <<EOF >/storage/.config/profile.d/091-ui_shader
|
||||
UI_SHADER="slangp"
|
||||
EOF
|
8
packages/hardware/quirks/platforms/RK3326/091-ui_shader
Normal file
8
packages/hardware/quirks/platforms/RK3326/091-ui_shader
Normal file
|
@ -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 <<EOF >/storage/.config/profile.d/091-ui_shader
|
||||
UI_SHADER="slangp"
|
||||
EOF
|
8
packages/hardware/quirks/platforms/RK3399/091-ui_shader
Normal file
8
packages/hardware/quirks/platforms/RK3399/091-ui_shader
Normal file
|
@ -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 <<EOF >/storage/.config/profile.d/091-ui_shader
|
||||
UI_SHADER="slangp"
|
||||
EOF
|
8
packages/hardware/quirks/platforms/RK3566/091-ui_shader
Normal file
8
packages/hardware/quirks/platforms/RK3566/091-ui_shader
Normal file
|
@ -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 <<EOF >/storage/.config/profile.d/091-ui_shader
|
||||
UI_SHADER="glslp"
|
||||
EOF
|
8
packages/hardware/quirks/platforms/RK3588/091-ui_shader
Normal file
8
packages/hardware/quirks/platforms/RK3588/091-ui_shader
Normal file
|
@ -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 <<EOF >/storage/.config/profile.d/091-ui_shader
|
||||
UI_SHADER="slangp"
|
||||
EOF
|
8
packages/hardware/quirks/platforms/S922X/091-ui_shader
Normal file
8
packages/hardware/quirks/platforms/S922X/091-ui_shader
Normal file
|
@ -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 <<EOF >/storage/.config/profile.d/091-ui_shader
|
||||
UI_SHADER="glslp"
|
||||
EOF
|
|
@ -9,9 +9,18 @@ case "${1}" in
|
|||
rm -f /storage/.config/retroarch/retroarch.cfg
|
||||
cp -rf /usr/config/retroarch/retroarch.cfg /storage/.config/retroarch/retroarch.cfg
|
||||
;;
|
||||
"retroarch-full")
|
||||
rm -rf /storage/.config/retroarch
|
||||
cp -rf /usr/config/retroarch /storage/.config/
|
||||
;;
|
||||
"mednafen")
|
||||
rm -f /storage/.config/mednafen/mednafen.cfg
|
||||
;;
|
||||
"overlays")
|
||||
rm -rf $(cat /usr/lib/systemd/system/tmp-*.mount | grep -Eo 'upperdir=.*,' | sed -e 's~upperdir=~~g; s~,~~g')
|
||||
sync
|
||||
systemctl reboot
|
||||
;;
|
||||
"ALL")
|
||||
systemctl stop ${UI_SERVICE}
|
||||
cd /
|
||||
|
|
|
@ -6,18 +6,16 @@
|
|||
# Copyright (C) 2020-present Shanti Gilbert (https://github.com/shantigilbert)
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
if [[ "${UI_SERVICE}" =~ ^weston ]]
|
||||
then
|
||||
SHADERS='*.slang*'
|
||||
if [ -z "$UI_SHADER" ]; then
|
||||
option=".*\.\(glslp\|slangp\)$"
|
||||
else
|
||||
SHADERS='*.glslp*'
|
||||
option=".*\.\($UI_SHADER\)$"
|
||||
fi
|
||||
|
||||
for dir in /tmp/shaders
|
||||
do
|
||||
if [ -d "${dir}" ]
|
||||
then
|
||||
find ${dir} -name ${SHADERS} -print0 |
|
||||
if [ -d "${dir}" ]; then
|
||||
find ${dir} -regex "${option}" -print0 |
|
||||
while IFS= read -r -d '' line; do
|
||||
echo ${line#${dir}/},
|
||||
done
|
||||
|
|
|
@ -157,14 +157,14 @@ case ${EMULATOR} in
|
|||
NETWORK_PLAY="${ARGUMENTS##*--host}" # read from --host onwards
|
||||
NETWORK_PLAY="${NETWORK_PLAY%%--nick*}" # until --nick is found
|
||||
NETWORK_PLAY="--host ${NETWORK_PLAY} --nick"
|
||||
set_setting netplay.mode host
|
||||
set_setting netplay.mode "host"
|
||||
;;
|
||||
*"--connect"*)
|
||||
${VERBOSE} && log $0 "Setup netplay client."
|
||||
NETWORK_PLAY="${ARGUMENTS##*--host}" # read from --host onwards
|
||||
NETWORK_PLAY="${ARGUMENTS##*--connect}" # read from --connect onwards
|
||||
NETWORK_PLAY="${NETWORK_PLAY%%--nick*}" # until --nick is found
|
||||
NETWORK_PLAY="--host ${NETWORK_PLAY} --nick"
|
||||
set_setting netplay.mode host
|
||||
NETWORK_PLAY="--connect ${NETWORK_PLAY} --nick"
|
||||
set_setting netplay.mode "client"
|
||||
;;
|
||||
*"--netplaymode spectator"*)
|
||||
${VERBOSE} && log $0 "Setup netplay spectator."
|
||||
|
@ -336,11 +336,14 @@ case ${CPU_VENDOR} in
|
|||
esac
|
||||
|
||||
### Apply energy performance preference
|
||||
EPP=$(get_setting "power.epp" "${PLATFORM}" "${ROMNAME##*/}")
|
||||
if [ ! -z ${EPP} ]
|
||||
if [ -e "/usr/bin/set_epp" ]
|
||||
then
|
||||
${VERBOSE} && log $0 "Set EPP to (${EPP})"
|
||||
/usr/bin/set_epp ${EPP}
|
||||
EPP=$(get_setting "power.epp" "${PLATFORM}" "${ROMNAME##*/}")
|
||||
if [ ! -z ${EPP} ]
|
||||
then
|
||||
${VERBOSE} && log $0 "Set EPP to (${EPP})"
|
||||
/usr/bin/set_epp ${EPP}
|
||||
fi
|
||||
fi
|
||||
|
||||
### Configure GPU performance mode
|
||||
|
|
|
@ -914,6 +914,23 @@ function set_saturnopts() {
|
|||
fi
|
||||
}
|
||||
|
||||
function set_snesopts() {
|
||||
log "Set up SNES..."
|
||||
if [ "${CORE}" = "beetle_supafaust" ]
|
||||
then
|
||||
log "Set up beetle_supafaust"
|
||||
local FAUSTDIR="${RETROARCH_PATH}/config/Supafaust"
|
||||
if [ ! -d "${FAUSTDIR}" ]
|
||||
then
|
||||
mkdir -p "${FAUSTDIR}"
|
||||
fi
|
||||
if [ ! -f "${FAUSTDIR}/Supafaust.opt" ]
|
||||
then
|
||||
cp "/usr/config/retroarch/Supafaust.opt" "${FAUSTDIR}/Supafaust.opt"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function set_dreamcastopts() {
|
||||
log "Set up Dreamcast..."
|
||||
if [ "${CORE}" = "flycast" ]
|
||||
|
@ -1076,6 +1093,7 @@ set_analogsupport &
|
|||
set_tatemode &
|
||||
set_n64opts &
|
||||
set_saturnopts &
|
||||
set_snesopts &
|
||||
set_dreamcastopts &
|
||||
|
||||
### Sed operations are expensive, so they are staged and executed as
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="kernel-firmware"
|
||||
PKG_VERSION="20231111"
|
||||
PKG_VERSION="20231211"
|
||||
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"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
PKG_NAME="linux"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_VERSION="6.6.8"
|
||||
PKG_VERSION="6.7"
|
||||
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"
|
||||
|
|
33
packages/kernel/linux/patches/AMD64/001-oxp-add-2s.patch
Normal file
33
packages/kernel/linux/patches/AMD64/001-oxp-add-2s.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
diff -rupN linux-6.6.9.orig/drivers/hwmon/oxp-sensors.c linux-6.6.9/drivers/hwmon/oxp-sensors.c
|
||||
--- linux-6.6.9.orig/drivers/hwmon/oxp-sensors.c 2024-01-04 00:22:05.661168063 +0000
|
||||
+++ linux-6.6.9/drivers/hwmon/oxp-sensors.c 2024-01-04 11:17:07.777068733 +0000
|
||||
@@ -42,6 +42,7 @@ static bool unlock_global_acpi_lock(void
|
||||
enum oxp_board {
|
||||
aok_zoe_a1 = 1,
|
||||
aya_neo_2,
|
||||
+ aya_neo_2s,
|
||||
aya_neo_air,
|
||||
aya_neo_air_pro,
|
||||
aya_neo_geek,
|
||||
@@ -91,6 +92,13 @@ static const struct dmi_system_id dmi_ta
|
||||
},
|
||||
.driver_data = (void *)aya_neo_2,
|
||||
},
|
||||
+ {
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
|
||||
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "AYANEO 2S"),
|
||||
+ },
|
||||
+ .driver_data = (void *)aya_neo_2s,
|
||||
+ },
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
|
||||
@@ -331,6 +339,7 @@ static int oxp_platform_read(struct devi
|
||||
return ret;
|
||||
switch (board) {
|
||||
case aya_neo_2:
|
||||
+ case aya_neo_2s:
|
||||
case aya_neo_air:
|
||||
case aya_neo_air_pro:
|
||||
case aya_neo_geek:
|
|
@ -1,17 +1,533 @@
|
|||
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
|
||||
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
|
||||
@@ -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 Yoga Book X90F / X90L */
|
||||
}, { /* Lenovo Legion Go 8APU1 */
|
||||
.matches = {
|
||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
|
||||
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 <hdegoede@redhat.com>
|
||||
+ *
|
||||
+ * Note the quirks in this file are shared with fbdev/efifb and as such
|
||||
+ * must not depend on other drm code.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/dmi.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <drm/drm_connector.h>
|
||||
+#include <drm/drm_utils.h>
|
||||
+
|
||||
+#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"),
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
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
|
||||
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
|
||||
.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
|
||||
};
|
||||
|
||||
|
@ -14,7 +14,7 @@ diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drive
|
|||
static const struct dmi_system_id orientation_data[] = {
|
||||
{ /* Acer One 10 (S1003) */
|
||||
.matches = {
|
||||
@@ -170,13 +176,13 @@ static const struct dmi_system_id orient
|
||||
@@ -178,13 +184,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.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drive
|
|||
.matches = {
|
||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "AIR"),
|
||||
@@ -188,6 +194,30 @@ static const struct dmi_system_id orient
|
||||
@@ -196,6 +202,30 @@ static const struct dmi_system_id orient
|
||||
DMI_MATCH(DMI_BOARD_NAME, "NEXT"),
|
||||
},
|
||||
.driver_data = (void *)&lcd800x1280_rightside_up,
|
||||
|
@ -41,10 +41,10 @@ diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drive
|
|||
+ DMI_MATCH(DMI_BOARD_NAME, "GEEK"),
|
||||
+ },
|
||||
+ .driver_data = (void *)&lcd800x1280_rightside_up,
|
||||
+ }, { /* AYANEO AYANEO 2 */
|
||||
+ }, { /* AYANEO AYANEO 2, 2S */
|
||||
+ .matches = {
|
||||
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"),
|
||||
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"),
|
||||
+ },
|
||||
+ .driver_data = (void *)&lcd1200x1920_rightside_up,
|
||||
+ }, { /* AOKZOE A1 Pro */
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
diff -rupN linux-6.4.16.orig/sound/pci/hda/patch_realtek.c linux-6.4.16/sound/pci/hda/patch_realtek.c
|
||||
--- linux-6.4.16.orig/sound/pci/hda/patch_realtek.c 2023-10-18 20:03:49.089091278 -0600
|
||||
+++ linux-6.4.16/sound/pci/hda/patch_realtek.c 2023-10-19 10:21:10.552016120 -0600
|
||||
@@ -6521,6 +6521,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)
|
||||
{
|
||||
@@ -7013,6 +7027,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,
|
||||
@@ -8150,6 +8165,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 */
|
||||
@@ -9929,6 +9948,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(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
|
||||
SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
|
||||
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="gcc"
|
||||
PKG_VERSION="13.2.0"
|
||||
PKG_VERSION="12.3.0"
|
||||
PKG_LICENSE="GPL-2.0-or-later"
|
||||
PKG_SITE="https://gcc.gnu.org/"
|
||||
PKG_URL="https://ftp.gnu.org/gnu/gcc/${PKG_NAME}-${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
|
@ -54,6 +54,7 @@ GCC_COMMON_CONFIGURE_OPTS="--target=${TARGET_NAME} \
|
|||
--disable-libssp \
|
||||
--disable-static \
|
||||
--enable-shared \
|
||||
--disable-werror \
|
||||
--enable-__cxa_atexit"
|
||||
|
||||
PKG_CONFIGURE_OPTS_BOOTSTRAP="${GCC_COMMON_CONFIGURE_OPTS} \
|
||||
|
@ -68,7 +69,6 @@ PKG_CONFIGURE_OPTS_BOOTSTRAP="${GCC_COMMON_CONFIGURE_OPTS} \
|
|||
--disable-threads \
|
||||
--without-headers \
|
||||
--with-newlib \
|
||||
--disable-werror \
|
||||
${GCC_OPTS}"
|
||||
|
||||
PKG_CONFIGURE_OPTS_HOST="${GCC_COMMON_CONFIGURE_OPTS} \
|
||||
|
@ -85,8 +85,6 @@ PKG_CONFIGURE_OPTS_HOST="${GCC_COMMON_CONFIGURE_OPTS} \
|
|||
--enable-clocale=gnu \
|
||||
${GCC_OPTS}"
|
||||
|
||||
PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_HOST}"
|
||||
|
||||
post_makeinstall_bootstrap() {
|
||||
GCC_VERSION=$(${TOOLCHAIN}/bin/${TARGET_NAME}-gcc -dumpversion)
|
||||
DATE="0401$(echo ${GCC_VERSION} | sed 's/\./0/g')"
|
||||
|
|
180005
packages/lang/gcc/patches/gcc-sync-to-12.3.1-01032024.patch
Normal file
180005
packages/lang/gcc/patches/gcc-sync-to-12.3.1-01032024.patch
Normal file
File diff suppressed because it is too large
Load diff
102
packages/network/syncthing/patches/003-fix-default-path.patch
Normal file
102
packages/network/syncthing/patches/003-fix-default-path.patch
Normal file
|
@ -0,0 +1,102 @@
|
|||
diff -rupN syncthing.orig/lib/locations/locations.go syncthing/lib/locations/locations.go
|
||||
--- syncthing.orig/lib/locations/locations.go 2023-12-11 06:46:46.000000000 +0000
|
||||
+++ syncthing/lib/locations/locations.go 2024-01-03 01:01:17.529930502 +0000
|
||||
@@ -49,7 +49,7 @@ const (
|
||||
|
||||
LevelDBDir = "index-v0.14.0.db"
|
||||
configFileName = "config.xml"
|
||||
- defaultStateDir = ".local/state/syncthing"
|
||||
+ defaultStateDir = ".config/syncthing"
|
||||
oldDefaultConfigDir = ".config/syncthing"
|
||||
)
|
||||
|
||||
@@ -244,7 +244,7 @@ func unixConfigDir(userHome, xdgConfigHo
|
||||
func unixDataDir(userHome, configDir, xdgDataHome, xdgStateHome string, fileExists func(string) bool) string {
|
||||
// If a database exists at the config location, use that. This is the
|
||||
// most common case for both legacy (~/.config/syncthing) and current
|
||||
- // (~/.local/state/syncthing) setups.
|
||||
+ // (~/.config/syncthing) setups.
|
||||
if fileExists(filepath.Join(configDir, LevelDBDir)) {
|
||||
return configDir
|
||||
}
|
||||
diff -rupN syncthing.orig/lib/locations/locations_test.go syncthing/lib/locations/locations_test.go
|
||||
--- syncthing.orig/lib/locations/locations_test.go 2023-12-11 06:46:46.000000000 +0000
|
||||
+++ syncthing/lib/locations/locations_test.go 2024-01-03 01:01:17.529930502 +0000
|
||||
@@ -29,9 +29,9 @@ func TestUnixConfigDir(t *testing.T) {
|
||||
// First some "new installations", no files exist previously.
|
||||
|
||||
// No variables set, use our current default
|
||||
- {"/home/user", "", "", nil, "/home/user/.local/state/syncthing"},
|
||||
+ {"/home/user", "", "", nil, "/home/user/.config/syncthing"},
|
||||
// Config home set, doesn't matter
|
||||
- {"/home/user", "/somewhere/else", "", nil, "/home/user/.local/state/syncthing"},
|
||||
+ {"/home/user", "/somewhere/else", "", nil, "/home/user/.config/syncthing"},
|
||||
// State home set, use that
|
||||
{"/home/user", "", "/var/state", nil, "/var/state/syncthing"},
|
||||
// State home set, again config home doesn't matter
|
||||
@@ -75,9 +75,9 @@ func TestUnixDataDir(t *testing.T) {
|
||||
// First some "new installations", no files exist previously.
|
||||
|
||||
// No variables set, use our current default
|
||||
- {"/home/user", "", "", "", nil, "/home/user/.local/state/syncthing"},
|
||||
+ {"/home/user", "", "", "", nil, "/home/user/.config/syncthing"},
|
||||
// Data home set, doesn't matter
|
||||
- {"/home/user", "", "/somewhere/else", "", nil, "/home/user/.local/state/syncthing"},
|
||||
+ {"/home/user", "", "/somewhere/else", "", nil, "/home/user/.config/syncthing"},
|
||||
// State home set, use that
|
||||
{"/home/user", "", "", "/var/state", nil, "/var/state/syncthing"},
|
||||
|
||||
diff -rupN syncthing.orig/man/syncthing.1 syncthing/man/syncthing.1
|
||||
--- syncthing.orig/man/syncthing.1 2023-12-11 06:46:46.000000000 +0000
|
||||
+++ syncthing/man/syncthing.1 2024-01-03 01:01:17.529930502 +0000
|
||||
@@ -157,7 +157,7 @@ given subcommand.
|
||||
.B \-\-home=<dir>
|
||||
Set common configuration and data directory. The default configuration
|
||||
directory is \fB$XDG_STATE_HOME/syncthing\fP or
|
||||
-\fB$HOME/.local/state/syncthing\fP (Unix\-like),
|
||||
+\fB$HOME/.config/syncthing\fP (Unix\-like),
|
||||
\fB$HOME/Library/Application Support/Syncthing\fP (Mac) and
|
||||
\fB%LOCALAPPDATA%\eSyncthing\fP (Windows).
|
||||
.UNINDENT
|
||||
diff -rupN syncthing.orig/man/syncthing-config.5 syncthing/man/syncthing-config.5
|
||||
--- syncthing.orig/man/syncthing-config.5 2023-12-11 06:46:46.000000000 +0000
|
||||
+++ syncthing/man/syncthing-config.5 2024-01-03 01:01:17.529930502 +0000
|
||||
@@ -37,7 +37,7 @@ syncthing-config \- Syncthing Configurat
|
||||
.nf
|
||||
.ft C
|
||||
$XDG_STATE_HOME/syncthing
|
||||
-$HOME/.local/state/syncthing
|
||||
+$HOME/.config/syncthing
|
||||
$HOME/Library/Application Support/Syncthing
|
||||
%LOCALAPPDATA%\eSyncthing
|
||||
.ft P
|
||||
@@ -48,7 +48,7 @@ $HOME/Library/Application Support/Syncth
|
||||
.sp
|
||||
Changed in version 1.27.0: The default location of the configuration and database directory on
|
||||
Unix\-like systems was changed to \fB$XDG_STATE_HOME/syncthing\fP or
|
||||
-\fB$HOME/.local/state/syncthing\fP\&. Previously the default config location
|
||||
+\fB$HOME/.config/syncthing\fP\&. Previously the default config location
|
||||
was \fB$XDG_CONFIG_HOME/syncthing\fP or \fB$HOME/.config/syncthing\fP\&. The
|
||||
database directory was previously \fB$HOME/.config/syncthing\fP or, if the
|
||||
environment variable was set, \fB$XDG_DATA_HOME/syncthing\fP\&. Existing
|
||||
@@ -65,7 +65,7 @@ Syncthing also keeps an index database w
|
||||
default stored in the same directory, though this can be overridden.
|
||||
.sp
|
||||
The location defaults to \fB$XDG_STATE_HOME/syncthing\fP or
|
||||
-\fB$HOME/.local/state/syncthing\fP (Unix\-like), \fB$HOME/Library/Application
|
||||
+\fB$HOME/.config/syncthing\fP (Unix\-like), \fB$HOME/Library/Application
|
||||
Support/Syncthing\fP (Mac), or \fB%LOCALAPPDATA%\eSyncthing\fP (Windows). It can
|
||||
be changed at runtime using the \fB\-\-config\fP or \fB\-\-home\fP flags or the
|
||||
corresponding environment varibles (\fB$STCONFDIR\fP or \fBSTHOMEDIR\fP). The
|
||||
diff -rupN syncthing.orig/man/syncthing-faq.7 syncthing/man/syncthing-faq.7
|
||||
--- syncthing.orig/man/syncthing-faq.7 2023-12-11 06:46:46.000000000 +0000
|
||||
+++ syncthing/man/syncthing-faq.7 2024-01-03 01:01:17.529930502 +0000
|
||||
@@ -355,7 +355,7 @@ The web GUI contains a \fBRecent Changes
|
||||
displays changes since the last (re)start of Syncthing. With the \fB\-\-audit\fP
|
||||
option you can enable a persistent, detailed log of changes and most
|
||||
activities, which contains a JSON\-formatted sequence of events in the
|
||||
-\fB~/.local/state/syncthing/audit\-_date_\-_time_.log\fP file.
|
||||
+\fB~/.config/syncthing/audit\-_date_\-_time_.log\fP file.
|
||||
.SS Does the audit log contain every change?
|
||||
.sp
|
||||
The audit log (and the \fBRecent Changes\fP window) sees the changes that your
|
|
@ -7,6 +7,6 @@
|
|||
ROOTPASS=$(get_setting root.password)
|
||||
# Set the root user and password for SyncThing
|
||||
syncthing generate --gui-user root --gui-password ${ROOTPASS}
|
||||
xmlstarlet ed --inplace -u "//configuration/gui/address" -v ":8384" /storage/.config/syncthing/config.xml
|
||||
xmlstarlet ed --inplace -u "//configuration/gui/address" -v "0.0.0.0:8384" /storage/.config/syncthing/config.xml
|
||||
|
||||
syncthing -no-browser -no-restart
|
||||
|
|
|
@ -58,4 +58,6 @@ if [ -e /storage/.please_resize_me ] ; then
|
|||
fi
|
||||
fi
|
||||
sync &>/dev/null
|
||||
sync &>/dev/null
|
||||
sync &>/dev/null
|
||||
reboot &>/dev/null
|
||||
|
|
|
@ -674,20 +674,6 @@ update_bootmenu() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "${GRUB_DEFAULT}" -a -f /flash/EFI/BOOT/grub.cfg ]; then
|
||||
if grep -q "^menuentry \"${GRUB_DEFAULT}\"" /flash/EFI/BOOT/grub.cfg 2>/dev/null; then
|
||||
crnt_default="$(awk '/^set default/ {print substr($2,9,19)}' /flash/EFI/BOOT/grub.cfg)"
|
||||
if [ ! "$crnt_default" = "\"${GRUB_DEFAULT}\"" ]; then
|
||||
progress "Updating /flash/EFI/BOOT/grub.cfg [$crnt_default -> \"${GRUB_DEFAULT}\"]"
|
||||
|
||||
mount -o remount,rw /flash
|
||||
sed -e "s/^set default=.*/set default=\"${GRUB_DEFAULT}\"/" -i /flash/EFI/BOOT/grub.cfg
|
||||
rm -f /flash/grub.cfg
|
||||
mount -o remount,ro /flash
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
check_out_of_space() {
|
||||
|
|
|
@ -15,13 +15,13 @@ unset CURRENT_MODE
|
|||
unset AC_STATUS
|
||||
while true
|
||||
do
|
||||
if [ "$(get_setting system.powersave)" = 1 ]
|
||||
AC_STATUS="$(cat /sys/class/power_supply/[bB][aA][tT]*/status 2>/dev/null)"
|
||||
if [[ ! "${CURRENT_MODE}" =~ ${AC_STATUS} ]]
|
||||
then
|
||||
AC_STATUS="$(cat /sys/class/power_supply/[bB][aA][tT]*/status 2>/dev/null)"
|
||||
if [[ ! "${CURRENT_MODE}" =~ ${AC_STATUS} ]]
|
||||
then
|
||||
case ${AC_STATUS} in
|
||||
Disch*)
|
||||
case ${AC_STATUS} in
|
||||
Disch*)
|
||||
if [ "$(get_setting system.powersave)" = 1 ]
|
||||
then
|
||||
log $0 "Switching to battery mode."
|
||||
if [ -e "/tmp/.gpu_performance_level" ]
|
||||
then
|
||||
|
@ -33,7 +33,6 @@ do
|
|||
then
|
||||
GPUPROFILE="auto"
|
||||
fi
|
||||
ledcontrol $(get_setting led.color)
|
||||
audio_powersave 1
|
||||
cpu_perftune battery
|
||||
gpu_performance_level ${GPUPROFILE}
|
||||
|
@ -41,12 +40,12 @@ do
|
|||
wake_events enabled
|
||||
runtime_power_management auto 5
|
||||
scsi_link_power_management med_power_with_dipm
|
||||
/usr/bin/wifictl setpowersave
|
||||
|
||||
;;
|
||||
*)
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ "$(get_setting system.powersave)" = 1 ]
|
||||
then
|
||||
log $0 "Switching to performance mode."
|
||||
ledcontrol $(get_setting led.color)
|
||||
audio_powersave 0
|
||||
cpu_perftune performance
|
||||
gpu_performance_level auto
|
||||
|
@ -54,10 +53,11 @@ do
|
|||
wake_events disabled
|
||||
runtime_power_management on 0
|
||||
scsi_link_power_management ""
|
||||
/usr/bin/wifictl setpowersave
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
/usr/bin/wifictl setpowersave
|
||||
ledcontrol $(get_setting led.color)
|
||||
CURRENT_MODE="${AC_STATUS}"
|
||||
fi
|
||||
### Until we have an overlay. :rofl:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="systemd"
|
||||
PKG_VERSION="252.19"
|
||||
PKG_VERSION="252.21"
|
||||
PKG_LICENSE="LGPL2.1+"
|
||||
PKG_SITE="http://www.freedesktop.org/wiki/Software/systemd"
|
||||
PKG_URL="https://github.com/systemd/systemd-stable/archive/v${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -290,16 +290,6 @@ LABEL linux
|
|||
APPEND boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE $SYSLINUX_PARAMETERS @EXTRA_CMDLINE@
|
||||
EOF
|
||||
|
||||
cat << EOF > $TMPDIR/part1/EFI/BOOT/grub.cfg
|
||||
set timeout="0"
|
||||
set default="${DISTRO}"
|
||||
|
||||
menuentry "${DISTRO}" {
|
||||
search --set -f /KERNEL
|
||||
linux /KERNEL boot=UUID=$UUID_SYSTEM disk=UUID=$UUID_STORAGE @EXTRA_CMDLINE@
|
||||
}
|
||||
EOF
|
||||
|
||||
# uefi boot / hybrid mode
|
||||
cp /usr/share/syslinux/bootx64.efi $TMPDIR/part1/EFI/BOOT
|
||||
cp /usr/share/syslinux/ldlinux.e64 $TMPDIR/part1/EFI/BOOT
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="emulationstation"
|
||||
PKG_VERSION="99b7b72818f3fd702b0d11d3e530810568405a3a"
|
||||
PKG_VERSION="d5fe1df364cca1ee4a22de493014ca4918b8afec"
|
||||
PKG_GIT_CLONE_BRANCH="main"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
|
|
|
@ -18,7 +18,7 @@ PKG_PATCH_DIRS+="${DEVICE}"
|
|||
|
||||
case ${DEVICE} in
|
||||
S922X*)
|
||||
PKG_VERSION="6.1.69"
|
||||
PKG_VERSION="6.1.70"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
;;
|
||||
esac
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -2856,6 +2856,7 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
|
|||
#
|
||||
# Rockchip media platform drivers
|
||||
#
|
||||
CONFIG_VIDEO_ROCKCHIP_IEP=y
|
||||
CONFIG_VIDEO_ROCKCHIP_RGA=y
|
||||
CONFIG_VIDEO_ROCKCHIP_ISP1=y
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ case ${DEVICE} in
|
|||
PKG_GIT_CLONE_BRANCH="main"
|
||||
;;
|
||||
RK33*)
|
||||
PKG_VERSION="6.1.69"
|
||||
PKG_VERSION="6.1.70"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
;;
|
||||
esac
|
||||
|
@ -140,7 +140,7 @@ pre_make_target() {
|
|||
if [ "${TARGET_ARCH}" = "x86_64" ]; then
|
||||
# copy some extra firmware to linux tree
|
||||
mkdir -p ${PKG_BUILD}/external-firmware
|
||||
cp -a $(get_build_dir kernel-firmware)/{amdgpu,amd-ucode,i915,radeon,e100,rtl_nic} ${PKG_BUILD}/external-firmware
|
||||
cp -a $(get_build_dir kernel-firmware)/{amd,amdgpu,amd-ucode,intel,i915,radeon,e100,rtl_nic} ${PKG_BUILD}/external-firmware
|
||||
|
||||
cp -a $(get_build_dir intel-ucode)/intel-ucode ${PKG_BUILD}/external-firmware
|
||||
|
||||
|
|
1344
projects/Rockchip/packages/linux/patches/RK3399/000-rk3399-dts.patch
Normal file
1344
projects/Rockchip/packages/linux/patches/RK3399/000-rk3399-dts.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,150 @@
|
|||
diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi linux/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi
|
||||
--- linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi 2024-01-02 16:20:12.770155149 +0000
|
||||
+++ linux/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi 2024-01-02 21:04:45.168352345 +0000
|
||||
@@ -9,34 +9,30 @@
|
||||
opp-shared;
|
||||
|
||||
opp00 {
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <800000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
- opp01 {
|
||||
opp-hz = /bits/ 64 <600000000>;
|
||||
opp-microvolt = <825000>;
|
||||
+ clock-latency-ns = <40000>;
|
||||
};
|
||||
- opp02 {
|
||||
- opp-hz = /bits/ 64 <816000000>;
|
||||
- opp-microvolt = <850000>;
|
||||
- };
|
||||
- opp03 {
|
||||
+ opp01 {
|
||||
opp-hz = /bits/ 64 <1008000000>;
|
||||
opp-microvolt = <900000>;
|
||||
};
|
||||
- opp04 {
|
||||
+ opp02 {
|
||||
opp-hz = /bits/ 64 <1200000000>;
|
||||
opp-microvolt = <975000>;
|
||||
};
|
||||
- opp05 {
|
||||
+ opp03 {
|
||||
opp-hz = /bits/ 64 <1416000000>;
|
||||
opp-microvolt = <1100000>;
|
||||
};
|
||||
- opp06 {
|
||||
+ opp04 {
|
||||
opp-hz = /bits/ 64 <1512000000>;
|
||||
opp-microvolt = <1150000>;
|
||||
};
|
||||
+ opp05 {
|
||||
+ opp-hz = /bits/ 64 <1608000000>;
|
||||
+ opp-microvolt = <1200000>;
|
||||
+ };
|
||||
};
|
||||
|
||||
cluster1_opp: opp-table-1 {
|
||||
@@ -44,40 +40,32 @@
|
||||
opp-shared;
|
||||
|
||||
opp00 {
|
||||
- opp-hz = /bits/ 64 <408000000>;
|
||||
- opp-microvolt = <800000>;
|
||||
- clock-latency-ns = <40000>;
|
||||
- };
|
||||
- opp01 {
|
||||
opp-hz = /bits/ 64 <600000000>;
|
||||
- opp-microvolt = <800000>;
|
||||
- };
|
||||
- opp02 {
|
||||
- opp-hz = /bits/ 64 <816000000>;
|
||||
opp-microvolt = <825000>;
|
||||
+ clock-latency-ns = <40000>;
|
||||
};
|
||||
- opp03 {
|
||||
+ opp01 {
|
||||
opp-hz = /bits/ 64 <1008000000>;
|
||||
opp-microvolt = <850000>;
|
||||
};
|
||||
- opp04 {
|
||||
+ opp02 {
|
||||
opp-hz = /bits/ 64 <1200000000>;
|
||||
opp-microvolt = <900000>;
|
||||
};
|
||||
- opp05 {
|
||||
+ opp03 {
|
||||
opp-hz = /bits/ 64 <1416000000>;
|
||||
opp-microvolt = <975000>;
|
||||
};
|
||||
- opp06 {
|
||||
+ opp04 {
|
||||
opp-hz = /bits/ 64 <1608000000>;
|
||||
opp-microvolt = <1050000>;
|
||||
};
|
||||
- opp07 {
|
||||
+ opp05 {
|
||||
opp-hz = /bits/ 64 <1800000000>;
|
||||
opp-microvolt = <1150000>;
|
||||
};
|
||||
- opp08 {
|
||||
- opp-hz = /bits/ 64 <2016000000>;
|
||||
+ opp06 {
|
||||
+ opp-hz = /bits/ 64 <2088000000>;
|
||||
opp-microvolt = <1250000>;
|
||||
};
|
||||
};
|
||||
@@ -90,46 +78,30 @@
|
||||
opp-microvolt = <800000>;
|
||||
};
|
||||
opp01 {
|
||||
- opp-hz = /bits/ 64 <297000000>;
|
||||
- opp-microvolt = <800000>;
|
||||
- };
|
||||
- opp02 {
|
||||
- opp-hz = /bits/ 64 <400000000>;
|
||||
- opp-microvolt = <825000>;
|
||||
- };
|
||||
- opp03 {
|
||||
- opp-hz = /bits/ 64 <500000000>;
|
||||
- opp-microvolt = <850000>;
|
||||
- };
|
||||
- opp04 {
|
||||
opp-hz = /bits/ 64 <600000000>;
|
||||
opp-microvolt = <925000>;
|
||||
};
|
||||
- opp05 {
|
||||
+ opp02 {
|
||||
opp-hz = /bits/ 64 <800000000>;
|
||||
opp-microvolt = <1075000>;
|
||||
};
|
||||
+ opp03 {
|
||||
+ opp-hz = /bits/ 64 <900000000>;
|
||||
+ opp-microvolt = <1150000>;
|
||||
+ };
|
||||
};
|
||||
|
||||
dmc_opp_table: opp-table-3 {
|
||||
compatible = "operating-points-v2";
|
||||
|
||||
opp00 {
|
||||
- opp-hz = /bits/ 64 <400000000>;
|
||||
- opp-microvolt = <900000>;
|
||||
- };
|
||||
- opp01 {
|
||||
opp-hz = /bits/ 64 <666000000>;
|
||||
opp-microvolt = <900000>;
|
||||
};
|
||||
- opp02 {
|
||||
- opp-hz = /bits/ 64 <800000000>;
|
||||
+ opp01 {
|
||||
+ opp-hz = /bits/ 64 <856000000>;
|
||||
opp-microvolt = <900000>;
|
||||
};
|
||||
- opp03 {
|
||||
- opp-hz = /bits/ 64 <928000000>;
|
||||
- opp-microvolt = <925000>;
|
||||
- };
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,394 @@
|
|||
diff -rupN linux.orig/drivers/gpu/drm/panel/Kconfig linux/drivers/gpu/drm/panel/Kconfig
|
||||
--- linux.orig/drivers/gpu/drm/panel/Kconfig 2023-12-15 19:18:56.948899851 +0000
|
||||
+++ linux/drivers/gpu/drm/panel/Kconfig 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -588,6 +588,15 @@ config DRM_PANEL_SHARP_LS043T1LE01
|
||||
Say Y here if you want to enable support for Sharp LS043T1LE01 qHD
|
||||
(540x960) DSI panel as found on the Qualcomm APQ8074 Dragonboard
|
||||
|
||||
+config DRM_PANEL_SHARP_LS054B3SX01
|
||||
+ bool "Sharp LS054B3SX01 1152x1920 video mode panel"
|
||||
+ depends on OF
|
||||
+ depends on DRM_MIPI_DSI
|
||||
+ depends on BACKLIGHT_CLASS_DEVICE
|
||||
+ help
|
||||
+ say Y here if you want to enable support for Sharp LS054B3SX01
|
||||
+ 1152x1920 panel as found in Anbernic RG552.
|
||||
+
|
||||
config DRM_PANEL_SHARP_LS060T1SX01
|
||||
tristate "Sharp LS060T1SX01 FullHD video mode panel"
|
||||
depends on OF
|
||||
diff -rupN linux.orig/drivers/gpu/drm/panel/Makefile linux/drivers/gpu/drm/panel/Makefile
|
||||
--- linux.orig/drivers/gpu/drm/panel/Makefile 2023-12-15 19:18:56.948899851 +0000
|
||||
+++ linux/drivers/gpu/drm/panel/Makefile 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -59,6 +59,7 @@ obj-$(CONFIG_DRM_PANEL_SEIKO_43WVF1G) +=
|
||||
obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o
|
||||
obj-$(CONFIG_DRM_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
|
||||
obj-$(CONFIG_DRM_PANEL_SHARP_LS043T1LE01) += panel-sharp-ls043t1le01.o
|
||||
+obj-$(CONFIG_DRM_PANEL_SHARP_LS054B3SX01) += panel-sharp-ls054b3sx01.o
|
||||
obj-$(CONFIG_DRM_PANEL_SHARP_LS060T1SX01) += panel-sharp-ls060t1sx01.o
|
||||
obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7701) += panel-sitronix-st7701.o
|
||||
obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o
|
||||
diff -rupN linux.orig/drivers/gpu/drm/panel/panel-sharp-ls054b3sx01.c linux/drivers/gpu/drm/panel/panel-sharp-ls054b3sx01.c
|
||||
--- linux.orig/drivers/gpu/drm/panel/panel-sharp-ls054b3sx01.c 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux/drivers/gpu/drm/panel/panel-sharp-ls054b3sx01.c 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -0,0 +1,360 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-only
|
||||
+/*
|
||||
+ * Copyright (c) 2022 Maya Matuszczyk <maccraft123mc@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/gpio/consumer.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/regulator/consumer.h>
|
||||
+
|
||||
+#include <video/mipi_display.h>
|
||||
+
|
||||
+#include <drm/drm_mipi_dsi.h>
|
||||
+#include <drm/drm_modes.h>
|
||||
+#include <drm/drm_panel.h>
|
||||
+
|
||||
+struct sharp_ls054 {
|
||||
+ struct drm_panel panel;
|
||||
+ struct mipi_dsi_device *dsi;
|
||||
+ struct regulator *iovcc_supply;
|
||||
+ struct regulator *vsp_supply;
|
||||
+ struct regulator *vsn_supply;
|
||||
+ struct gpio_desc *reset_gpio;
|
||||
+ enum drm_panel_orientation orientation;
|
||||
+ bool prepared;
|
||||
+};
|
||||
+
|
||||
+static inline struct sharp_ls054 *to_sharp_ls054(struct drm_panel *panel)
|
||||
+{
|
||||
+ return container_of(panel, struct sharp_ls054, panel);
|
||||
+}
|
||||
+
|
||||
+#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \
|
||||
+ static const u8 b[] = { cmd, seq }; \
|
||||
+ int ret; \
|
||||
+ ret = mipi_dsi_dcs_write_buffer(dsi, b, ARRAY_SIZE(b)); \
|
||||
+ if (ret < 0) \
|
||||
+ return ret; \
|
||||
+ } while (0)
|
||||
+
|
||||
+#define SHARP_LS054_SETEXTC 0xB9
|
||||
+#define SHARP_LS054_SETSEQUENCE 0xB0
|
||||
+#define SHARP_LS054_SETGAMMACURVE 0xE0
|
||||
+#define SHARP_LS054_SETPOWER 0xB1
|
||||
+#define SHARP_LS054_SETVREF 0xD2
|
||||
+#define SHARP_LS054_SETGIP0 0xD3
|
||||
+#define SHARP_LS054_SETGIP1 0xD5
|
||||
+#define SHARP_LS054_SETGIP2 0xD6
|
||||
+#define SHARP_LS054_SETGIP3 0xD8
|
||||
+#define SHARP_LS054_SETDISP 0xB2
|
||||
+#define SHARP_LS054_SETCYC 0xB4
|
||||
+#define SHARP_LS054_SETMIPI 0xBA
|
||||
+#define SHARP_LS054_SETPTBA 0xBF
|
||||
+
|
||||
+static int sharp_ls054_init_sequence(struct sharp_ls054 *ctx)
|
||||
+{
|
||||
+ struct mipi_dsi_device *dsi = ctx->dsi;
|
||||
+ int ret;
|
||||
+
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETEXTC,
|
||||
+ 0xFF, 0x83, 0x99);
|
||||
+ //dsi_dcs_write_seq(dsi, SHARP_LS054_SETSEQUENCE,
|
||||
+ // 0x00, 0x00, 0x65);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETGAMMACURVE,
|
||||
+ 0x01, 0x13, 0x17, 0x34, 0x38, 0x3E, 0x2C, 0x47,
|
||||
+ 0x07, 0x0C, 0x0F, 0x12, 0x14, 0x11, 0x13, 0x12,
|
||||
+ 0x18, 0x0B, 0x17, 0x07, 0x13, 0x02, 0x14, 0x18,
|
||||
+ 0x32, 0x37, 0x3D, 0x29, 0x43, 0x07, 0x0E, 0x0C,
|
||||
+ 0x0F, 0x11, 0x10, 0x12, 0x12, 0x18, 0x0C, 0x17,
|
||||
+ 0x07, 0x13);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETPOWER,
|
||||
+ 0x00, 0x7C, 0x38, 0x35, 0x99, 0x09, 0x22, 0x22,
|
||||
+ 0x72, 0xF2, 0x68, 0x58);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETVREF,
|
||||
+ 0x99);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETGIP0,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00,
|
||||
+ 0x10, 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
|
||||
+ 0x07, 0x03, 0x00, 0x00, 0x00, 0x05, 0x08);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETGIP1,
|
||||
+ 0x00, 0x00, 0x01, 0x00, 0x03, 0x02, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x19, 0x00, 0x18, 0x00, 0x21, 0x20,
|
||||
+ 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x32, 0x32, 0x31, 0x31, 0x30, 0x30);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETGIP2,
|
||||
+ 0x40, 0x40, 0x02, 0x03, 0x00, 0x01, 0x40, 0x40,
|
||||
+ 0x40, 0x40, 0x18, 0x40, 0x19, 0x40, 0x20, 0x21,
|
||||
+ 0x40, 0x18, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
|
||||
+ 0x40, 0x40, 0x32, 0x32, 0x31, 0x31, 0x30, 0x30);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETGIP3,
|
||||
+ 0x28, 0x2A, 0x00, 0x2A, 0x28, 0x02, 0xC0, 0x2A,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x28, 0x02, 0x00, 0x2A, 0x28, 0x02, 0xC0, 0x2A);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETDISP,
|
||||
+ 0x00, 0x80, 0x10, 0x7F, 0x05, 0x01, 0x23, 0x4D,
|
||||
+ 0x21, 0x01);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETCYC,
|
||||
+ 0x00, 0x3F, 0x00, 0x41, 0x00, 0x3D, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x01, 0x02,
|
||||
+ 0x05, 0x40, 0x00, 0x00, 0x3A, 0x00, 0x41, 0x00,
|
||||
+ 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
|
||||
+ 0x0F, 0x01, 0x02, 0x05, 0x00, 0x00, 0x00, 0x3A);
|
||||
+ dsi_dcs_write_seq(dsi, SHARP_LS054_SETMIPI,
|
||||
+ 0x03, 0x82, 0xA0, 0xE5);
|
||||
+
|
||||
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
|
||||
+ if (ret < 0)
|
||||
+ {
|
||||
+ dev_err(&dsi->dev, "Failed to exit sleep mode: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+ msleep(130);
|
||||
+
|
||||
+ dsi_dcs_write_seq(dsi, 0x29);
|
||||
+ ret = mipi_dsi_dcs_set_display_on(dsi);
|
||||
+ if (ret < 0)
|
||||
+ {
|
||||
+ dev_err(&dsi->dev, "Failed to set display on: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+ msleep(50);
|
||||
+
|
||||
+ mipi_dsi_dcs_set_display_brightness(dsi, 0xFF);
|
||||
+ dsi_dcs_write_seq(dsi, MIPI_DCS_WRITE_POWER_SAVE, 0x00);
|
||||
+ dsi_dcs_write_seq(dsi, 0x53, 0x24); //MIPI_DCS_WRITE_CONTROL_DISPLAY ?
|
||||
+ mipi_dsi_dcs_set_tear_on(dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int sharp_ls054_prepare(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct sharp_ls054 *ctx = to_sharp_ls054(panel);
|
||||
+ struct mipi_dsi_device *dsi = ctx->dsi;
|
||||
+ struct device *dev = &ctx->dsi->dev;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (ctx->prepared)
|
||||
+ return 0;
|
||||
+
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
|
||||
+
|
||||
+ ret = regulator_enable(ctx->iovcc_supply);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ usleep_range(1500, 3000);
|
||||
+
|
||||
+ ret = regulator_enable(ctx->vsp_supply);
|
||||
+ if (ret < 0)
|
||||
+ goto err_vsp;
|
||||
+
|
||||
+ usleep_range(1500, 3000);
|
||||
+
|
||||
+ ret = regulator_enable(ctx->vsn_supply);
|
||||
+ if (ret < 0)
|
||||
+ goto err_on;
|
||||
+
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
|
||||
+
|
||||
+ msleep(200);
|
||||
+
|
||||
+ ret = sharp_ls054_init_sequence(ctx);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(dev, "Failed to initialize panel: %d\n", ret);
|
||||
+ goto err_on;
|
||||
+ }
|
||||
+
|
||||
+ ctx->prepared = true;
|
||||
+
|
||||
+ return 0;
|
||||
+
|
||||
+err_on:
|
||||
+ regulator_disable(ctx->vsn_supply);
|
||||
+
|
||||
+err_vsp:
|
||||
+ regulator_disable(ctx->vsp_supply);
|
||||
+
|
||||
+err_iovcc:
|
||||
+ regulator_disable(ctx->iovcc_supply);
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int sharp_ls054_unprepare(struct drm_panel *panel)
|
||||
+{
|
||||
+ struct sharp_ls054 *ctx = to_sharp_ls054(panel);
|
||||
+ struct mipi_dsi_device *dsi = ctx->dsi;
|
||||
+ struct device *dev = &ctx->dsi->dev;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (!ctx->prepared)
|
||||
+ return 0;
|
||||
+
|
||||
+ ret = mipi_dsi_dcs_set_display_off(dsi);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(dev, "Failed to set display off: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+ usleep_range(2000, 3000);
|
||||
+
|
||||
+ ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(dev, "Failed to enter sleep mode: %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+ msleep(5);
|
||||
+
|
||||
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
|
||||
+
|
||||
+ usleep_range(500, 1000);
|
||||
+ regulator_disable(ctx->vsn_supply);
|
||||
+ usleep_range(500, 1000);
|
||||
+ regulator_disable(ctx->vsp_supply);
|
||||
+ usleep_range(500, 1000);
|
||||
+ regulator_disable(ctx->iovcc_supply);
|
||||
+
|
||||
+ ctx->prepared = false;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct drm_display_mode sharp_ls054_mode = {
|
||||
+ .clock = ((1152 + 64 + 4 + 32) * (1920 + 56 + 3 + 6) * 60) / 1000,
|
||||
+ .hdisplay = 1152,
|
||||
+ .hsync_start = 1152 + 64,
|
||||
+ .hsync_end = 1152 + 64 + 4,
|
||||
+ .htotal = 1152 + 64 + 4 + 32,
|
||||
+ .vdisplay = 1920,
|
||||
+ .vsync_start = 1920 + 56,
|
||||
+ .vsync_end = 1920 + 56 + 3,
|
||||
+ .vtotal = 1920 + 56 + 3 + 6,
|
||||
+ .width_mm = 75,
|
||||
+ .height_mm = 132,
|
||||
+ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
|
||||
+};
|
||||
+
|
||||
+static int sharp_ls054_get_modes(struct drm_panel *panel,
|
||||
+ struct drm_connector *connector)
|
||||
+{
|
||||
+ struct sharp_ls054 *ctx = to_sharp_ls054(panel);
|
||||
+ struct drm_display_mode *mode;
|
||||
+
|
||||
+ mode = drm_mode_duplicate(connector->dev, &sharp_ls054_mode);
|
||||
+ if (!mode)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ drm_mode_set_name(mode);
|
||||
+ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
|
||||
+
|
||||
+ connector->display_info.width_mm = mode->width_mm;
|
||||
+ connector->display_info.height_mm = mode->height_mm;
|
||||
+
|
||||
+ drm_mode_probed_add(connector, mode);
|
||||
+ drm_connector_set_panel_orientation(connector, ctx->orientation);
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static const struct drm_panel_funcs sharp_ls054_panel_funcs = {
|
||||
+ .prepare = sharp_ls054_prepare,
|
||||
+ .unprepare = sharp_ls054_unprepare,
|
||||
+ .get_modes = sharp_ls054_get_modes,
|
||||
+};
|
||||
+
|
||||
+static int sharp_ls054_probe(struct mipi_dsi_device *dsi)
|
||||
+{
|
||||
+ struct device *dev = &dsi->dev;
|
||||
+ struct sharp_ls054 *ctx;
|
||||
+ int ret;
|
||||
+
|
||||
+ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
|
||||
+ if (!ctx)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ ctx->iovcc_supply = devm_regulator_get(dev, "iovcc");
|
||||
+ if (IS_ERR(ctx->iovcc_supply))
|
||||
+ return PTR_ERR(ctx->iovcc_supply);
|
||||
+
|
||||
+ ctx->vsp_supply = devm_regulator_get(dev, "vsp");
|
||||
+ if (IS_ERR(ctx->vsp_supply))
|
||||
+ return PTR_ERR(ctx->vsp_supply);
|
||||
+
|
||||
+ ctx->vsn_supply = devm_regulator_get(dev, "vsn");
|
||||
+ if (IS_ERR(ctx->vsn_supply))
|
||||
+ return PTR_ERR(ctx->vsn_supply);
|
||||
+
|
||||
+ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
|
||||
+ if (IS_ERR(ctx->reset_gpio))
|
||||
+ return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio),
|
||||
+ "Failed to get reset-gpios\n");
|
||||
+
|
||||
+ ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
|
||||
+ if (ret < 0)
|
||||
+ dev_err(dev, "%pOF: failed to get orientation, %d\n", dev->of_node, ret);
|
||||
+
|
||||
+ ctx->dsi = dsi;
|
||||
+ mipi_dsi_set_drvdata(dsi, ctx);
|
||||
+
|
||||
+ dsi->lanes = 4;
|
||||
+ dsi->format = MIPI_DSI_FMT_RGB888;
|
||||
+ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
|
||||
+ MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET |
|
||||
+ MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO_AUTO_VERT;
|
||||
+
|
||||
+ drm_panel_init(&ctx->panel, dev, &sharp_ls054_panel_funcs,
|
||||
+ DRM_MODE_CONNECTOR_DSI);
|
||||
+
|
||||
+ ret = drm_panel_of_backlight(&ctx->panel);
|
||||
+ if (ret)
|
||||
+ return dev_err_probe(dev, ret, "Failed to get backlight\n");
|
||||
+
|
||||
+ drm_panel_add(&ctx->panel);
|
||||
+
|
||||
+ ret = mipi_dsi_attach(dsi);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(dev, "Failed to attach to DSI host: %d\n", ret);
|
||||
+ drm_panel_remove(&ctx->panel);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void sharp_ls054_remove(struct mipi_dsi_device *dsi)
|
||||
+{
|
||||
+ struct sharp_ls054 *ctx = mipi_dsi_get_drvdata(dsi);
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = mipi_dsi_detach(dsi);
|
||||
+ if (ret < 0)
|
||||
+ dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
|
||||
+
|
||||
+ drm_panel_remove(&ctx->panel);
|
||||
+}
|
||||
+
|
||||
+static const struct of_device_id sharp_ls054b3sx01_of_match[] = {
|
||||
+ { .compatible = "sharp,ls054b3sx01" },
|
||||
+ { /* sentinel */ }
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, sharp_ls054b3sx01_of_match);
|
||||
+
|
||||
+static struct mipi_dsi_driver sharp_ls054_driver = {
|
||||
+ .probe = sharp_ls054_probe,
|
||||
+ .remove = sharp_ls054_remove,
|
||||
+ .driver = {
|
||||
+ .name = "panel-sharp-ls054b3sx01",
|
||||
+ .of_match_table = sharp_ls054b3sx01_of_match,
|
||||
+ },
|
||||
+};
|
||||
+module_mipi_dsi_driver(sharp_ls054_driver);
|
||||
+
|
||||
+MODULE_AUTHOR("Maya Matuszczyk <maccraft123mc@gmail.com>");
|
||||
+MODULE_DESCRIPTION("Panel driver for Sharp LS054B3SX01 1152x1920 Video Mode DSI Panel");
|
||||
+MODULE_LICENSE("GPL v2");
|
|
@ -1,12 +0,0 @@
|
|||
diff -rupN linux.orig/drivers/staging/media/rkvdec/Kconfig linux/drivers/staging/media/rkvdec/Kconfig
|
||||
--- linux.orig/drivers/staging/media/rkvdec/Kconfig 2023-11-04 15:02:12.097534138 +0000
|
||||
+++ linux/drivers/staging/media/rkvdec/Kconfig 2023-11-18 19:39:03.078054602 +0000
|
||||
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
config VIDEO_ROCKCHIP_VDEC
|
||||
tristate "Rockchip Video Decoder driver"
|
||||
- depends on ARCH_ROCKCHIP || COMPILE_TEST
|
||||
+ depends on ARCH_ROCKCHIP
|
||||
depends on VIDEO_DEV
|
||||
select MEDIA_CONTROLLER
|
||||
select MEDIA_CONTROLLER_REQUEST_API
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,12 @@
|
|||
diff -rupN linux.orig/drivers/power/supply/cw2015_battery.c linux/drivers/power/supply/cw2015_battery.c
|
||||
--- linux.orig/drivers/power/supply/cw2015_battery.c 2023-12-15 19:18:59.060967411 +0000
|
||||
+++ linux/drivers/power/supply/cw2015_battery.c 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -553,7 +553,7 @@ static enum power_supply_property cw_bat
|
||||
};
|
||||
|
||||
static const struct power_supply_desc cw2015_bat_desc = {
|
||||
- .name = "cw2015-battery",
|
||||
+ .name = "battery",
|
||||
.type = POWER_SUPPLY_TYPE_BATTERY,
|
||||
.properties = cw_battery_properties,
|
||||
.num_properties = ARRAY_SIZE(cw_battery_properties),
|
8577
projects/Rockchip/packages/linux/patches/RK3399/007-rk3399-vpu.patch
Normal file
8577
projects/Rockchip/packages/linux/patches/RK3399/007-rk3399-vpu.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,12 @@
|
|||
diff -rupN linux.orig/drivers/input/touchscreen/goodix.c linux/drivers/input/touchscreen/goodix.c
|
||||
--- linux.orig/drivers/input/touchscreen/goodix.c 2024-01-02 16:20:16.170247325 +0000
|
||||
+++ linux/drivers/input/touchscreen/goodix.c 2024-01-03 15:28:50.457334216 +0000
|
||||
@@ -1007,6 +1007,8 @@ retry_get_irq_gpio:
|
||||
|
||||
/* Get the reset line GPIO pin number */
|
||||
gpiod = devm_gpiod_get_optional(dev, GOODIX_GPIO_RST_NAME, ts->gpiod_rst_flags);
|
||||
+ if (IS_ERR(gpiod))
|
||||
+ gpiod = devm_gpiod_get_optional(dev, GOODIX_GPIO_RST_NAME, GPIOD_OUT_LOW);
|
||||
if (IS_ERR(gpiod)) {
|
||||
error = PTR_ERR(gpiod);
|
||||
if (error != -EPROBE_DEFER)
|
|
@ -0,0 +1,54 @@
|
|||
diff -rupN linux.orig/drivers/input/touchscreen/goodix.c linux/drivers/input/touchscreen/goodix.c
|
||||
--- linux.orig/drivers/input/touchscreen/goodix.c 2023-12-15 19:18:57.364913158 +0000
|
||||
+++ linux/drivers/input/touchscreen/goodix.c 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -1037,7 +1037,7 @@ retry_get_irq_gpio:
|
||||
default:
|
||||
if (ts->gpiod_int && ts->gpiod_rst) {
|
||||
ts->reset_controller_at_probe = true;
|
||||
- ts->load_cfg_from_disk = true;
|
||||
+ ts->load_cfg_from_disk = false;
|
||||
ts->irq_pin_access_method = IRQ_PIN_ACCESS_GPIO;
|
||||
}
|
||||
}
|
||||
diff -rupN linux.orig/drivers/gpio/gpio-rockchip.c linux/drivers/gpio/gpio-rockchip.c
|
||||
--- linux.orig/drivers/gpio/gpio-rockchip.c 2023-12-15 19:18:55.020838176 +0000
|
||||
+++ linux/drivers/gpio/gpio-rockchip.c 2023-12-15 19:20:05.987107578 +0000
|
||||
@@ -335,13 +335,13 @@ static void rockchip_irq_demux(struct ir
|
||||
unsigned long pending;
|
||||
unsigned int irq;
|
||||
|
||||
- dev_dbg(bank->dev, "got irq for bank %s\n", bank->name);
|
||||
+ //dev_dbg(bank->dev, "got irq for bank %s\n", bank->name);
|
||||
|
||||
chained_irq_enter(chip, desc);
|
||||
|
||||
pending = readl_relaxed(bank->reg_base + bank->gpio_regs->int_status);
|
||||
for_each_set_bit(irq, &pending, 32) {
|
||||
- dev_dbg(bank->dev, "handling irq %d\n", irq);
|
||||
+ //dev_dbg(bank->dev, "handling irq %d\n", irq);
|
||||
|
||||
/*
|
||||
* Triggering IRQ on both rising and falling edge
|
||||
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
|
||||
index f3964060a044..dc1ffb3a098b 100644
|
||||
--- a/sound/soc/soc-pcm.c
|
||||
+++ b/sound/soc/soc-pcm.c
|
||||
@@ -41,9 +41,6 @@ static inline int _soc_pcm_ret(struct snd_soc_pcm_runtime *rtd,
|
||||
case -ENOTSUPP:
|
||||
break;
|
||||
default:
|
||||
- dev_err(rtd->dev,
|
||||
- "ASoC: error at %s on %s: %d\n",
|
||||
- func, rtd->dai_link->name, ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -2438,8 +2435,6 @@ static int dpcm_fe_dai_prepare(struct snd_pcm_substream *substream)
|
||||
|
||||
/* there is no point preparing this FE if there are no BEs */
|
||||
if (list_empty(&fe->dpcm[stream].be_clients)) {
|
||||
- dev_err(fe->dev, "ASoC: no backend DAIs enabled for %s\n",
|
||||
- fe->dai_link->name);
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
|
@ -166,15 +166,6 @@ LABEL run
|
|||
APPEND boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} portable ${EXTRA_CMDLINE}
|
||||
EOF
|
||||
|
||||
cat << EOF > "${LE_TMP}/grub.cfg"
|
||||
set timeout="0"
|
||||
set default="Run"
|
||||
menuentry "Run" {
|
||||
search --set -f /KERNEL
|
||||
linux /KERNEL boot=UUID=${UUID_SYSTEM} disk=UUID=${UUID_STORAGE} grub_portable ${EXTRA_CMDLINE}
|
||||
}
|
||||
EOF
|
||||
|
||||
mcopy "${LE_TMP}/syslinux.cfg" ::
|
||||
|
||||
# install syslinux
|
||||
|
@ -192,7 +183,6 @@ EOF
|
|||
mcopy "${TOOLCHAIN}/share/syslinux/bootx64.efi" ::/EFI/BOOT
|
||||
mcopy "${TOOLCHAIN}/share/syslinux/ldlinux.e64" ::/EFI/BOOT
|
||||
mcopy "${TOOLCHAIN}/share/grub/bootia32.efi" ::/EFI/BOOT
|
||||
mcopy "${LE_TMP}/grub.cfg" ::/EFI/BOOT
|
||||
|
||||
elif [ "${BOOTLOADER}" = "bcm2835-bootloader" ]; then
|
||||
# create bootloader configuration
|
||||
|
@ -275,9 +265,7 @@ if [ "${PROJECT}" = "Generic" ]; then
|
|||
# change syslinux default to 'run'
|
||||
echo "image: modifying files on part1 for open virtual appliance..."
|
||||
sed -e "/DEFAULT/ s/installer/run/" -i "${LE_TMP}/syslinux.cfg"
|
||||
sed -e "/set default=/s/\"Installer\"/\"Run\"/" -i "${LE_TMP}/grub.cfg"
|
||||
mcopy "${LE_TMP}/syslinux.cfg" :: >"${SAVE_ERROR}" 2>&1 || show_error
|
||||
mcopy "${LE_TMP}/grub.cfg" ::/EFI/BOOT >"${SAVE_ERROR}" 2>&1 || show_error
|
||||
sync
|
||||
# run fsck
|
||||
echo "image: checking filesystem on part1..."
|
||||
|
|
Loading…
Reference in a new issue