diff options
author | Otavio Salvador <otavio@ossystems.com.br> | 2015-08-11 17:32:47 -0300 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2015-09-22 18:54:30 -0300 |
commit | 8cbf07b4cb022ef90140d18aaefabf01c4d45331 (patch) | |
tree | 3a60145f85f354590ab7c86377e2f7970b07eefc | |
parent | 9211adb01b3d8d1c67b5fb4235cd9827a2fba1b4 (diff) | |
download | meta-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.inc | 12 | ||||
-rw-r--r-- | recipes-graphics/imx-gpu-viv/imx-gpu-viv.inc | 8 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-imx.inc | 2 |
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 ?= "" | |||
90 | MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta" | 90 | MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta" |
91 | MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta" | 91 | MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta" |
92 | 92 | ||
93 | # Determines if the SoC has support for Vivante kernel driver | ||
94 | SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0" | ||
95 | SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6q = "1" | ||
96 | SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6dl = "1" | ||
97 | SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_mx6sx = "1" | ||
98 | SOC_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 | ||
103 | MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT ??= "${SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" | ||
104 | |||
93 | # mx6 GPU libraries | 105 | # mx6 GPU libraries |
94 | PREFERRED_PROVIDER_virtual/egl_mx6q ?= "imx-gpu-viv" | 106 | PREFERRED_PROVIDER_virtual/egl_mx6q ?= "imx-gpu-viv" |
95 | PREFERRED_PROVIDER_virtual/egl_mx6dl ?= "imx-gpu-viv" | 107 | PREFERRED_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 | ||
51 | python __anonymous () { | 50 | python __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}" | |||
254 | FILES_libgal-mx6 = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" | 258 | FILES_libgal-mx6 = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" |
255 | FILES_libgal-mx6-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" | 259 | FILES_libgal-mx6-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" |
256 | FILES_libgal-mx6-dbg = "${libdir}/.debug/libGAL${SOLIBS}" | 260 | FILES_libgal-mx6-dbg = "${libdir}/.debug/libGAL${SOLIBS}" |
261 | RDEPENDS_libgal-mx6 += "kernel-module-imx-gpu-viv" | ||
262 | INSANE_SKIP_libgal-mx6 += "build-deps" | ||
257 | 263 | ||
258 | FILES_libvsc-mx6 = "${libdir}/libVSC${SOLIBS}" | 264 | FILES_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 @@ | |||
4 | LICENSE = "GPLv2" | 4 | LICENSE = "GPLv2" |
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" | 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" |
6 | 6 | ||
7 | inherit kernel fsl-kernel-localversion | 7 | inherit 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 |
10 | LOCALVERSION ?= "" | 10 | LOCALVERSION ?= "" |