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>2016-04-19 15:03:20 -0300
commit6d20ab47a75e6c044164c25ccaa9091b0bbc6915 (patch)
treeaf01fa7469e3330422279556adc796195a47aaed
parent2f94562bba387c7a6ba457f66f39ac976f656f9b (diff)
downloadmeta-freescale-6d20ab47a75e6c044164c25ccaa9091b0bbc6915.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 f54e9b79..e0a67c7c 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 ee3ac71d..468849c8 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 d7902272..4835e78f 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 ?= ""