diff --git a/meta-oe/recipes-graphics/lvgl/files/0001-thorvg-fix-build-with-gcc-15.patch b/meta-oe/recipes-graphics/lvgl/files/0001-thorvg-fix-build-with-gcc-15.patch
index eefcbe5b9c..e61b5224aa 100644
--- a/meta-oe/recipes-graphics/lvgl/files/0001-thorvg-fix-build-with-gcc-15.patch
+++ b/meta-oe/recipes-graphics/lvgl/files/0001-thorvg-fix-build-with-gcc-15.patch
@@ -20,13 +20,11 @@ Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
  src/libs/thorvg/thorvg.h | 1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/src/libs/thorvg/thorvg.h b/src/libs/thorvg/thorvg.h
-index 7f5a84b94..0c84ec66e 100644
 --- a/src/libs/thorvg/thorvg.h
 +++ b/src/libs/thorvg/thorvg.h
-@@ -18,6 +18,7 @@
- #ifndef _THORVG_H_
- #define _THORVG_H_
+@@ -12,6 +12,7 @@
+ #define TVG_BUILD 1
+ 
  
 +#include <cstdint>
  #include <functional>
diff --git a/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch b/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch
deleted file mode 100644
index 0bfc3f3e79..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 5b7f657e8ad656e0854f2252b3bd482b966d650c Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Wed, 13 Mar 2024 02:12:30 +0100
-Subject: [PATCH 2/2] fix(sdl): handle both LV_IMAGE_SRC_FILE and
- LV_IMAGE_SRC_VARIABLE
-
-The SDL image draw code currently assumes that the image source is a
-filename and attempts to open that filename. This is not necessarily
-the case, e.g. the lv_demo_fb uses encoded images which are of type
-LV_IMAGE_SRC_VARIABLE and instead of filename, come with a buffer of
-pixels. Handle the later using SDL_CreateRGBSurfaceFrom().
-
-Upstream-Status: Backport [b339e67581864b2fb6bb8897735a1e110c324ddc]
-Signed-off-by: Marek Vasut <marex@denx.de>
----
- src/draw/sdl/lv_draw_sdl.c | 30 +++++++++++++++++++++++++++---
- 1 file changed, 27 insertions(+), 3 deletions(-)
-
-diff --git a/src/draw/sdl/lv_draw_sdl.c b/src/draw/sdl/lv_draw_sdl.c
-index cbb555d94..5eee5b725 100644
---- a/src/draw/sdl/lv_draw_sdl.c
-+++ b/src/draw/sdl/lv_draw_sdl.c
-@@ -224,10 +224,34 @@ static bool draw_to_texture(lv_draw_sdl_unit_t * u, cache_data_t * data)
-             break;
-         case LV_DRAW_TASK_TYPE_IMAGE: {
-                 lv_draw_image_dsc_t * image_dsc = task->draw_dsc;
--                const char * path = image_dsc->src;
--                SDL_Surface * surface = IMG_Load(&path[2]);
-+                lv_image_src_t type = lv_image_src_get_type(image_dsc->src);
-+                SDL_Surface * surface = NULL;
-+                if(type == LV_IMAGE_SRC_FILE) {
-+                    const char * path = image_dsc->src;
-+                    surface = IMG_Load(&path[2]);
-+                }
-+                else if(type == LV_IMAGE_SRC_VARIABLE) {
-+                    lv_image_dsc_t * lvd = image_dsc->src;
-+                    surface = SDL_CreateRGBSurfaceFrom(lvd->data,
-+                                                       lvd->header.w, lvd->header.h,
-+                                                       LV_COLOR_FORMAT_GET_BPP(lvd->header.cf),
-+                                                       lvd->header.stride,
-+#if SDL_BYTEORDER == SDL_LIL_ENDIAN
-+                                                       0x00FF0000,
-+                                                       0x0000FF00,
-+                                                       0x000000FF,
-+                                                       0xFF000000
-+#else
-+                                                       0x0000FF00,
-+                                                       0x00FF0000,
-+                                                       0xFF000000,
-+                                                       0x000000FF
-+#endif
-+                                                      );
-+                }
-+
-                 if(surface == NULL) {
--                    fprintf(stderr, "could not load image: %s\n", IMG_GetError());
-+                    fprintf(stderr, "could not load image\n");
-                     return false;
-                 }
- 
--- 
-2.43.0
-
diff --git a/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch b/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch
deleted file mode 100644
index 7e542bcfbc..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 85d90749a10b5f91741d37b75825935bf7cc4fb3 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Tue, 12 Mar 2024 03:00:37 +0100
-Subject: [PATCH 3/6] Make fbdev device node runtime configurable via
- environment variable
-
-Test whether $LV_VIDEO_CARD environment variable is non-NULL and in
-case it is, use it as the video card file in lv_linux_fbdev_set_file().
-Otherwise fall back to /dev/fb0, i.e. the current behavior. This way,
-it is possible to test LVGL on systems with multiple fbdev devices.
-
-Upstream-Status: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451]
-Signed-off-by: Marek Vasut <marex@denx.de>
----
- main.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/main.c b/main.c
-index 9775b9c..b64a098 100644
---- a/main.c
-+++ b/main.c
-@@ -4,13 +4,19 @@
- #include <pthread.h>
- #include <time.h>
- 
-+static const char *lv_linux_get_video_card_node(const char *videocard_default)
-+{
-+    return getenv("LV_VIDEO_CARD") ? : videocard_default;
-+}
-+
- int main(void)
- {
-+    const char *videocard = lv_linux_get_video_card_node("/dev/fb0");
-     lv_init();
- 
-     /*Linux frame buffer device init*/
-     lv_display_t * disp = lv_linux_fbdev_create();
--    lv_linux_fbdev_set_file(disp, "/dev/fb0");
-+    lv_linux_fbdev_set_file(disp, videocard);
- 
-     /*Create a Demo*/
-     lv_demo_widgets();
--- 
-2.43.0
-
diff --git a/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch b/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch
deleted file mode 100644
index 6843af0aab..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0004-Factor-out-fbdev-initialization-code.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 593da8e11cc5029773ad330b5d7633ee9f2fba95 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Tue, 12 Mar 2024 18:09:42 +0100
-Subject: [PATCH 4/6] Factor out fbdev initialization code
-
-Pull fbdev initialization code into separate function and add ifdef
-around it, so it can be conditionally compiled in. This is done in
-preparation for addition of other backend initialization example
-code.
-
-Upstream-Status: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451]
-Signed-off-by: Marek Vasut <marex@denx.de>
----
- main.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/main.c b/main.c
-index b64a098..288519c 100644
---- a/main.c
-+++ b/main.c
-@@ -9,14 +9,24 @@ static const char *lv_linux_get_video_card_node(const char *videocard_default)
-     return getenv("LV_VIDEO_CARD") ? : videocard_default;
- }
- 
--int main(void)
-+#if LV_USE_LINUX_FBDEV
-+static void lv_linux_disp_init(void)
- {
-     const char *videocard = lv_linux_get_video_card_node("/dev/fb0");
--    lv_init();
--
--    /*Linux frame buffer device init*/
-     lv_display_t * disp = lv_linux_fbdev_create();
-+
-     lv_linux_fbdev_set_file(disp, videocard);
-+}
-+#else
-+#error Unsupported configuration
-+#endif
-+
-+int main(void)
-+{
-+    lv_init();
-+
-+    /*Linux display device init*/
-+    lv_linux_disp_init();
- 
-     /*Create a Demo*/
-     lv_demo_widgets();
--- 
-2.43.0
-
diff --git a/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch
deleted file mode 100644
index 2d2c4c60f1..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0005-Add-DRM-KMS-example-support.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From dabf40559428733413432afa29598bc145aa6636 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Tue, 12 Mar 2024 03:08:13 +0100
-Subject: [PATCH 5/6] Add DRM/KMS example support
-
-Extend the main.c to support both legacy fbdev and DRM/KMS initialization.
-
-To use legacy fbdev support, adjust lv_conf.h as follows:
-LV_USE_LINUX_FBDEV=1
-LV_USE_LINUX_DRM=0
-
-To use DRM/KMS support, adjust lv_conf.h as follows:
-LV_USE_LINUX_FBDEV=0
-LV_USE_LINUX_DRM=1
-
-Upstream-Status: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451]
-Signed-off-by: Marek Vasut <marex@denx.de>
----
- CMakeLists.txt | 5 ++++-
- main.c         | 8 ++++++++
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d91b196..c1cfb7f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -12,6 +12,9 @@ target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR})
- 
- add_executable(main main.c mouse_cursor_icon.c)
- 
--target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} m pthread)
-+include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
-+include_directories(${Libdrm_INCLUDE_DIRS})
-+
-+target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread)
- add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main)
- 
-diff --git a/main.c b/main.c
-index 288519c..ab4e936 100644
---- a/main.c
-+++ b/main.c
-@@ -17,6 +17,14 @@ static void lv_linux_disp_init(void)
- 
-     lv_linux_fbdev_set_file(disp, videocard);
- }
-+#elif LV_USE_LINUX_DRM
-+static void lv_linux_disp_init(void)
-+{
-+    const char *videocard = lv_linux_get_video_card_node("/dev/dri/card0");
-+    lv_display_t * disp = lv_linux_drm_create();
-+
-+    lv_linux_drm_set_file(disp, videocard, -1);
-+}
- #else
- #error Unsupported configuration
- #endif
--- 
-2.43.0
-
diff --git a/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch b/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch
deleted file mode 100644
index cfb6c6e817..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0006-Add-SDL2-example-support.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From b202ce51f7b68c460fcd1b6d9c3ffa8aaf2baaf6 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Tue, 12 Mar 2024 19:05:38 +0100
-Subject: [PATCH 6/6] Add SDL2 example support
-
-Extend the main.c to support both legacy fbdev, DRM/KMS, SDL2 initialization.
-The SDL2 window resolution can be configured using environment variables
-LV_VIDEO_WIDTH and LV_VIDEO_HEIGHT and defaults to 800 x 480 .
-
-To use legacy fbdev support, adjust lv_conf.h as follows:
-LV_USE_LINUX_FBDEV=1
-LV_USE_LINUX_DRM=0
-LV_USE_SDL=0
-
-To use DRM/KMS support, adjust lv_conf.h as follows:
-LV_USE_LINUX_FBDEV=0
-LV_USE_LINUX_DRM=1
-LV_USE_SDL=0
-
-To use SDL2 support, adjust lv_conf.h as follows:
-LV_USE_LINUX_FBDEV=0
-LV_USE_LINUX_DRM=0
-LV_USE_SDL=1
-
-Upstream-Status: Backport [a0f03515bd7417a0d100058b133c3e8d69be9451]
-Signed-off-by: Marek Vasut <marex@denx.de>
----
- CMakeLists.txt | 6 +++++-
- main.c         | 8 ++++++++
- 2 files changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c1cfb7f..658193f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -15,6 +15,10 @@ add_executable(main main.c mouse_cursor_icon.c)
- include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
- include_directories(${Libdrm_INCLUDE_DIRS})
- 
--target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${Libdrm_LIBRARIES} m pthread)
-+find_package(SDL2)
-+find_package(SDL2_image)
-+include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS})
-+
-+target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${Libdrm_LIBRARIES} m pthread)
- add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main)
- 
-diff --git a/main.c b/main.c
-index ab4e936..4b66ebc 100644
---- a/main.c
-+++ b/main.c
-@@ -25,6 +25,14 @@ static void lv_linux_disp_init(void)
- 
-     lv_linux_drm_set_file(disp, videocard, -1);
- }
-+#elif LV_USE_SDL
-+static void lv_linux_disp_init(void)
-+{
-+    const int width = atoi(getenv("LV_VIDEO_WIDTH") ? : "800");
-+    const int height = atoi(getenv("LV_VIDEO_HEIGHT") ? : "480");
-+
-+    lv_sdl_window_create(width, height);
-+}
- #else
- #error Unsupported configuration
- #endif
--- 
-2.43.0
-
diff --git a/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch b/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch
deleted file mode 100644
index f5d39396fc..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0007-fix-cmake-generate-versioned-shared-libraries.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 40657a770baadfff30abfecf7638e7b1c340db4d Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Thu, 14 Mar 2024 03:23:10 +0100
-Subject: [PATCH] fix(cmake): generate versioned shared libraries
-
-Add missing version suffix to shared libraries. Currently the filename of
-generated shared libraries is only liblvgl.so, which prevents coexistence
-of different versions of LVGL on the same system. Set VERSION and SOVERSION
-to make cmake add the version suffix to generated shared libraries. That
-changes the filename to liblvgl.so.9.1.0 and includes symlink with major
-ABI version, i.e. liblvgl.so.9 .
-
-Upstream-Status: Backport [2c469279f53f9dee63d71295c6058749bc87ce73]
-Signed-off-by: Marek Vasut <marex@denx.de>
----
- env_support/cmake/custom.cmake | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/env_support/cmake/custom.cmake b/env_support/cmake/custom.cmake
-index 9800468eb..6f33f1cc8 100644
---- a/env_support/cmake/custom.cmake
-+++ b/env_support/cmake/custom.cmake
-@@ -1,3 +1,6 @@
-+set(LVGL_VERSION "9.1.0")
-+set(LVGL_SOVERSION "9")
-+
- # Option to define LV_LVGL_H_INCLUDE_SIMPLE, default: ON
- option(LV_LVGL_H_INCLUDE_SIMPLE
-        "Use #include \"lvgl.h\" instead of #include \"../../lvgl.h\"" ON)
-@@ -119,6 +122,8 @@ install(
- set_target_properties(
-   lvgl
-   PROPERTIES OUTPUT_NAME lvgl
-+             VERSION ${LVGL_VERSION}
-+             SOVERSION ${LVGL_SOVERSION}
-              ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-              LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-              RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
-@@ -137,6 +142,8 @@ if(NOT LV_CONF_BUILD_DISABLE_THORVG_INTERNAL)
-   set_target_properties(
-     lvgl_thorvg
-     PROPERTIES OUTPUT_NAME lvgl_thorvg
-+               VERSION ${LVGL_VERSION}
-+               SOVERSION ${LVGL_SOVERSION}
-                ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-                LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-                RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
-@@ -155,6 +162,8 @@ if(NOT LV_CONF_BUILD_DISABLE_DEMOS)
-   set_target_properties(
-     lvgl_demos
-     PROPERTIES OUTPUT_NAME lvgl_demos
-+               VERSION ${LVGL_VERSION}
-+               SOVERSION ${LVGL_SOVERSION}
-                ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-                LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-                RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
-@@ -173,6 +182,8 @@ if(NOT LV_CONF_BUILD_DISABLE_EXAMPLES)
-   set_target_properties(
-     lvgl_examples
-     PROPERTIES OUTPUT_NAME lvgl_examples
-+               VERSION ${LVGL_VERSION}
-+               SOVERSION ${LVGL_SOVERSION}
-                ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-                LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
-                RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
--- 
-2.43.0
-
diff --git a/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch b/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch
deleted file mode 100644
index 5cafb41d56..0000000000
--- a/meta-oe/recipes-graphics/lvgl/files/0008-fix-fbdev-set-resolution-prior-to-buffer.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a6f822f75b3ba01b00c028608c93160d09a6ffd1 Mon Sep 17 00:00:00 2001
-From: Jaeyoon Jung <jaeyoon.jung@lge.com>
-Date: Mon, 1 Apr 2024 18:00:39 +0900
-Subject: [PATCH] fix(fbdev): set resolution prior to buffer
-
-Otherwise it ends up with using the default value 800x480 and may fail
-at lv_display_set_buffers due to incorrect resolution.
-
-Upstream-Status: Backport [29662d1c357c15135d076a2a924b9ef056c82120]
-Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
----
-
- src/drivers/display/fb/lv_linux_fbdev.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/drivers/display/fb/lv_linux_fbdev.c b/src/drivers/display/fb/lv_linux_fbdev.c
-index b3cc89199..5fb4c5c9f 100644
---- a/src/drivers/display/fb/lv_linux_fbdev.c
-+++ b/src/drivers/display/fb/lv_linux_fbdev.c
-@@ -233,8 +233,8 @@ void lv_linux_fbdev_set_file(lv_display_t * disp, const char * file)
-         draw_buf_2 = malloc(draw_buf_size);
-     }
- 
--    lv_display_set_buffers(disp, draw_buf, draw_buf_2, draw_buf_size, LV_LINUX_FBDEV_RENDER_MODE);
-     lv_display_set_resolution(disp, hor_res, ver_res);
-+    lv_display_set_buffers(disp, draw_buf, draw_buf_2, draw_buf_size, LV_LINUX_FBDEV_RENDER_MODE);
- 
-     if(width > 0) {
-         lv_display_set_dpi(disp, DIV_ROUND_UP(hor_res * 254, width * 10));
diff --git a/meta-oe/recipes-graphics/lvgl/lv-conf.inc b/meta-oe/recipes-graphics/lvgl/lv-conf.inc
index 41133f3438..69e42af922 100644
--- a/meta-oe/recipes-graphics/lvgl/lv-conf.inc
+++ b/meta-oe/recipes-graphics/lvgl/lv-conf.inc
@@ -33,10 +33,16 @@ LVGL_CONFIG_LV_USE_GRIDNAV = "${@bb.utils.contains('PACKAGECONFIG', 'gridnav', '
 
 LVGL_CONFIG_LV_THEME_DEFAULT_DARK ?= "0"
 
+LVGL_CONFIG_USE_LOTTIE = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}"
+
 LVGL_CONFIG_USE_VECTOR_GRAPHICS = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}"
 
 LVGL_CONFIG_USE_THORVG_INTERNAL = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}"
 
+LVGL_CONFIG_USE_MATRIX = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}"
+
+LVGL_CONFIG_USE_FLOAT = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}"
+
 DEBUG_BUILD ??= "0"
 
 ALLOW_EMPTY:${PN} = "1"
