aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend4
-rw-r--r--meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles/0001-Fix-fw-download-issue.patch60
2 files changed, 64 insertions, 0 deletions
diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend
index d0a6a502..c230e5ae 100644
--- a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles.bbappend
@@ -1 +1,5 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
+
+SRC_URI:append = " file://0001-Fix-fw-download-issue.patch"
+
RDEPENDS:${PN}:append = " gles-user-module-firmware"
diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles/0001-Fix-fw-download-issue.patch b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles/0001-Fix-fw-download-issue.patch
new file mode 100644
index 00000000..a44e8eff
--- /dev/null
+++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-kernel/kernel-module-gles/kernel-module-gles/0001-Fix-fw-download-issue.patch
@@ -0,0 +1,60 @@
+From d7a7ad476dee136e21fc7de112003528f7675007 Mon Sep 17 00:00:00 2001
+From: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
+Date: Wed, 1 Dec 2021 08:16:24 +0900
+Subject: [PATCH] Fix fw download issue
+
+---
+ services/server/env/linux/module_common.c | 26 ++++++++++++++++-------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/services/server/env/linux/module_common.c b/services/server/env/linux/module_common.c
+index 5822dab..3c97b28 100644
+--- a/services/server/env/linux/module_common.c
++++ b/services/server/env/linux/module_common.c
+@@ -416,6 +416,10 @@ int PVRSRVDeviceResume(PVRSRV_DEVICE_NODE *psDeviceNode)
+ return 0;
+ }
+
++//HACK
++static DEFINE_MUTEX(rgx_initialize_mutex);
++//HACK
++
+ /**************************************************************************/ /*!
+ @Function PVRSRVDeviceOpen
+ @Description Common device open.
+@@ -455,18 +459,24 @@ int PVRSRVDeviceOpen(PVRSRV_DEVICE_NODE *psDeviceNode,
+
+ if (psDeviceNode->eDevState == PVRSRV_DEVICE_STATE_INIT)
+ {
+- eError = PVRSRVCommonDeviceInitialise(psDeviceNode);
+- if (eError != PVRSRV_OK)
++ mutex_lock(&rgx_initialize_mutex);
++ if (psDeviceNode->eDevState == PVRSRV_DEVICE_STATE_INIT)
+ {
+- PVR_DPF((PVR_DBG_ERROR, "%s: Failed to initialise device (%s)",
+- __func__, PVRSRVGetErrorString(eError)));
+- iErr = -ENODEV;
+- goto out;
+- }
++ eError = PVRSRVCommonDeviceInitialise(psDeviceNode);
++ if (eError != PVRSRV_OK)
++ {
++ PVR_DPF((PVR_DBG_ERROR, "%s: Failed to initialise device (%s)",
++ __func__, PVRSRVGetErrorString(eError)));
++ iErr = -ENODEV;
++ mutex_unlock(&rgx_initialize_mutex);
++ goto out;
++ }
+
+ #if defined(SUPPORT_RGX)
+- PVRGpuTraceInitIfEnabled(psDeviceNode);
++ PVRGpuTraceInitIfEnabled(psDeviceNode);
+ #endif
++ }
++ mutex_unlock(&rgx_initialize_mutex);
+ }
+
+ sPrivData.psDevNode = psDeviceNode;
+--
+2.25.1
+