summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2015-08-11 17:26:40 -0300
committerOtavio Salvador <otavio@ossystems.com.br>2015-09-22 18:54:21 -0300
commit9211adb01b3d8d1c67b5fb4235cd9827a2fba1b4 (patch)
tree90567b0c9891d1c32b6061f62e8e65565470e019 /classes
parentd476c351dc5ec18d2d58de6537b897c52c43a779 (diff)
downloadmeta-fsl-arm-9211adb01b3d8d1c67b5fb4235cd9827a2fba1b4.tar.gz
fsl-vivante-kernel-driver-handler.bbclass: Handle Vivante kernel driver provider
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 Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'classes')
-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 0000000..740638a
--- /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}