@@ -84,6 +90,9 @@ do_configure:append() {
         \
         -e "s|^([[:space:]]*#define LV_USE_VECTOR_GRAPHIC[[:space:]]).*|\1${LVGL_CONFIG_USE_VECTOR_GRAPHICS}|" \
         -e "s|^([[:space:]]*#define LV_USE_THORVG_INTERNAL[[:space:]]).*|\1${LVGL_CONFIG_USE_THORVG_INTERNAL}|" \
+        -e "s|^([[:space:]]*#define LV_USE_MATRIX[[:space:]]).*|\1${LVGL_CONFIG_USE_MATRIX}|" \
+        -e "s|^([[:space:]]*#define LV_USE_FLOAT[[:space:]]).*|\1${LVGL_CONFIG_USE_FLOAT}|" \
         \
+        -e "s|^([[:space:]]*#define LV_USE_LOTTIE[[:space:]]).*|\1${LVGL_CONFIG_USE_LOTTIE}|" \
         -i "${S}/lv_conf.h"
 }
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.2.2.bb
similarity index 58%
rename from meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb
rename to meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.2.2.bb
index 6e8371baad..1228748701 100644
--- a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.1.0.bb
+++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_9.2.2.bb
@@ -5,18 +5,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \
                     file://lvgl/LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
 
 SRC_URI = "\
-	git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=master;name=demo \
-	git://github.com/lvgl/lvgl;protocol=https;branch=master;name=lvgl;subdir=git/lvgl \
-	file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch;patchdir=lvgl \
-	file://0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch \
-	file://0004-Factor-out-fbdev-initialization-code.patch \
-	file://0005-Add-DRM-KMS-example-support.patch \
-	file://0006-Add-SDL2-example-support.patch \
-	file://0007-fix-cmake-generate-versioned-shared-libraries.patch;patchdir=lvgl \
-	file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch;patchdir=lvgl \
+	git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=release/v9.2;name=demo \
+	git://github.com/lvgl/lvgl;protocol=https;branch=release/v9.2;name=lvgl;subdir=git/lvgl \
+	file://0001-thorvg-fix-build-with-gcc-15.patch;patchdir=lvgl \
 	"
