summaryrefslogtreecommitdiffstats
path: root/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass
diff options
context:
space:
mode:
authorToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
committerToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
commit5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch)
treeb4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass
parent706ad73eb02caf8532deaf5d38995bd258725cb8 (diff)
agl-basesystem
Diffstat (limited to 'bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass')
-rw-r--r--bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass63
1 files changed, 63 insertions, 0 deletions
diff --git a/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass b/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass
new file mode 100644
index 00000000..e0578f4e
--- /dev/null
+++ b/bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass
@@ -0,0 +1,63 @@
+# Freescale Kernel Vivante Kernel Driver handler
+#
+# Enable the kernel to provide or not the Vivante kernel driver and
+# dynamically set the proper providers per machine.
+#
+# The following options are supported:
+#
+# MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT
+#
+# Machine does or does not have support for the Vivante kernel
+# driver, options are:
+#
+# 0 - machine does not have Vivante GPU driver support
+# 1 - machine has Vivante GPU driver support
+#
+# MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE
+#
+# Machine uses the Vivante kernel driver as module, options are:
+#
+# 0 - enable the builtin kernel driver module
+# 1 - enable the external kernel module
+#
+# Copyright 2015, 2016 (C) O.S. Systems Software LTDA.
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+# Handle Vivante kernel driver setting:
+# 0 - machine does not have Vivante GPU driver support
+# 1 - machine has Vivante GPU driver support
+MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ??= "0"
+
+# Use Vivante kernel driver module:
+# 0 - enable the builtin kernel driver module
+# 1 - enable the external kernel module
+MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE ??= "${@d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', False) or '0'}"
+
+python fsl_vivante_kernel_driver_handler () {
+ has_vivante_kernel_driver_support = e.data.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or "0"
+ use_vivante_kernel_driver_module = e.data.getVar('MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE', True) or "0"
+
+ if has_vivante_kernel_driver_support != "1":
+ return
+
+ if use_vivante_kernel_driver_module != "1":
+ e.data.appendVar('RPROVIDES_kernel-base', ' kernel-module-imx-gpu-viv')
+ e.data.appendVar('RREPLACES_kernel-base', ' kernel-module-imx-gpu-viv')
+ e.data.appendVar('RCONFLICTS_kernel-base', ' kernel-module-imx-gpu-viv')
+}
+
+addhandler fsl_vivante_kernel_driver_handler
+fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise"
+
+do_configure_append () {
+ if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then
+ config="${B}/.config"
+
+ sed -i "/CONFIG_MXC_GPU_VIV[ =]/d" $config
+ if [ "${MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE}" = "1" ]; then
+ echo "# CONFIG_MXC_GPU_VIV is not set" >> $config
+ else
+ echo "CONFIG_MXC_GPU_VIV=y" >> $config
+ fi
+ fi
+}