Update mesa.

This commit is contained in:
fewtarius 2024-01-25 12:02:13 +00:00
commit afb9a108b5
No known key found for this signature in database
GPG key ID: F4AE55305D1B8C1A
21 changed files with 11130 additions and 128 deletions

View file

@ -14,3 +14,4 @@ retroarch #pinning to release versions for stability.
vita3k-sa #Patch updates needed.
gzdoom-sa #Stick to release versions.
openbor #newer versions break controls, needs research.
gptokeyb #Newer versions break hotkeys

View file

@ -51,11 +51,11 @@ controls_a[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 65535
controls_a[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 65535
controls_a[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 65535
controls_a[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 65535
controls_a[CONTROL_INDEX_MENU] = 65535
controls_a[CONTROL_INDEX_SAVE_STATE] = 65535
controls_a[CONTROL_INDEX_LOAD_STATE] = 65535
controls_a[CONTROL_INDEX_FAST_FORWARD] = 65535
controls_a[CONTROL_INDEX_SWAP_SCREENS] = 65535
controls_a[CONTROL_INDEX_MENU] = 120
controls_a[CONTROL_INDEX_SAVE_STATE] = 115
controls_a[CONTROL_INDEX_LOAD_STATE] = 108
controls_a[CONTROL_INDEX_FAST_FORWARD] = 116
controls_a[CONTROL_INDEX_SWAP_SCREENS] = 109
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_A] = 65535
controls_a[CONTROL_INDEX_SWAP_ORIENTATION_B] = 65535
controls_a[CONTROL_INDEX_LOAD_GAME] = 65535

View file

@ -0,0 +1,32 @@
back = \\
start = \\
a = \\
a_hk = a
b = \\
b_hk = b
x = \\
x_hk = x
y = \\
y_hk = y
l1 = \\
l1_hk = l
l2 = \\
l2_hk = m
l3 = \\
r1 = \\
r1_hk = s
r2 = \\
r2_hk = t
r3 = \\
up = \\
down = \\
left = \\
right = \\
left_analog_up = \\
left_analog_down = \\
left_analog_left = \\
left_analog_right = \\
right_analog_up = \\
right_analog_down = \\
right_analog_left = \\
right_analog_right = \\

View file

@ -26,6 +26,7 @@ makeinstall_target() {
mkdir -p ${INSTALL}/usr/config/drastic/config
cp -rf ${PKG_BUILD}/drastic_aarch64/* ${INSTALL}/usr/config/drastic/
cp -rf ${PKG_DIR}/config/${DEVICE}/* ${INSTALL}/usr/config/drastic/config/
cp -rf ${PKG_DIR}/config/drastic.gptk ${INSTALL}/usr/config/drastic/
}
post_install() {

View file

@ -7,6 +7,11 @@
jslisten set "-9 drastic"
#load gptokeyb support files
control-gen_init.sh
source /storage/.config/gptokeyb/control.ini
get_controls
#Copy drastic files to .config
if [ ! -d "/storage/.config/drastic" ]; then
mkdir -p /storage/.config/drastic/
@ -26,6 +31,11 @@ do
fi
done
#Copy drastic files to .config
if [ ! -f "/storage/.config/drastic/drastic.gptk" ]; then
cp -r /usr/config/drastic/drastic.gptk /storage/.config/drastic/
fi
#Make drastic savestate folder
if [ ! -d "/storage/roms/savestates/nds" ]; then
mkdir -p /storage/roms/savestates/nds
@ -41,4 +51,6 @@ ln -sf /storage/roms/nds /storage/.config/drastic/backup
cd /storage/.config/drastic/
@LIBEGL@
$GPTOKEYB "drastic" -c "drastic.gptk" &
./drastic "$1"
kill -9 $(pidof gptokeyb)

View file

@ -3,7 +3,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PICO_DIR="/storage/roms/pico-8"
if [ -d "${PICO_DIR}" ]
if [ -d "${PICO_DIR}" ] && [ ! -f "${PICO_DIR}/.disable_splore" ]
then
touch "${PICO_DIR}/Splore.png"
fi

View file

@ -2,7 +2,7 @@
# Copyright (C) 2021-present Shanti Gilbert (https://github.com/shantigilbert)
PKG_NAME="gptokeyb"
PKG_VERSION="be8478deed8552293f5ae66cbcf415d23de9be0f"
PKG_VERSION="0303b36b5376a9b25cf82a53ed4242509daf14e9"
PKG_ARCH="any"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/EmuELEC/gptokeyb"

View file

@ -10,18 +10,20 @@ PKG_TOOLCHAIN="meson"
PKG_PATCH_DIRS+=" ${DEVICE}"
case ${DEVICE} in
RK3588)
RK35*)
PKG_VERSION="120202c675749c5ef81ae4c8cdc30019b4de08f4"
PKG_SITE="https://gitlab.com/panfork/mesa"
PKG_URL="${PKG_SITE}.git"
PKG_GIT_CLONE_BRANCH="csf"
;;
RK3399|RK3566*) #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"
RK33*) #Using upstream dev for panfrost
PKG_VERSION="7adc7678a88edccfbd20af2307e7f50e9ed48e47"
PKG_SITE="https://gitlab.freedesktop.org/mesa/mesa"
PKG_URL="${PKG_SITE}.git"
PKG_PATCH_DIRS+=" panfrost"
;;
*)
PKG_VERSION="23.3.3"
PKG_VERSION="23.3.4"
PKG_SITE="http://www.mesa3d.org/"
PKG_URL="https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-${PKG_VERSION}/mesa-mesa-${PKG_VERSION}.tar.gz"
;;

View file

@ -0,0 +1,58 @@
From 12254d89fcf3adb27ed5d1191449d06207eb61f1 Mon Sep 17 00:00:00 2001
From: Urja Rannikko <urjaman@gmail.com>
Date: Sun, 24 Dec 2023 15:54:52 +0200
Subject: [PATCH] panfrost: Stub implementation of
PIPE_CAP_DEVICE_RESET_STATUS_QUERY
This enables EGL_EXT_create_context_robustness, which is the only
extension missing from panfrost (on my T760, atleast) to report
EGL version 1.5. Recent kicad (built with wxWidgets EGL canvas)
requires EGL 1.5 to enable acceleration.
Signed-off-by: Urja Rannikko <urjaman@gmail.com>
---
src/gallium/drivers/panfrost/pan_context.c | 7 +++++++
src/gallium/drivers/panfrost/pan_screen.c | 3 +++
2 files changed, 10 insertions(+)
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index e1fed545c4bcf..bfd9de4d23231 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -867,6 +867,12 @@ panfrost_fence_server_sync(struct pipe_context *pctx,
close(fd);
}
+static enum pipe_reset_status
+panfrost_get_device_reset_status(struct pipe_context *pipe)
+{
+ return PIPE_NO_RESET;
+}
+
struct pipe_context *
panfrost_create_context(struct pipe_screen *screen, void *priv, unsigned flags)
{
@@ -883,6 +889,7 @@ panfrost_create_context(struct pipe_screen *screen, void *priv, unsigned flags)
gallium->create_fence_fd = panfrost_create_fence_fd;
gallium->fence_server_sync = panfrost_fence_server_sync;
+ gallium->get_device_reset_status = panfrost_get_device_reset_status;
gallium->flush = panfrost_flush;
gallium->clear = panfrost_clear;
diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c
index 876833e799192..2036a63bd2955 100644
--- a/src/gallium/drivers/panfrost/pan_screen.c
+++ b/src/gallium/drivers/panfrost/pan_screen.c
@@ -369,6 +369,9 @@ panfrost_get_param(struct pipe_screen *screen, enum pipe_cap param)
case PIPE_CAP_NATIVE_FENCE_FD:
return 1;
+ case PIPE_CAP_DEVICE_RESET_STATUS_QUERY:
+ return 1;
+
default:
return u_pipe_screen_get_param_defaults(screen, param);
}
--
GitLab

View file

@ -0,0 +1,70 @@
From c16a0a950fd62bf35443a7dc95ee4e22c8f32efc Mon Sep 17 00:00:00 2001
From: Daniel Stone <daniels@collabora.com>
Date: Wed, 10 Jan 2024 12:21:11 +0000
Subject: [PATCH 2/2] egl: Return BAD_CONFIG when robust access unsupported
EGL_EXT_create_context_robustness provides separate knobs for device
reset strategy and robust buffer access. As there is no separate query
for both piecies of functionality, devices which do not support robust
buffer access need to reject contexts created with that flag with
EGL_BAD_CONFIG.
Given that EGL can't do cap queries, we create a fake extension entry in
the EGLDisplay to cover whether the device can do robust buffer access
or just device-reset queries.
---
src/egl/drivers/dri2/egl_dri2.c | 2 ++
src/egl/main/eglcontext.c | 12 ++++++++++++
src/egl/main/egldisplay.h | 1 +
3 files changed, 15 insertions(+)
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 16f6a09697169..2b5bca2037ddd 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -892,6 +892,8 @@ dri2_setup_screen(_EGLDisplay *disp)
disp->Extensions.EXT_create_context_robustness =
get_screen_param(disp, PIPE_CAP_DEVICE_RESET_STATUS_QUERY);
+ disp->RobustBufferAccess =
+ get_screen_param(disp, PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR);
/* EXT_query_reset_notification_strategy complements and requires
* EXT_create_context_robustness. */
diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c
index fa14bdf394348..dd90c28cf1f43 100644
--- a/src/egl/main/eglcontext.c
+++ b/src/egl/main/eglcontext.c
@@ -288,6 +288,18 @@ _eglParseContextAttribList(_EGLContext *ctx, _EGLDisplay *disp,
break;
}
+ /* The EGL_EXT_create_context_robustness spec says:
+ *
+ * "EGL_BAD_CONFIG is generated if
+ * [EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT] is set to EGL_TRUE and
+ * no GL context supporting the GL_EXT_robustness extension and
+ * robust access as described therein can be created."
+ */
+ if (val == EGL_TRUE && !disp->RobustBufferAccess) {
+ err = EGL_BAD_CONFIG;
+ break;
+ }
+
if (val == EGL_TRUE)
ctx->Flags |= EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR;
break;
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
index b3510ae7a1d3a..86a0ef521e731 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -208,6 +208,7 @@ struct _egl_display {
EGLint Version; /**< EGL version major*10+minor */
EGLint ClientAPIs; /**< Bitmask of APIs supported (EGL_xxx_BIT) */
_EGLExtensions Extensions; /**< Extensions supported */
+ EGLBoolean RobustBufferAccess; /**< Supports robust buffer access behavior */
/* these fields are derived from above */
char VersionString[100]; /**< EGL_VERSION */
--
GitLab

View file

@ -0,0 +1,369 @@
From e171d19e33982b401425a0b9312fc7aaae052a0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>
Date: Wed, 24 Jan 2024 00:51:42 -0500
Subject: [PATCH 1/4] panfrost: factor out method to check whether we can
discard resource
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The logic is gonna be re-used to determine whether we need to
unpack a AFBC-packed texture before updating it (when unmapping).
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
---
src/gallium/drivers/panfrost/pan_resource.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c
index 5eba8244b5ea..77bd26d6ccab 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -1081,6 +1081,19 @@ panfrost_box_covers_resource(const struct pipe_resource *resource,
box->width, box->height, box->depth);
}
+static bool
+panfrost_can_discard(struct pipe_resource *resource, const struct pipe_box *box,
+ unsigned usage)
+{
+ struct panfrost_resource *rsrc = pan_resource(resource);
+
+ return ((usage & PIPE_MAP_DISCARD_RANGE) &&
+ !(usage & PIPE_MAP_UNSYNCHRONIZED) &&
+ !(resource->flags & PIPE_RESOURCE_FLAG_MAP_PERSISTENT) &&
+ panfrost_box_covers_resource(resource, box) &&
+ !(rsrc->bo->flags & PAN_BO_SHARED));
+}
+
static void *
panfrost_ptr_map(struct pipe_context *pctx, struct pipe_resource *resource,
unsigned level,
@@ -1165,11 +1178,7 @@ panfrost_ptr_map(struct pipe_context *pctx, struct pipe_resource *resource,
/* Upgrade DISCARD_RANGE to WHOLE_RESOURCE if the whole resource is
* being mapped.
*/
- if ((usage & PIPE_MAP_DISCARD_RANGE) && !(usage & PIPE_MAP_UNSYNCHRONIZED) &&
- !(resource->flags & PIPE_RESOURCE_FLAG_MAP_PERSISTENT) &&
- panfrost_box_covers_resource(resource, box) &&
- !(rsrc->bo->flags & PAN_BO_SHARED)) {
-
+ if (panfrost_can_discard(resource, box, usage)) {
usage |= PIPE_MAP_DISCARD_WHOLE_RESOURCE;
}
--
GitLab
From 6a6bd2752d5b0921d5d024e74d273f87d1f85e48 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>
Date: Wed, 24 Jan 2024 00:57:55 -0500
Subject: [PATCH 2/4] panfrost: add copy_resource flag to
pan_resource_modifier_convert
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When converting the modifier for a resource, it's not always
needed to blit the content as well. Creating a new resource with
the right format/modifier might be enough.
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
---
src/gallium/drivers/panfrost/pan_context.c | 2 +-
src/gallium/drivers/panfrost/pan_resource.c | 59 ++++++++++-----------
src/gallium/drivers/panfrost/pan_resource.h | 3 +-
3 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index 7408bd7d189c..bc9006c14d23 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -284,7 +284,7 @@ panfrost_set_shader_images(struct pipe_context *pctx,
*/
if (drm_is_afbc(rsrc->image.layout.modifier)) {
pan_resource_modifier_convert(
- ctx, rsrc, DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED,
+ ctx, rsrc, DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED, true,
"Shader image");
}
diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c
index 77bd26d6ccab..9ac92812cd88 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -1321,46 +1321,45 @@ panfrost_ptr_map(struct pipe_context *pctx, struct pipe_resource *resource,
void
pan_resource_modifier_convert(struct panfrost_context *ctx,
struct panfrost_resource *rsrc, uint64_t modifier,
- const char *reason)
+ bool copy_resource, const char *reason)
{
assert(!rsrc->modifier_constant);
- perf_debug_ctx(ctx, "%s AFBC with a blit. Reason: %s",
- drm_is_afbc(modifier) ? "Unpacking" : "Disabling", reason);
-
struct pipe_resource *tmp_prsrc = panfrost_resource_create_with_modifier(
ctx->base.screen, &rsrc->base, modifier);
struct panfrost_resource *tmp_rsrc = pan_resource(tmp_prsrc);
- struct pipe_blit_info blit = {
- .dst.resource = &tmp_rsrc->base,
- .dst.format = tmp_rsrc->base.format,
- .src.resource = &rsrc->base,
- .src.format = rsrc->base.format,
- .mask = util_format_get_mask(tmp_rsrc->base.format),
- .filter = PIPE_TEX_FILTER_NEAREST,
- };
+ if (copy_resource) {
+ struct pipe_blit_info blit = {
+ .dst.resource = &tmp_rsrc->base,
+ .dst.format = tmp_rsrc->base.format,
+ .src.resource = &rsrc->base,
+ .src.format = rsrc->base.format,
+ .mask = util_format_get_mask(tmp_rsrc->base.format),
+ .filter = PIPE_TEX_FILTER_NEAREST,
+ };
- /* data_valid is not valid until flushed */
- panfrost_flush_writer(ctx, rsrc, "AFBC decompressing blit");
+ /* data_valid is not valid until flushed */
+ panfrost_flush_writer(ctx, rsrc, "AFBC decompressing blit");
- for (int i = 0; i <= rsrc->base.last_level; i++) {
- if (BITSET_TEST(rsrc->valid.data, i)) {
- blit.dst.level = blit.src.level = i;
+ for (int i = 0; i <= rsrc->base.last_level; i++) {
+ if (BITSET_TEST(rsrc->valid.data, i)) {
+ blit.dst.level = blit.src.level = i;
- u_box_3d(0, 0, 0, u_minify(rsrc->base.width0, i),
- u_minify(rsrc->base.height0, i),
- util_num_layers(&rsrc->base, i), &blit.dst.box);
- blit.src.box = blit.dst.box;
+ u_box_3d(0, 0, 0, u_minify(rsrc->base.width0, i),
+ u_minify(rsrc->base.height0, i),
+ util_num_layers(&rsrc->base, i), &blit.dst.box);
+ blit.src.box = blit.dst.box;
- panfrost_blit_no_afbc_legalization(&ctx->base, &blit);
+ panfrost_blit_no_afbc_legalization(&ctx->base, &blit);
+ }
}
- }
- /* we lose track of tmp_rsrc after this point, and the BO migration
- * (from tmp_rsrc to rsrc) doesn't transfer the last_writer to rsrc
- */
- panfrost_flush_writer(ctx, tmp_rsrc, "AFBC decompressing blit");
+ /* we lose track of tmp_rsrc after this point, and the BO migration
+ * (from tmp_rsrc to rsrc) doesn't transfer the last_writer to rsrc
+ */
+ panfrost_flush_writer(ctx, tmp_rsrc, "AFBC decompressing blit");
+ }
panfrost_bo_unreference(rsrc->bo);
@@ -1369,7 +1368,7 @@ pan_resource_modifier_convert(struct panfrost_context *ctx,
panfrost_bo_reference(rsrc->bo);
panfrost_resource_setup(pan_device(ctx->base.screen), rsrc, modifier,
- blit.dst.format);
+ tmp_rsrc->base.format);
/* panfrost_resource_setup will force the modifier to stay constant when
* called with a specific modifier. We don't want that here, we want to
* be able to convert back to another modifier if needed */
@@ -1394,7 +1393,7 @@ pan_legalize_afbc_format(struct panfrost_context *ctx,
if (panfrost_afbc_format(dev->arch, rsrc->base.format) !=
panfrost_afbc_format(dev->arch, format)) {
pan_resource_modifier_convert(
- ctx, rsrc, DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED,
+ ctx, rsrc, DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED, true,
"Reinterpreting AFBC surface as incompatible format");
return;
}
@@ -1402,7 +1401,7 @@ pan_legalize_afbc_format(struct panfrost_context *ctx,
if (write && (rsrc->image.layout.modifier & AFBC_FORMAT_MOD_SPARSE) == 0)
pan_resource_modifier_convert(
ctx, rsrc, rsrc->image.layout.modifier | AFBC_FORMAT_MOD_SPARSE,
- "Legalizing resource to allow writing");
+ true, "Legalizing resource to allow writing");
}
static bool
diff --git a/src/gallium/drivers/panfrost/pan_resource.h b/src/gallium/drivers/panfrost/pan_resource.h
index d6533349aca3..f41b94f3f51f 100644
--- a/src/gallium/drivers/panfrost/pan_resource.h
+++ b/src/gallium/drivers/panfrost/pan_resource.h
@@ -191,7 +191,8 @@ void panfrost_pack_afbc(struct panfrost_context *ctx,
void pan_resource_modifier_convert(struct panfrost_context *ctx,
struct panfrost_resource *rsrc,
- uint64_t modifier, const char *reason);
+ uint64_t modifier, bool copy_resource,
+ const char *reason);
void pan_legalize_afbc_format(struct panfrost_context *ctx,
struct panfrost_resource *rsrc,
--
GitLab
From e1ae5a0e0cd95834390b0fb293d7a4da25a858cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>
Date: Wed, 24 Jan 2024 00:56:09 -0500
Subject: [PATCH 3/4] panfrost: add can_discard flag to
pan_legalize_afbc_format
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
There might be a more efficient path when legalizing a resource if
we don't need to worry about its content. For example, it doesn't
make sense to copy the resource content when converting the modifier
if the resource content is discarded anyway.
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
---
src/gallium/drivers/panfrost/pan_blit.c | 4 ++--
src/gallium/drivers/panfrost/pan_cmdstream.c | 2 +-
src/gallium/drivers/panfrost/pan_job.c | 2 +-
src/gallium/drivers/panfrost/pan_resource.c | 6 +++---
src/gallium/drivers/panfrost/pan_resource.h | 3 ++-
5 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/gallium/drivers/panfrost/pan_blit.c b/src/gallium/drivers/panfrost/pan_blit.c
index 235afc118bea..cbc96e903db8 100644
--- a/src/gallium/drivers/panfrost/pan_blit.c
+++ b/src/gallium/drivers/panfrost/pan_blit.c
@@ -107,11 +107,11 @@ panfrost_blit(struct pipe_context *pipe, const struct pipe_blit_info *info)
/* Legalize here because it could trigger a recursive blit otherwise */
struct panfrost_resource *src = pan_resource(info->src.resource);
enum pipe_format src_view_format = util_format_linear(info->src.format);
- pan_legalize_afbc_format(ctx, src, src_view_format, false);
+ pan_legalize_afbc_format(ctx, src, src_view_format, false, false);
struct panfrost_resource *dst = pan_resource(info->dst.resource);
enum pipe_format dst_view_format = util_format_linear(info->dst.format);
- pan_legalize_afbc_format(ctx, dst, dst_view_format, true);
+ pan_legalize_afbc_format(ctx, dst, dst_view_format, true, false);
panfrost_blit_no_afbc_legalization(pipe, info);
}
diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c
index 8b356df8d43c..83f7eb5ff0e2 100644
--- a/src/gallium/drivers/panfrost/pan_cmdstream.c
+++ b/src/gallium/drivers/panfrost/pan_cmdstream.c
@@ -3408,7 +3408,7 @@ panfrost_create_sampler_view(struct pipe_context *pctx,
rzalloc(pctx, struct panfrost_sampler_view);
pan_legalize_afbc_format(ctx, pan_resource(texture), template->format,
- false);
+ false, false);
pipe_reference(NULL, &texture->reference);
diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c
index 1866ff58daed..5e81b97c052d 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -65,7 +65,7 @@ panfrost_batch_add_surface(struct panfrost_batch *batch,
{
if (surf) {
struct panfrost_resource *rsrc = pan_resource(surf->texture);
- pan_legalize_afbc_format(batch->ctx, rsrc, surf->format, true);
+ pan_legalize_afbc_format(batch->ctx, rsrc, surf->format, true, false);
panfrost_batch_write_rsrc(batch, rsrc, PIPE_SHADER_FRAGMENT);
}
}
diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c
index 9ac92812cd88..cc6ebb4b9295 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -1383,7 +1383,7 @@ pan_resource_modifier_convert(struct panfrost_context *ctx,
void
pan_legalize_afbc_format(struct panfrost_context *ctx,
struct panfrost_resource *rsrc,
- enum pipe_format format, bool write)
+ enum pipe_format format, bool write, bool discard)
{
struct panfrost_device *dev = pan_device(ctx->base.screen);
@@ -1393,7 +1393,7 @@ pan_legalize_afbc_format(struct panfrost_context *ctx,
if (panfrost_afbc_format(dev->arch, rsrc->base.format) !=
panfrost_afbc_format(dev->arch, format)) {
pan_resource_modifier_convert(
- ctx, rsrc, DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED, true,
+ ctx, rsrc, DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED, !discard,
"Reinterpreting AFBC surface as incompatible format");
return;
}
@@ -1401,7 +1401,7 @@ pan_legalize_afbc_format(struct panfrost_context *ctx,
if (write && (rsrc->image.layout.modifier & AFBC_FORMAT_MOD_SPARSE) == 0)
pan_resource_modifier_convert(
ctx, rsrc, rsrc->image.layout.modifier | AFBC_FORMAT_MOD_SPARSE,
- true, "Legalizing resource to allow writing");
+ !discard, "Legalizing resource to allow writing");
}
static bool
diff --git a/src/gallium/drivers/panfrost/pan_resource.h b/src/gallium/drivers/panfrost/pan_resource.h
index f41b94f3f51f..514b0c5cd464 100644
--- a/src/gallium/drivers/panfrost/pan_resource.h
+++ b/src/gallium/drivers/panfrost/pan_resource.h
@@ -196,7 +196,8 @@ void pan_resource_modifier_convert(struct panfrost_context *ctx,
void pan_legalize_afbc_format(struct panfrost_context *ctx,
struct panfrost_resource *rsrc,
- enum pipe_format format, bool write);
+ enum pipe_format format, bool write,
+ bool discard);
void pan_dump_resource(struct panfrost_context *ctx,
struct panfrost_resource *rsc);
--
GitLab
From 580805dac920d105d184ae756aa296d764b2b1c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Louis-Francis=20Ratt=C3=A9-Boulianne?= <lfrb@collabora.com>
Date: Wed, 24 Jan 2024 01:18:56 -0500
Subject: [PATCH 4/4] panfrost: Legalize before updating part of a AFBC-packed
texture
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When updating an AFBC-packed resource, we need to make sure it is
legalized before blitting the staging resource to it. We can't rely
on the blit to properly convert the resource as it will result in
blit recursion and a crash.
If the whole texture is updated however, there is no need to unpack
as the content can be discarded. Just create a new BO with the right
format.
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
---
src/gallium/drivers/panfrost/pan_resource.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c
index cc6ebb4b9295..bcdf0753f8bb 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -1609,6 +1609,10 @@ panfrost_ptr_unmap(struct pipe_context *pctx, struct pipe_transfer *transfer)
prsrc->image.data.base = prsrc->bo->ptr.gpu;
panfrost_bo_reference(prsrc->bo);
} else {
+ bool discard = panfrost_can_discard(&prsrc->base, &transfer->box,
+ transfer->usage);
+ pan_legalize_afbc_format(ctx, prsrc, prsrc->image.layout.format,
+ true, discard);
pan_blit_from_staging(pctx, trans);
panfrost_flush_batches_accessing_rsrc(
ctx, pan_resource(trans->staging.rsrc),
--
GitLab

View file

@ -0,0 +1,7 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS)
cat <<EOF >/storage/.config/profile.d/002-turbo-mode_config
DEVICE_TURBO_MODE="true"
EOF

View file

@ -1,11 +1,13 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="stress-ng"
PKG_VERSION="0.09.50"
PKG_SHA256="b07290495794092cdf2f8d51ac631f28b8cec9455a16552d8ca48bc1f376c634"
PKG_VERSION="2f22ad595f067aa940cfe4f64107e10872c2f7b5" # V0.17.04
PKG_LICENSE="GPLv2"
PKG_SITE="http://kernel.ubuntu.com/~cking/stress-ng/"
PKG_URL="http://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-${PKG_VERSION}.tar.xz"
PKG_DEPENDS_TARGET="toolchain attr keyutils libaio libcap zlib"
PKG_SITE="https://github.com/ColinIanKing/stress-ng"
PKG_URL="${PKG_SITE}.git"
GET_HANDLER_SUPPORT="git"
PKG_DEPENDS_TARGET="toolchain attr keyutils libaio libcap zlib libjpeg-turbo"
PKG_LONGDESC="stress-ng will stress test a computer system in various selectable ways"
PKG_TOOLCHAIN="make"

View file

@ -1,10 +1,10 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.7.0 Kernel Configuration
# Linux/arm64 6.7.1 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnueabi-gcc-12.3.0 (GCC) 12.3.0"
CONFIG_CC_VERSION_TEXT="aarch64-libreelec-linux-gnueabi-gcc-12.3.1 (GCC) 12.3.1 20240103"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=120300
CONFIG_GCC_VERSION=120301
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24100
@ -466,6 +466,7 @@ CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
# CONFIG_AS_HAS_ARMV8_3 is not set
CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
CONFIG_AS_HAS_LDAPR=y
# end of ARMv8.3 architectural features
#
@ -598,6 +599,7 @@ CONFIG_HOTPLUG_CORE_SYNC=y
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
# CONFIG_KPROBES is not set
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
@ -730,11 +732,13 @@ CONFIG_MODPROBE_PATH="/sbin/modprobe"
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
# CONFIG_BLOCK_LEGACY_AUTOLOAD is not set
CONFIG_BLK_CGROUP_RWSTAT=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
# CONFIG_BLK_WBT is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
# CONFIG_BLK_CGROUP_IOCOST is not set
@ -805,31 +809,7 @@ CONFIG_ARCH_INLINE_WRITE_UNLOCK=y
CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y
CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y
CONFIG_INLINE_SPIN_TRYLOCK=y
CONFIG_INLINE_SPIN_TRYLOCK_BH=y
CONFIG_INLINE_SPIN_LOCK=y
CONFIG_INLINE_SPIN_LOCK_BH=y
CONFIG_INLINE_SPIN_LOCK_IRQ=y
CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y
CONFIG_INLINE_SPIN_UNLOCK_BH=y
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y
CONFIG_INLINE_READ_LOCK=y
CONFIG_INLINE_READ_LOCK_BH=y
CONFIG_INLINE_READ_LOCK_IRQ=y
CONFIG_INLINE_READ_LOCK_IRQSAVE=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_BH=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y
CONFIG_INLINE_WRITE_LOCK=y
CONFIG_INLINE_WRITE_LOCK_BH=y
CONFIG_INLINE_WRITE_LOCK_IRQ=y
CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_BH=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
@ -889,7 +869,6 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_FAST_GUP=y
CONFIG_ARCH_KEEP_MEMBLOCK=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
# CONFIG_MEMORY_HOTPLUG is not set
@ -1379,6 +1358,7 @@ CONFIG_DEV_COREDUMP=y
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_SOC_BUS=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_SPI=y
@ -2108,6 +2088,7 @@ CONFIG_I2C_DEMUX_PINCTRL=y
# end of Multiplexer I2C Chip support
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=m
#
# I2C Hardware Bus support
@ -2121,7 +2102,6 @@ CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_DESIGNWARE_CORE=y
# CONFIG_I2C_DESIGNWARE_SLAVE is not set
CONFIG_I2C_DESIGNWARE_PLATFORM=y
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_EMEV2 is not set
CONFIG_I2C_GPIO=m
# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
@ -2169,6 +2149,7 @@ CONFIG_SPI_MEM=y
CONFIG_SPI_BITBANG=y
# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_CADENCE_QUADSPI is not set
# CONFIG_SPI_CADENCE_XSPI is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_GPIO=y
# CONFIG_SPI_FSL_SPI is not set
@ -2180,6 +2161,7 @@ CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_ROCKCHIP_SFC=y
# CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_SIFIVE is not set
# CONFIG_SPI_SN_F_OSPI is not set
# CONFIG_SPI_MXIC is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
@ -2335,7 +2317,7 @@ CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
# CONFIG_POWER_RESET_LTC2952 is not set
CONFIG_POWER_RESET_REGULATOR=y
# CONFIG_POWER_RESET_REGULATOR is not set
# CONFIG_POWER_RESET_RESTART is not set
# CONFIG_POWER_RESET_XGENE is not set
CONFIG_POWER_RESET_SYSCON=y
@ -2416,7 +2398,6 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_AS370 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
# CONFIG_SENSORS_ARM_SCMI is not set
# CONFIG_SENSORS_ARM_SCPI is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_CORSAIR_CPRO is not set
@ -2557,15 +2538,13 @@ CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
CONFIG_THERMAL_HWMON=y
CONFIG_THERMAL_OF=y
CONFIG_THERMAL_WRITABLE_TRIPS=y
# CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE is not set
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set
# CONFIG_THERMAL_GOV_USER_SPACE is not set
CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
CONFIG_CPU_THERMAL=y
CONFIG_CPU_FREQ_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
@ -2749,7 +2728,6 @@ CONFIG_REGULATOR_USERSPACE_CONSUMER=y
# CONFIG_REGULATOR_88PG86X is not set
# CONFIG_REGULATOR_ACT8865 is not set
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ARM_SCMI is not set
# CONFIG_REGULATOR_AW37503 is not set
# CONFIG_REGULATOR_DA9121 is not set
# CONFIG_REGULATOR_DA9210 is not set
@ -4078,7 +4056,7 @@ CONFIG_MMC_DW_ROCKCHIP=y
# CONFIG_MMC_VUB300 is not set
# CONFIG_MMC_USHC is not set
# CONFIG_MMC_USDHI6ROL0 is not set
# CONFIG_MMC_CQHCI is not set
CONFIG_MMC_CQHCI=y
# CONFIG_MMC_HSQ is not set
# CONFIG_MMC_MTK is not set
# CONFIG_MMC_SDHCI_XENON is not set
@ -4421,7 +4399,6 @@ CONFIG_COMMON_CLK=y
# CONFIG_LMK04832 is not set
# CONFIG_COMMON_CLK_MAX9485 is not set
CONFIG_COMMON_CLK_RK808=y
CONFIG_COMMON_CLK_SCMI=y
CONFIG_COMMON_CLK_SCPI=y
# CONFIG_COMMON_CLK_SI5341 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
@ -4822,7 +4799,6 @@ CONFIG_ROCKCHIP_SARADC=y
#
# IIO SCMI Sensors
#
# CONFIG_IIO_SCMI is not set
# end of IIO SCMI Sensors
#
@ -5196,7 +5172,6 @@ CONFIG_PARTITION_PERCPU=y
# CONFIG_IPACK_BUS is not set
CONFIG_ARCH_HAS_RESET_CONTROLLER=y
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_SCMI=y
# CONFIG_RESET_SIMPLE is not set
# CONFIG_RESET_TI_SYSCON is not set
# CONFIG_RESET_TI_TPS380X is not set
@ -5939,6 +5914,8 @@ CONFIG_SGL_ALLOC=y
# CONFIG_FORCE_NR_CPUS is not set
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y
CONFIG_CLZ_TAB=y
CONFIG_IRQ_POLL=y
@ -6040,7 +6017,6 @@ CONFIG_HAVE_KCSAN_COMPILER=y
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_SLUB_DEBUG is not set
# CONFIG_PAGE_OWNER is not set
# CONFIG_PAGE_TABLE_CHECK is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_ARCH_HAS_DEBUG_WX=y

View file

@ -28,7 +28,7 @@ case ${DEVICE} in
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
;;
RK3399|RK3326)
PKG_VERSION="6.7"
PKG_VERSION="6.7.1"
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
;;
esac

View file

@ -295,10 +295,9 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-anbernic-rg351v.dts li
+ };
+ };
+};
diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts
--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 1970-01-01 00:00:00.000000000 +0000
+++ linux/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 2024-01-23 03:05:55.471049048 +0000
@@ -0,0 +1,848 @@
--- linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 1969-12-31 19:00:00.000000000 -0500
+++ linux/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts 2024-01-24 14:29:39.760826750 -0500
@@ -0,0 +1,835 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Hardkernel Co., Ltd
@ -317,21 +316,9 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+ model = "MagicX XU10";
+ compatible = "magicx,xu10", "rockchip,rk3326";
+
+ chosen {
+ bootargs = "earlycon=uart8250,mmio32,0xff160000 swiotlb=1 console=ttyFIQ0 rw root=PARTUUID=614e0000-0000 rootwait";
+ };
+
+ fiq-debugger {
+ compatible = "rockchip,fiq-debugger";
+ rockchip,serial-id = <2>;
+ rockchip,wake-irq = <0>;
+ /* If enable uart uses irq instead of fiq */
+ rockchip,irq-mode-enable = <0>;
+ rockchip,baudrate = <115200>; /* Only 115200 and 1500000 */
+ interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2m1_xfer>;
+ status = "okay";
+ aliases {
+ mmc0 = &sdio;
+ mmc1 = &sdmmc;
+ };
+
+ backlight: backlight {
@ -579,21 +566,21 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+ battery: battery {
+ compatible = "simple-battery";
+ charge-full-design-microamp-hours = <3000000>;
+ charge-term-current-microamp = <300000>;
+ constant-charge-current-max-microamp = <2000000>;
+ charge-term-current-microamp = <200000>;
+ constant-charge-current-max-microamp = <1500000>;
+ constant-charge-voltage-max-microvolt = <4200000>;
+ factory-internal-resistance-micro-ohms = <134000>;
+ factory-internal-resistance-micro-ohms = <100000>;
+ voltage-max-design-microvolt = <4100000>;
+ voltage-min-design-microvolt = <3500000>;
+ voltage-min-design-microvolt = <3300000>;
+
+ ocv-capacity-celsius = <20>;
+ ocv-capacity-table-0 =
+ <4046950 100>, <4001920 95>, <3967900 90>, <3919950 85>,
+ <3888450 80>, <3861850 75>, <3831540 70>, <3799130 65>,
+ <3768190 60>, <3745650 55>, <3726610 50>, <3711630 45>,
+ <3696720 40>, <3685660 35>, <3674950 30>, <3663050 25>,
+ <3649470 20>, <3635260 15>, <3616920 10>, <3592440 5>,
+ <3574170 0>;
+ <4046950 100>, <4001920 95>, <3967900 90>, <3940000 85>,
+ <3910000 80>, <3870000 75>, <3830000 70>, <3790000 65>,
+ <3750000 60>, <3720000 55>, <3690000 50>, <3650000 45>,
+ <3610000 40>, <3570000 35>, <3540000 30>, <3500000 25>,
+ <3460000 20>, <3420000 15>, <3380000 10>, <3340000 5>,
+ <3300000 0>;
+ };
+
+ gpio-keys-vol {
@ -646,9 +633,11 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+
+ rk817-sound {
+ compatible = "simple-audio-card";
+ pinctrl-names = "default";
+ pinctrl-0 = <&hp_det>;
+ simple-audio-card,name = "rk817_int";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
+ simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_LOW>;
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,widgets =
+ "Microphone", "Mic Jack",
@ -799,7 +788,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+ vdd_logic: DCDC_REG1 {
+ regulator-name = "vdd_logic";
+ regulator-min-microvolt = <850000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-max-microvolt = <1150000>;
+ regulator-ramp-delay = <6001>;
+ regulator-always-on;
+ regulator-boot-on;
@ -914,13 +903,13 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+
+ vcc_sd: LDO_REG6 {
+ regulator-name = "vcc_sd";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-boot-on;
+
+ regulator-state-mem {
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3300000>;
+ regulator-suspend-microvolt = <3000000>;
+ };
+ };
+
@ -1017,7 +1006,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+};
+
+&sdmmc {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ card-detect-delay = <200>;
+ cd-gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_LOW>; /*[> ff370000 PD_SDCARD CD GPIO <]*/
@ -1031,9 +1019,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+};
+
+&sdio {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ supports-sd;
+ card-detect-delay = <200>;
+ cd-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_LOW>; /*[> CD GPIO <]*/
+ sd-uhs-sdr12;
@ -1112,7 +1098,7 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3326-magicx-xu10.dts linux/
+
+ headphone {
+ hp_det: hp-det {
+ rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_down>;
+ rockchip,pins = <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
+

View file

@ -1,6 +1,6 @@
diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/Makefile linux/arch/arm64/boot/dts/rockchip/Makefile
--- linux.orig/arch/arm64/boot/dts/rockchip/Makefile 2024-01-09 14:07:11.858381650 +0000
+++ linux/arch/arm64/boot/dts/rockchip/Makefile 2024-01-09 18:09:58.589953944 +0000
--- linux.orig/arch/arm64/boot/dts/rockchip/Makefile 2024-01-23 23:55:32.434476392 +0000
+++ linux/arch/arm64/boot/dts/rockchip/Makefile 2024-01-25 01:21:59.078794990 +0000
@@ -29,6 +29,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-li
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb
@ -11,8 +11,8 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/Makefile linux/arch/arm64/boo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb
diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-anbernic-rg552.dts linux/arch/arm64/boot/dts/rockchip/rk3399-anbernic-rg552.dts
--- linux.orig/arch/arm64/boot/dts/rockchip/rk3399-anbernic-rg552.dts 1970-01-01 00:00:00.000000000 +0000
+++ linux/arch/arm64/boot/dts/rockchip/rk3399-anbernic-rg552.dts 2024-01-09 18:09:58.589953944 +0000
@@ -0,0 +1,1336 @@
+++ linux/arch/arm64/boot/dts/rockchip/rk3399-anbernic-rg552.dts 2024-01-25 01:22:30.031520037 +0000
@@ -0,0 +1,1325 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
@ -490,17 +490,6 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-anbernic-rg552.dts lin
+ vin-supply = <&vcc12v_dcin>;
+ };
+
+ vdd_log: vdd-log {
+ compatible = "pwm-regulator";
+ pwms = <&pwm2 0 25000 1>;
+ regulator-name = "vdd_log";
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1700000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+
+ vcc5v5_lcd: vcc5v5-lcd {
+ compatible = "regulator-fixed";
+ enable-active-high;

View file

@ -1,7 +1,7 @@
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 @@
--- linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi 2024-01-23 23:55:32.438476475 +0000
+++ linux/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi 2024-01-25 01:12:39.857762800 +0000
@@ -9,34 +9,35 @@
opp-shared;
opp00 {
@ -42,10 +42,15 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi linux/arc
+ opp-hz = /bits/ 64 <1608000000>;
+ opp-microvolt = <1200000>;
+ };
+ opp06 {
+ opp-hz = /bits/ 64 <1704000000>;
+ opp-microvolt = <1225000>;
+ turbo-mode;
+ };
};
cluster1_opp: opp-table-1 {
@@ -44,40 +40,32 @@
@@ -44,42 +45,39 @@
opp-shared;
opp00 {
@ -93,8 +98,15 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi linux/arc
+ opp-hz = /bits/ 64 <2088000000>;
opp-microvolt = <1250000>;
};
+ opp07 {
+ opp-hz = /bits/ 64 <2208000000>;
+ opp-microvolt = <1350000>;
+ turbo-mode;
+ };
};
@@ -90,46 +78,30 @@
gpu_opp_table: opp-table-2 {
@@ -90,44 +88,30 @@
opp-microvolt = <800000>;
};
opp01 {
@ -122,6 +134,12 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi linux/arc
+ opp-hz = /bits/ 64 <900000000>;
+ opp-microvolt = <1150000>;
+ };
+ opp04 {
+ opp-hz = /bits/ 64 <950000000>;
+ opp-microvolt = <1175000>;
+ turbo-mode;
+ };
+
};
dmc_opp_table: opp-table-3 {
@ -132,19 +150,16 @@ diff -rupN linux.orig/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi linux/arc
- opp-microvolt = <900000>;
- };
- opp01 {
opp-hz = /bits/ 64 <666000000>;
opp-microvolt = <900000>;
};
- opp-hz = /bits/ 64 <666000000>;
- opp-microvolt = <900000>;
- };
- opp02 {
- opp-hz = /bits/ 64 <800000000>;
+ opp01 {
+ opp-hz = /bits/ 64 <856000000>;
opp-microvolt = <900000>;
};
- opp-microvolt = <900000>;
- };
- opp03 {
- opp-hz = /bits/ 64 <928000000>;
- opp-microvolt = <925000>;
- };
+ opp-hz = /bits/ 64 <933000000>;
opp-microvolt = <925000>;
};
};
};

View file

@ -0,0 +1,12 @@
diff -rupN u-boot.orig/arch/arm/dts/rk3399-evb.dts u-boot/arch/arm/dts/rk3399-evb.dts
--- u-boot.orig/arch/arm/dts/rk3399-evb.dts 2024-01-19 17:53:16.898246406 +0000
+++ u-boot/arch/arm/dts/rk3399-evb.dts 2024-01-19 17:59:15.431212367 +0000
@@ -6,6 +6,8 @@
/dts-v1/;
#include <dt-bindings/pwm/pwm.h>
#include "rk3399.dtsi"
+#include "rk3399-u-boot.dtsi"
+#include "rk3399-sdram-lpddr4-100.dtsi"
/ {
model = "Rockchip RK3399 Evaluation Board";