-SRCREV_demo = "dccc6a1ca48372aa993dbea7a8e17dec6f42df6a"
-SRCREV_lvgl = "e1c0b21b2723d391b885de4b2ee5cc997eccca91"
+SRCREV_demo = "c924e24c7aa55317521bcd9dd75ce9337508f5a5"
+SRCREV_lvgl = "7f07a129e8d77f4984fff8e623fd5be18ff42e74"
 SRCREV_FORMAT = "demo_lvgl"
 
 EXTRA_OEMAKE = "DESTDIR=${D}"
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl_9.2.2.bb
similarity index 60%
rename from meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb
rename to meta-oe/recipes-graphics/lvgl/lvgl_9.2.2.bb
index b07cdfc8f6..935e84ad23 100644
--- a/meta-oe/recipes-graphics/lvgl/lvgl_9.1.0.bb
+++ b/meta-oe/recipes-graphics/lvgl/lvgl_9.2.2.bb
@@ -9,13 +9,10 @@ LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
 
 SRC_URI = "\
-	git://github.com/lvgl/lvgl;protocol=https;branch=master \
-	file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \
-	file://0007-fix-cmake-generate-versioned-shared-libraries.patch \
-	file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch \
-        file://0001-thorvg-fix-build-with-gcc-15.patch \
+	git://github.com/lvgl/lvgl;protocol=https;branch=release/v9.2 \
+    file://0001-thorvg-fix-build-with-gcc-15.patch \
 	"
-SRCREV = "e1c0b21b2723d391b885de4b2ee5cc997eccca91"
+SRCREV = "7f07a129e8d77f4984fff8e623fd5be18ff42e74"
 
 inherit cmake
 
