diff options
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 + |