summaryrefslogtreecommitdiffstats
path: root/meta-agl-drm-lease
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-drm-lease')
-rw-r--r--meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch35
-rw-r--r--meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend2
-rw-r--r--meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md2
-rw-r--r--meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch42
-rw-r--r--meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb4
5 files changed, 59 insertions, 26 deletions
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch
new file mode 100644
index 00000000..57ff8486
--- /dev/null
+++ b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch
@@ -0,0 +1,35 @@
+From f2e5939476630add3bf2c9254f72a0b57101f848 Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Mon, 10 Jun 2024 12:02:33 +0300
+Subject: [PATCH] compositor: Add missing drm-lease-name
+
+This was an oversight from commit 7963529fc8e3e, 'Add drm-lease
+support', which backported the drm-lease support in the AGL compositor
+for next release.
+
+Without a drm-lease-name, the device_id will be an negative integer
+resulting in not using the parameter. This should fix leasing with the
+AGL compositor.
+
+Bug-AGL: SPEC-5160
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+Change-Id: I4282c115d2038852f6a56a77ce6ab81f2b8f62b4
+---
+ src/compositor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/compositor.c b/src/compositor.c
+index 156a0ae..65c61d8 100644
+--- a/src/compositor.c
++++ b/src/compositor.c
+@@ -1076,6 +1076,7 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[],
+ const struct weston_option options[] = {
+ { WESTON_OPTION_STRING, "seat", 0, &config.seat_id },
+ { WESTON_OPTION_STRING, "drm-device", 0, &config.specific_device },
++ { WESTON_OPTION_STRING, "drm-lease", 0, &drm_lease_name },
+ { WESTON_OPTION_BOOLEAN, "current-mode", 0, &use_current_mode },
+ { WESTON_OPTION_BOOLEAN, "use-pixman", 0, &force_pixman },
+ { WESTON_OPTION_BOOLEAN, "continue-without-input", false, &without_input }
+--
+2.43.0
+
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend
index 3c64ce1f..63138299 100644
--- a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend
+++ b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend
@@ -1,6 +1,6 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-SRC_URI += "file://0001-Add-drm-lease-support.patch"
+SRC_URI += "file://0001-Add-drm-lease-support.patch file://0001-compositor-Add-missing-drm-lease-name.patch"
PACKAGECONFIG[drm-lease] = "-Ddrm-lease=true,-Ddrm-lease=false,drm-lease-manager"
PACKAGECONFIG:append = " drm-lease"
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md b/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md
index 85069c0a..329ee834 100644
--- a/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md
+++ b/meta-agl-drm-lease/dynamic-layers/meta-qt6/README.md
@@ -2,7 +2,7 @@
The meta-agl-drm-lease/dynamic-layers/meta-qt6 is a DRM lease support for Qt 6.x eglfs kms backend.
-This patch tested in Qt6.2.2 and Qt6.2.3.
+This patch tested in Qt6.7.
## Usage
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch b/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch
index f4d197ed..5475e774 100644
--- a/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch
+++ b/meta-agl-drm-lease/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase/0001-Add-drm-lease-client-support-to-eglfs-kms-backend.patch
@@ -1,4 +1,4 @@
-From 85a85537b17742a839092bcc2a4684ab0bdb65d5 Mon Sep 17 00:00:00 2001
+From 7b0bff28e991bf9f8110a6e824c29044a7e09d39 Mon Sep 17 00:00:00 2001
From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
Date: Tue, 4 Jan 2022 23:52:31 +0900
Subject: [PATCH] Add drm-lease client support to eglfs kms backend
@@ -160,22 +160,22 @@ index 0000000000..8dfac920ca
+ DESCRIPTION "The DRM Lease Manager uses the DRM Lease feature, introduced in the Linux kernel version 4.15, to partition display controller output resources between multiple processes."
+)
diff --git a/src/gui/configure.cmake b/src/gui/configure.cmake
-index 0bf250eab6..b092b746c0 100644
+index 4affd7b30a..44ed626649 100644
--- a/src/gui/configure.cmake
+++ b/src/gui/configure.cmake
-@@ -38,6 +38,7 @@ endif()
+@@ -46,6 +46,7 @@ endif()
qt_find_package(Fontconfig PROVIDED_TARGETS Fontconfig::Fontconfig MODULE_NAME gui QMAKE_LIB fontconfig)
qt_add_qmake_lib_dependency(fontconfig freetype)
qt_find_package(gbm PROVIDED_TARGETS gbm::gbm MODULE_NAME gui QMAKE_LIB gbm)
+qt_find_package(Libdlmclient PROVIDED_TARGETS Libdlmclient::Libdlmclient MODULE_NAME gui QMAKE_LIB libdlmclient)
qt_find_package(WrapSystemHarfbuzz 2.6.0 PROVIDED_TARGETS WrapSystemHarfbuzz::WrapSystemHarfbuzz MODULE_NAME gui QMAKE_LIB harfbuzz)
qt_find_package(Libinput PROVIDED_TARGETS Libinput::Libinput MODULE_NAME gui QMAKE_LIB libinput)
- qt_find_package(JPEG PROVIDED_TARGETS JPEG::JPEG MODULE_NAME gui QMAKE_LIB libjpeg)
+ qt_find_package(WrapSystemJpeg PROVIDED_TARGETS WrapSystemJpeg::WrapSystemJpeg MODULE_NAME gui QMAKE_LIB libjpeg)
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt
-index a20a4a084d..2af7904eb6 100644
+index d575ae9d4f..7cf2d5dd78 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/CMakeLists.txt
-@@ -23,6 +23,7 @@ qt_internal_add_module(EglFsKmsGbmSupportPrivate
+@@ -24,6 +24,7 @@ qt_internal_add_module(EglFsKmsGbmSupportPrivate
Qt::GuiPrivate
Qt::KmsSupportPrivate
gbm::gbm
@@ -183,19 +183,17 @@ index a20a4a084d..2af7904eb6 100644
)
#####################################################################
## QEglFSKmsGbmIntegrationPlugin Plugin:
-@@ -44,6 +45,7 @@ qt_internal_add_plugin(QEglFSKmsGbmIntegrationPlugin
+@@ -45,4 +46,5 @@ qt_internal_add_plugin(QEglFSKmsGbmIntegrationPlugin
Qt::GuiPrivate
Qt::KmsSupportPrivate
gbm::gbm
+ Libdlmclient::Libdlmclient
)
-
- #### Keys ignored in scope 3:.:.:eglfs_kms-plugin.pro:<TRUE>:
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp
-index b5b7811b79..1e77c72ee5 100644
+index 89479fc250..2b4280ef12 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice.cpp
-@@ -56,32 +56,51 @@ Q_DECLARE_LOGGING_CATEGORY(qLcEglfsKmsDebug)
+@@ -20,32 +20,51 @@ Q_DECLARE_LOGGING_CATEGORY(qLcEglfsKmsDebug)
QEglFSKmsGbmDevice::QEglFSKmsGbmDevice(QKmsScreenConfig *screenConfig, const QString &path)
: QEglFSKmsDevice(screenConfig, path)
, m_gbm_device(nullptr)
@@ -254,9 +252,9 @@ index b5b7811b79..1e77c72ee5 100644
- setFd(fd);
+ setFd(drmfd);
- m_eventReader.create(this);
-
-@@ -99,7 +118,11 @@ void QEglFSKmsGbmDevice::close()
+ if (usesEventReader()) {
+ qCDebug(qLcEglfsKmsDebug, "Using dedicated drm event reading thread");
+@@ -70,7 +89,11 @@ void QEglFSKmsGbmDevice::close()
m_gbm_device = nullptr;
}
@@ -270,27 +268,27 @@ index b5b7811b79..1e77c72ee5 100644
setFd(-1);
}
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h
-index bb67d800ee..b2d705800e 100644
+index e00992ed29..727555c5bd 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmdevice_p.h
-@@ -57,6 +57,7 @@
- #include <private/qeglfskmsdevice_p.h>
+@@ -22,6 +22,7 @@
+ #include <private/qeglfskmseventreader_p.h>
#include <gbm.h>
+#include <dlmclient.h>
QT_BEGIN_NAMESPACE
-@@ -92,6 +93,9 @@ private:
-
+@@ -61,6 +62,9 @@ private:
gbm_device *m_gbm_device;
-
+ QEglFSKmsEventReader m_eventReader;
+ QEglFSKmsGbmCursor *m_globalCursor;
++
+ // only used for DRM lease
+ struct dlm_lease *m_lease;
-+
- QEglFSKmsGbmCursor *m_globalCursor;
};
+ QT_END_NAMESPACE
--
2.25.1
diff --git a/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb b/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb
index 0996019f..6a98bd2e 100644
--- a/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb
+++ b/meta-agl-drm-lease/recipes-graphics/drm-lease-manager/drm-lease-manager_git.bb
@@ -6,8 +6,8 @@ SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/drm-lease-manager;protoco
file://run-ptest \
"
-PV = "0.1+git${SRCPV}"
-SRCREV = "88cbd73ba10a589734cf126b64e74a6f42a5d5a7"
+PV = "0.2+git${SRCPV}"
+SRCREV = "8ec09a65cd5b390b3d24bfb6c7a73993a3d98a56"
S = "${WORKDIR}/git"