summaryrefslogtreecommitdiffstats
path: root/classes/fsl-vivante-kernel-driver-handler.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'classes/fsl-vivante-kernel-driver-handler.bbclass')
-rw-r--r--classes/fsl-vivante-kernel-driver-handler.bbclass65
1 files changed, 65 insertions, 0 deletions
diff --git a/classes/fsl-vivante-kernel-driver-handler.bbclass b/classes/fsl-vivante-kernel-driver-handler.bbclass
new file mode 100644
index 00000000..740638ac
--- /dev/null
+++ b/classes/fsl-vivante-kernel-driver-handler.bbclass
@@ -0,0 +1,65 @@
1# Freescale Kernel Vivante Kernel Driver handler
2#
3# Enable the kernel to provide or not the Vivante kernel driver and
4# dynamically set the proper providers per machine.
5#
6# The following options are supported:
7#
8# MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT
9#
10# Machine does or does not have support for the Vivante kernel
11# driver, options are:
12#
13# 0 - machine does not have Vivante GPU driver support
14# 1 - machine has Vivante GPU driver support
15#
16# MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE
17#
18# Machine uses the Vivante kernel driver as module, options are:
19#
20# 0 - enable the builtin kernel driver module
21# 1 - enable the external kernel module
22#
23# Copyright 2015 (C) O.S. Systems Software LTDA.
24# Released under the MIT license (see COPYING.MIT for the terms)
25
26# Handle Vivante kernel driver setting:
27# 0 - machine does not have Vivante GPU driver support
28# 1 - machine has Vivante GPU driver support
29MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ??= "0"
30
31# Use Vivante kernel driver module:
32# 0 - enable the builtin kernel driver module
33# 1 - enable the external kernel module
34MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE ??= "1"
35
36python fsl_vivante_kernel_driver_handler () {
37 has_vivante_kernel_driver_support = e.data.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or "0"
38 use_vivante_kernel_driver_module = e.data.getVar('MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE', True) or "0"
39
40 if has_vivante_kernel_driver_support != "1":
41 return
42
43 if use_vivante_kernel_driver_module != "1":
44 e.data.appendVar('RPROVIDES_kernel-base', ' kernel-module-imx-gpu-viv')
45 e.data.appendVar('RREPLACES_kernel-base', ' kernel-module-imx-gpu-viv')
46 e.data.appendVar('RCONFLICTS_kernel-base', ' kernel-module-imx-gpu-viv')
47}
48
49addhandler fsl_vivante_kernel_driver_handler
50fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise"
51
52do_configure_prepend () {
53 if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then
54 fsl_viv_handler_defconfig="${WORKDIR}/defconfig"
55 if [ -e ${B}/.config ]; then
56 fsl_viv_handler_defconfig="${B}/.config"
57 fi
58 sed -i "/CONFIG_MXC_GPU_VIV[ =]/d" $fsl_viv_handler_defconfig
59 if [ "${MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE}" = "1" ]; then
60 echo "# CONFIG_MXC_GPU_VIV is not set" >> $fsl_viv_handler_defconfig
61 else
62 echo "CONFIG_MXC_GPU_VIV=y" >> $fsl_viv_handler_defconfig
63 fi
64 fi
65}