diff options
author | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
---|---|---|
committer | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /bsp/meta-freescale/classes/fsl-vivante-kernel-driver-handler.bbclass | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (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.bbclass | 63 |
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 +} |