diff options
Diffstat (limited to 'classes/fsl-vivante-kernel-driver-handler.bbclass')
| -rw-r--r-- | classes/fsl-vivante-kernel-driver-handler.bbclass | 65 |
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 000000000..740638ac0 --- /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 | ||
| 29 | MACHINE_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 | ||
| 34 | MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE ??= "1" | ||
| 35 | |||
| 36 | python 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 | |||
| 49 | addhandler fsl_vivante_kernel_driver_handler | ||
| 50 | fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise" | ||
| 51 | |||
| 52 | do_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 | } | ||
