From 9211adb01b3d8d1c67b5fb4235cd9827a2fba1b4 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 11 Aug 2015 17:26:40 -0300 Subject: 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 --- classes/fsl-vivante-kernel-driver-handler.bbclass | 65 +++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 classes/fsl-vivante-kernel-driver-handler.bbclass (limited to 'classes') 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 @@ +# 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 (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 ??= "1" + +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_prepend () { + if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then + fsl_viv_handler_defconfig="${WORKDIR}/defconfig" + if [ -e ${B}/.config ]; then + fsl_viv_handler_defconfig="${B}/.config" + fi + sed -i "/CONFIG_MXC_GPU_VIV[ =]/d" $fsl_viv_handler_defconfig + if [ "${MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE}" = "1" ]; then + echo "# CONFIG_MXC_GPU_VIV is not set" >> $fsl_viv_handler_defconfig + else + echo "CONFIG_MXC_GPU_VIV=y" >> $fsl_viv_handler_defconfig + fi + fi +} -- cgit v1.2.3-54-g00ecf