summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2015-08-11 17:32:47 -0300
committerOtavio Salvador <otavio@ossystems.com.br>2015-09-22 18:54:30 -0300
commit8cbf07b4cb022ef90140d18aaefabf01c4d45331 (patch)
tree3a60145f85f354590ab7c86377e2f7970b07eefc
parent9211adb01b3d8d1c67b5fb4235cd9827a2fba1b4 (diff)
downloadmeta-fsl-arm-8cbf07b4cb022ef90140d18aaefabf01c4d45331.tar.gz
Enable Vivante kernel driver dynamic provider
The linux-imx.inc based kernels now can dynamically provide the Vivante kernel driver and satisfy the runtime dependency added for the Vivante GPU user space libraries. The beauty of this solution is that it makes ease for 3rd party kernel to reuse the same infrastructure and use the external module easily. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-rw-r--r--conf/machine/include/imx-base.inc12
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc8
-rw-r--r--recipes-kernel/linux/linux-imx.inc2
3 files changed, 20 insertions, 2 deletions
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index f54e9b7..e0a67c7 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -90,6 +90,18 @@ MACHINE_GSTREAMER_1_0_PLUGIN ?= ""
90MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta" 90MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta"
91MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta" 91MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta"
92 92
93# Determines if the SoC has support for Vivante kernel driver
94SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0"
95SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6q = "1"
96SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6dl = "1"
97SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6sx = "1"
98SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6sl = "1"
99
100# Handle Vivante kernel driver setting:
101# 0 - machine does not have Vivante GPU driver support
102# 1 - machine has Vivante GPU driver support
103MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ??= "${SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}"
104
93# mx6 GPU libraries 105# mx6 GPU libraries
94PREFERRED_PROVIDER_virtual/egl_mx6q ?= "imx-gpu-viv" 106PREFERRED_PROVIDER_virtual/egl_mx6q ?= "imx-gpu-viv"
95PREFERRED_PROVIDER_virtual/egl_mx6dl ?= "imx-gpu-viv" 107PREFERRED_PROVIDER_virtual/egl_mx6dl ?= "imx-gpu-viv"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc b/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc
index ee3ac71..468849c 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc
@@ -47,8 +47,12 @@ PACKAGES =+ "libclc-mx6 libclc-mx6-dev libclc-mx6-dbg \
47 imx-gpu-viv-demos imx-gpu-viv-demos-dbg \ 47 imx-gpu-viv-demos imx-gpu-viv-demos-dbg \
48" 48"
49 49
50# Skip package if it does not match the machine float-point type in use
51python __anonymous () { 50python __anonymous () {
51 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT', True) or '0')
52 if has_vivante_kernel_driver_support != '1':
53 raise bb.parse.SkipPackage('The kernel of machine needs to have Vivante kernel driver support for this recipe to be used.')
54
55 # Skip package if it does not match the machine float-point type in use
52 is_machine_hardfp = base_contains("TUNE_FEATURES", "callconvention-hard", True, False, d) 56 is_machine_hardfp = base_contains("TUNE_FEATURES", "callconvention-hard", True, False, d)
53 is_package_hardfp = d.getVar("PACKAGE_FP_TYPE", True) == "hardfp" 57 is_package_hardfp = d.getVar("PACKAGE_FP_TYPE", True) == "hardfp"
54 58
@@ -254,6 +258,8 @@ FILES_libegl-mx6-dbg = "${libdir}/.debug/libEGL${SOLIBS}"
254FILES_libgal-mx6 = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" 258FILES_libgal-mx6 = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
255FILES_libgal-mx6-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" 259FILES_libgal-mx6-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL"
256FILES_libgal-mx6-dbg = "${libdir}/.debug/libGAL${SOLIBS}" 260FILES_libgal-mx6-dbg = "${libdir}/.debug/libGAL${SOLIBS}"
261RDEPENDS_libgal-mx6 += "kernel-module-imx-gpu-viv"
262INSANE_SKIP_libgal-mx6 += "build-deps"
257 263
258FILES_libvsc-mx6 = "${libdir}/libVSC${SOLIBS}" 264FILES_libvsc-mx6 = "${libdir}/libVSC${SOLIBS}"
259 265
diff --git a/recipes-kernel/linux/linux-imx.inc b/recipes-kernel/linux/linux-imx.inc
index d790227..4835e78 100644
--- a/recipes-kernel/linux/linux-imx.inc
+++ b/recipes-kernel/linux/linux-imx.inc
@@ -4,7 +4,7 @@
4LICENSE = "GPLv2" 4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 5LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
6 6
7inherit kernel fsl-kernel-localversion 7inherit kernel fsl-kernel-localversion fsl-vivante-kernel-driver-handler
8 8
9# Put a local version until we have a true SRCREV to point to 9# Put a local version until we have a true SRCREV to point to
10LOCALVERSION ?= "" 10LOCALVERSION ?= ""