summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2021-09-11 15:54:34 -0300
committerGitHub <noreply@github.com>2021-09-11 15:54:34 -0300
commit16e0d07d36787d14e9d00ff8123419863d1f19d2 (patch)
tree36a413f5702cd2d29b5023ec0762b71c27e4fac3
parent25e9cbddbd32802634bafef62ba08da9821c604d (diff)
parentb821d72e7b7fc250eb80fa43a79ce31b88863239 (diff)
downloadmeta-freescale-16e0d07d36787d14e9d00ff8123419863d1f19d2.tar.gz
Merge pull request #859 from angolini/hardknott+bsp
Backport NXP BSP 5.10.35_2.0.0 to Hardknott
-rw-r--r--EULA30
-rw-r--r--SCR/SCR-5.10.35-2.0.0.txt (renamed from SCR/SCR-5.4.70_2.3.2.txt)508
-rw-r--r--classes/fsl-eula-unpack.bbclass10
-rw-r--r--conf/machine/imx8mq-evk.conf7
-rw-r--r--conf/machine/include/imx-base.inc12
-rw-r--r--conf/machine/include/imx8mm-evk.inc4
-rw-r--r--conf/machine/include/imx8mp-evk.inc5
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8.12.inc (renamed from recipes-bsp/firmware-imx/firmware-imx-8.10.1.inc)6
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb (renamed from recipes-bsp/firmware-imx/firmware-imx-8_8.10.1.bb)0
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8m_8.12.bb (renamed from recipes-bsp/firmware-imx/firmware-imx-8m_8.10.1.bb)0
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx_8.12.bb (renamed from recipes-bsp/firmware-imx/firmware-imx_8.10.1.bb)0
-rw-r--r--recipes-bsp/firmware-qca/firmware-qca.inc15
-rw-r--r--recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb27
-rw-r--r--recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb27
-rw-r--r--recipes-bsp/firmware-qca/qca-tools_3.0.2.bb20
-rw-r--r--recipes-bsp/imx-atf/imx-atf_2.4.bb6
-rw-r--r--recipes-bsp/imx-mkimage/imx-mkimage_git.bb15
-rw-r--r--recipes-bsp/imx-mkimage/imx-mkimage_git.inc7
-rw-r--r--recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb (renamed from recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.7.1.bb)8
-rw-r--r--recipes-bsp/imx-seco/imx-seco-libs_git.bb8
-rw-r--r--recipes-bsp/imx-seco/imx-seco_3.8.1.bb (renamed from recipes-bsp/imx-seco/imx-seco_3.7.5.bb)8
-rw-r--r--recipes-bsp/imx-test/imx-test_git.bb6
-rw-r--r--recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb (renamed from recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb)8
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon/0001-Makefile-Honor-LDFLAGS-from-toolchain.patch33
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb32
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-decoder_sw-resolve-compilation-error-with-fcommon.patch54
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.20.0.bb35
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb35
-rw-r--r--recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb (renamed from recipes-bsp/isp-imx/basler-camera_4.2.2.11.0.bb)6
-rw-r--r--recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch14
-rw-r--r--recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb (renamed from recipes-bsp/isp-imx/isp-imx_4.2.2.11.0.bb)6
-rw-r--r--recipes-bsp/u-boot/u-boot-imx-common_2021.04.inc (renamed from recipes-bsp/u-boot/u-boot-imx-common.inc)6
-rw-r--r--recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb (renamed from recipes-bsp/u-boot/u-boot-imx-mfgtool_2020.04.bb)0
-rw-r--r--recipes-bsp/u-boot/u-boot-imx_2021.04.bb (renamed from recipes-bsp/u-boot/u-boot-imx_2020.04.bb)6
-rw-r--r--recipes-bsp/u-boot/u-boot-mfgtool.inc4
-rw-r--r--recipes-extended/tsntool/tsntool_git.bb2
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb13
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb12
-rw-r--r--recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.9.2.bb (renamed from recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb)8
-rw-r--r--recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p2.0.bb (renamed from recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb)12
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc35
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb6
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch32.bb (renamed from recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb)4
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb6
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch47
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch116
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch322
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch31
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch132
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch265
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch287
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch669
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend8
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p2.0.bb (renamed from recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb)8
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.13.0.bb (renamed from recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.11.0.bb)4
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb14
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb17
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc23
-rw-r--r--recipes-kernel/linux/linux-imx-headers_5.10.bb (renamed from recipes-kernel/linux/linux-imx-headers_5.4.bb)9
-rw-r--r--recipes-kernel/linux/linux-imx-mfgtool_5.10.bb (renamed from recipes-kernel/linux/linux-imx-mfgtool_5.4.bb)0
-rw-r--r--recipes-kernel/linux/linux-imx/imx/defconfig86
-rw-r--r--recipes-kernel/linux/linux-imx/mx8/defconfig219
-rw-r--r--recipes-kernel/linux/linux-imx_5.10.bb (renamed from recipes-kernel/linux/linux-imx_5.4.bb)10
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch14
-rw-r--r--[-rwxr-xr-x]recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch20
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch37
-rw-r--r--[-rwxr-xr-x]recipes-multimedia/alsa/alsa-lib/0006-add-conf-for-iMX-XCVR-sound-card.patch12
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb70
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb24
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.3.imx.bb)24
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch36
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch220
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch34
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch44
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch233
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch)2
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch)2
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch48
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend)0
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.imx.bb)41
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend3
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.imx.bb)6
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb)10
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.0.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb)8
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch58
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch112
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch36
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch74
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch32
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch257
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch36
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch110
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch48
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch58
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch37
-rwxr-xr-xrecipes-multimedia/gstreamer/gstreamer1.0/run-ptest2
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.imx.bb)44
-rw-r--r--recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb (renamed from recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb)31
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch1001
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch221
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch146
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch40
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch251
-rw-r--r--recipes-multimedia/tinycompress/tinycompress_1.1.6.bb16
104 files changed, 4963 insertions, 1868 deletions
diff --git a/EULA b/EULA
index 015a74b1..97a3cddf 100644
--- a/EULA
+++ b/EULA
@@ -1,4 +1,4 @@
1LA_OPT_NXP_Software_License v22 April 2021 1LA_OPT_NXP_Software_License v24 June 2021
2 2
3IMPORTANT. Read the following NXP Software License Agreement ("Agreement") 3IMPORTANT. Read the following NXP Software License Agreement ("Agreement")
4completely. By selecting the "I Accept" button at the end of this page, or by 4completely. By selecting the "I Accept" button at the end of this page, or by
@@ -96,7 +96,7 @@ in combination with a NXP Product.
96You may not distribute or sublicense the Licensed Software to others under the 96You may not distribute or sublicense the Licensed Software to others under the
97license granted in this Section 2.2. 97license granted in this Section 2.2.
98 98
99You may demonstrate the Licensed Software to your direct costumers as part of 99You may demonstrate the Licensed Software to your direct customers as part of
100an Authorized System so long as such demonstration is directly controlled by 100an Authorized System so long as such demonstration is directly controlled by
101you and without prior approval by NXP; however, to all other third parties only 101you and without prior approval by NXP; however, to all other third parties only
102if NXP has provided its advance, written approval (e.g. email approval) of your 102if NXP has provided its advance, written approval (e.g. email approval) of your
@@ -405,14 +405,14 @@ examination or audit.
405Agreement will be made in writing, and will be effective when received at the 405Agreement will be made in writing, and will be effective when received at the
406following addresses: 406following addresses:
407 407
408 NXP: NXP B.V. 408 NXP: NXP B.V.
409 High Tech Campus 60 409 High Tech Campus 60
410 5656 AG Eindhoven 410 5656 AG Eindhoven
411 The Netherlands 411 The Netherlands
412 412
413 ATTN: Legal Department 413 ATTN: Legal Department
414 414
415 You: The address provided at registration will be used. 415 You: The address provided at registration will be used.
416 416
41723. RELATIONSHIP OF THE PARTIES. The parties are independent 41723. RELATIONSHIP OF THE PARTIES. The parties are independent
418contractors. Nothing in this Agreement will be construed to create any 418contractors. Nothing in this Agreement will be construed to create any
@@ -475,6 +475,9 @@ or embedded within, Authorized Systems that include an Amphion Video Decoder.
475Aquantia Corp.: You may use Aquantia's API binaries solely to flash the API 475Aquantia Corp.: You may use Aquantia's API binaries solely to flash the API
476software to an NXP Product which mates with an Aquantia device. 476software to an NXP Product which mates with an Aquantia device.
477 477
478Argus Cyber Security: The Argus software may only be used in object code and
479only for evaluation and demonstration purposes.
480
478Atheros: Use of Atheros software is limited to evaluation and demonstration 481Atheros: Use of Atheros software is limited to evaluation and demonstration
479only. Permitted distributions must be similarly limited. Further rights must 482only. Permitted distributions must be similarly limited. Further rights must
480be obtained directly from Atheros. 483be obtained directly from Atheros.
@@ -486,8 +489,11 @@ Au-Zone Technologies: eIQ Portal, Model Tool, DeepViewRT and ModelRunner are
486distributed by NXP under license from Au-Zone Technologies. Your use of the 489distributed by NXP under license from Au-Zone Technologies. Your use of the
487Licensed Software, examples and related documentation is subject to the 490Licensed Software, examples and related documentation is subject to the
488following: 491following:
492
489(1) Use of Software is limited to Authorized System only 493(1) Use of Software is limited to Authorized System only
494
490(2) In no event may Licensee Sublicense OR distribute the Software 495(2) In no event may Licensee Sublicense OR distribute the Software
496
491(3) AU-ZONE TECHNOLOGIES SHALL NOT BE LIABLE FOR USE OF LICENSED 497(3) AU-ZONE TECHNOLOGIES SHALL NOT BE LIABLE FOR USE OF LICENSED
492SOFTWARE IN CRITICAL APPLICATIONS BY LICENSEE 498SOFTWARE IN CRITICAL APPLICATIONS BY LICENSEE
493 499
@@ -525,6 +531,14 @@ Cypress Semiconductor Corporation: WWD RTOS source code may only be used in
525accordance with the Cypress IOT Community License Agreement obtained directly 531accordance with the Cypress IOT Community License Agreement obtained directly
526from Cypress Semiconductor Corporation. 532from Cypress Semiconductor Corporation.
527 533
534Elektrobit Automotive GmbH (“EB”): EB software must be used consistent with
535the EB License Terms and Conditions, Version 1.4 (Dec 2019) found here:
536https://www.elektrobit.com/legal-notice/ . Licensee is only granted an
537evaluation license for the EB software, defined as license to use the EB
538software internally for own evaluation purposes, limited to three (3) months.
539Production deployment of the EB software using this license is prohibited. See
540additionally Section 2.1.1 EB EULA.
541
528Embedded Systems Academy GmbH (EmSA): Any use of Micro CANopen Plus is subject 542Embedded Systems Academy GmbH (EmSA): Any use of Micro CANopen Plus is subject
529to the acceptance of the license conditions described in the LICENSE.INFO file 543to the acceptance of the license conditions described in the LICENSE.INFO file
530distributed with all example projects and in the documentation and the 544distributed with all example projects and in the documentation and the
diff --git a/SCR/SCR-5.4.70_2.3.2.txt b/SCR/SCR-5.10.35-2.0.0.txt
index 3632053b..c51a0903 100644
--- a/SCR/SCR-5.4.70_2.3.2.txt
+++ b/SCR/SCR-5.10.35-2.0.0.txt
@@ -1,36 +1,41 @@
1NXP Software Content Register 1NXP Software Content Register
2 2
3Release - Linux 5.4.70_2.3.2 3Release - Linux 5.10.35-2.0.0
4 April 2022 4 June 2021
5
6Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
7License File: COPYING
5 8
6Yocto Project recipe manifest: 9Yocto Project recipe manifest:
7repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx_5.4.70_2.3.2.xml 10repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-hardknott -m imx-5.10.35-2.0.0.xml
8 11
9Release tag: rel_imx_5.4.70_2.3.2 12Release tag: lf-5.10.35-2.0.0
10 13
11-------------------------------------------- 14--------------------------------------------
12BSP Packages 15BSP Packages
13-------------------------------------------- 16--------------------------------------------
14 17
15Package: linux-imx.git 18Package: linux-imx.git
19Version: 5.10
16Outgoing License: GPL-2.0 20Outgoing License: GPL-2.0
17License File: COPYING 21License File: COPYING
18Package Category: BSP 22Package Category: BSP
19Type of Content: source 23Type of Content: source
20Description and comments: The Linux kernel with i.MX-specific drivers 24Description and comments: The Linux kernel with i.MX-specific drivers
21Release Location: https://source.codeaurora.org/external/imx/linux-imx -b rel_imx_5.4.70_2.3.2 25Release Location: https://source.codeaurora.org/external/imx/linux-imx -b lf-5.10.35-2.0.0
22Origin: NXP (GPL-2.0) 26Origin: NXP (GPL-2.0)
23 kernel.org (GPL-2.0) - https://www.kernel.org/ 27 kernel.org (GPL-2.0) - https://www.kernel.org/
24 28
25-------------------------------------------- 29--------------------------------------------
26 30
27Package: uboot-imx.git 31Package: uboot-imx.git
32Version: 2021.04
28Outgoing License: GPL-2.0 33Outgoing License: GPL-2.0
29License File: COPYING 34License File: COPYING
30Package Category: BSP 35Package Category: BSP
31Type of Content: source 36Type of Content: source
32Description and comments: Bootloader with i.MX-specific capabilities 37Description and comments: Bootloader with i.MX-specific capabilities
33Release Location: https://source.codeaurora.org/external/imx/uboot-imx -b rel_imx_5.4.70_2.3.2 38Release Location: https://source.codeaurora.org/external/imx/uboot-imx -b lf-5.10.35-2.0.0
34Origin: NXP (GPL-2.0) 39Origin: NXP (GPL-2.0)
35 Das U-Boot - Universal Bootloader (GPL-2.0) - http://www.denx.de/wiki/U-Boot/WebHome 40 Das U-Boot - Universal Bootloader (GPL-2.0) - http://www.denx.de/wiki/U-Boot/WebHome
36 Android Open Source Project (BSD-2-Clause) - https://source.android.com/ 41 Android Open Source Project (BSD-2-Clause) - https://source.android.com/
@@ -39,19 +44,21 @@ Origin: NXP (GPL-2.0)
39-------------------------------------------- 44--------------------------------------------
40 45
41Package: imx-atf.git 46Package: imx-atf.git
47Version: 2.4
42Outgoing License: BSD-3-Clause 48Outgoing License: BSD-3-Clause
43License File: docs/license.rst 49License File: docs/license.rst
44Package Category: BSP 50Package Category: BSP
45Type of Content: source 51Type of Content: source
46Description and comments: ARM Trusted Firmware 52Description and comments: ARM Trusted Firmware
47Release Location: https://source.codeaurora.org/external/imx/imx-atf -b rel_imx_5.4.70_2.3.2 53Release Location: https://source.codeaurora.org/external/imx/imx-atf -b lf-5.10.35-2.0.0
48Origin: NXP (BSD-3-clause) 54Origin: NXP (BSD-3-clause)
49 arm-trusted-firmware - ARM Limited (BSD-3-clause) - http://github.com/ARM-software/arm-trusted-firmware/ 55 arm-trusted-firmware - ARM Limited (BSD-3-clause) - http://github.com/ARM-software/arm-trusted-firmware/
50 56
51-------------------------------------------- 57--------------------------------------------
52 58
53Package: imx-sc-firmware-1.7.1.bin 59Package: imx-sc-firmware-1.9.0.bin
54Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 60Version: 1.9.0
61Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
55License File: COPYING 62License File: COPYING
56Package Category: BSP 63Package Category: BSP
57Type of Content: binary 64Type of Content: binary
@@ -62,8 +69,9 @@ Origin: NXP (proprietary)
62 69
63-------------------------------------------- 70--------------------------------------------
64 71
65Package: firmware-imx-8.10.1.bin 72Package: firmware-imx-8.12.bin
66Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 73Version: 8.12
74Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
67License File: COPYING 75License File: COPYING
68Package Category: BSP 76Package Category: BSP
69Type of Content: binary 77Type of Content: binary
@@ -94,18 +102,20 @@ Origin: NXP (proprietary)
94-------------------------------------------- 102--------------------------------------------
95 103
96Package: imx-mkimage.git 104Package: imx-mkimage.git
105Version:
97Outgoing License: GPL-2.0 106Outgoing License: GPL-2.0
98License File: COPYING 107License File: COPYING
99Package Category: BSP 108Package Category: BSP
100Type of Content: source 109Type of Content: source
101Description and comments: Make Image BootLoader 110Description and comments: Make Image BootLoader
102Release Location: https://source.codeaurora.org/external/imx/imx-mkimage -b rel_imx_5.4.70_2.3.2 111Release Location: https://source.codeaurora.org/external/imx/imx-mkimage -b lf-5.10.35-2.0.0
103Origin: NXP (GPL-2.0) 112Origin: NXP (GPL-2.0)
104 Das U-Boot - Universal Bootloader (GPL-2.0) - http://www.denx.de/wiki/U-Boot/WebHome 113 Das U-Boot - Universal Bootloader (GPL-2.0) - http://www.denx.de/wiki/U-Boot/WebHome
105 114
106-------------------------------------------- 115--------------------------------------------
107 116
108Package: imx-lib.git 117Package: imx-lib.git
118Version:
109Outgoing License: LGPL-2.1 119Outgoing License: LGPL-2.1
110License File: COPYING-LGPL-2.1 120License File: COPYING-LGPL-2.1
111Package Category: BSP 121Package Category: BSP
@@ -117,12 +127,13 @@ Origin: NXP (LGPL-2.1)
117-------------------------------------------- 127--------------------------------------------
118 128
119Package: imx-test.git 129Package: imx-test.git
130Version:
120Outgoing License: Each test has its own license. It is one of GPL-2.0 LGPL-2.1 or Apache-2.0 131Outgoing License: Each test has its own license. It is one of GPL-2.0 LGPL-2.1 or Apache-2.0
121License File: COPYING 132License File: COPYING
122Package Category: BSP 133Package Category: BSP
123Type of Content: source 134Type of Content: source
124Description and comments: Linux unit test applications 135Description and comments: Linux unit test applications
125Release Location: https://source.codeaurora.org/external/imx/imx-test -b rel_imx_5.4.70_2.3.2 136Release Location: https://source.codeaurora.org/external/imx/imx-test -b lf-5.10.35-2.0.0
126Origin: NXP (GPL-2.0) 137Origin: NXP (GPL-2.0)
127 module_test: NXP (GPL-2.0+) 138 module_test: NXP (GPL-2.0+)
128 Hantro Products Oy. (GPL-2.0+) 139 Hantro Products Oy. (GPL-2.0+)
@@ -187,19 +198,21 @@ Origin: NXP (GPL-2.0)
187-------------------------------------------- 198--------------------------------------------
188 199
189Package: qcacld-2.0-imx.git 200Package: qcacld-2.0-imx.git
201Version: 3.1
190Outgoing License: ISC 202Outgoing License: ISC
191License File: COPYING 203License File: COPYING
192Package Category: BSP 204Package Category: BSP
193Type of Content: source 205Type of Content: source
194Description and comments: QCA9377 WLAN linux driver 206Description and comments: QCA9377 WLAN linux driver
195Release Location: https://source.codeaurora.org/external/imx/qcacld-2.0-imx -b rel_imx_5.4.70_2.3.2 207Release Location: https://source.codeaurora.org/external/imx/qcacld-2.0-imx -b lf-5.10.35-2.0.0
196Origin: NXP (ISC) 208Origin: NXP (ISC)
197 Qualcomm Atheros, Inc. (ISC) – https://source.codeaurora.org/external/wlan/qcacld-2.0 209 Qualcomm Atheros, Inc. (ISC) – https://source.codeaurora.org/external/wlan/qcacld-2.0
198 210
199-------------------------------------------- 211--------------------------------------------
200 212
201Package: firmware-qca-3.0.2.bin 213Package: firmware-qca-3.0.2.bin
202Outgoing License: LA_OPT_NXP_Software_License v10 December 2019 - Production Use - Section 2.3 applies and Qualcomm Atheros License 214Version: 3.0.2
215Outgoing License: LA_OPT_NXP_Software_License v10 December 2019 - Additional distribution license granted - Section 2.3 applies and Qualcomm Atheros License
203License File: COPYING 216License File: COPYING
204Package Category: BSP 217Package Category: BSP
205Type of Content: binary 218Type of Content: binary
@@ -209,65 +222,20 @@ Origin: Qualcomm Atheros, Inc. (proprietary)
209 222
210-------------------------------------------- 223--------------------------------------------
211 224
212Package: imx-firmware.git
213Outgoing License: LA_OPT_NXP_Software_License v11 February 2020 - Production Use - Section 2.3 applies
214License File: nxp/EULA.txt
215Package Category: BSP
216Type of Content: binary
217Description and comments: BSP firmware - Broadcom Bluetooh and WIFI
218Release Location: https://github.com/NXP/imx-firmware -b master
219Origin: brcm: Broadcom Corporation (proprietary)
220 cyw-wifi-bt: Cypress Semiconductor Corporation (proprietary)
221 nxp: NXP (proprietary)
222
223--------------------------------------------
224
225Package: mwifiex.git 225Package: mwifiex.git
226Version:
226Outgoing License: GPL-2.0 227Outgoing License: GPL-2.0
227License File: mwifiex*/gpl-2.0.txt 228License File: mxm_wifiex/wlan_src/gpl-2.0.txt
228Package Category: BSP 229Package Category: BSP
229Type of Content: source 230Type of Content: source
230Description and comments: NXP Wi-Fi linux SDK 231Description and comments: NXP Wi-Fi linux SDK
231Release Location: https://source.codeaurora.org/external/imx/mwifiex -b rel_imx_5.4.70_2.3.2 232Release Location: https://source.codeaurora.org/external/imx/mwifiex -b lf-5.10.35-2.0.0
232Origin: NXP (GPL-2.0) 233Origin: NXP (GPL-2.0)
233 234
234-------------------------------------------- 235--------------------------------------------
235 236
236Package: isp-vvcam.git 237Package: imx-seco-3.8.1.bin
237Outgoing License: GPL-2.0 238Version: 3.8.1
238License File: vvcam/LICENSE
239Package Category: BSP
240Type of Content: ISP Kernel Module source
241Description and comments: Kernel Loadable Module for ISP
242Release Location: https://source.codeaurora.org/external/imx/isp-vvcam -b rel_imx_5.4.70_2.3.2
243Origin: VeriSilicon Holdings Co., Ltd. (GPL-2.0)
244
245--------------------------------------------
246
247Package: isp-imx-4.2.2.11.0.bin
248Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
249License File: COPYING
250Package Category: BSP
251Type of Content: binary and source
252Description and comments: i.MX software ISP
253Release Location: Mirror
254Origin: VeriSilicon Holdings Co., Ltd. (proprietary)
255
256--------------------------------------------
257
258Package: basler-camera-4.2.2.11.0.bin
259Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
260License File: COPYING
261Package Category: BSP
262Type of Content: binary
263Description and comments: Basler camera binary drivers
264Release Location: Mirror
265Origin: Basler AG (proprietary)
266 VeriSilicon Holdings Co., Ltd. (proprietary)
267
268--------------------------------------------
269
270Package: imx-seco-3.7.5.bin
271Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 239Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
272License File: COPYING 240License File: COPYING
273Package Category: BSP 241Package Category: BSP
@@ -279,17 +247,19 @@ Origin: NXP (proprietary)
279-------------------------------------------- 247--------------------------------------------
280 248
281Package: imx-seco-libs.git 249Package: imx-seco-libs.git
282Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 250Version:
251Outgoing License: LA_OPT_NXP_Software_License v23 May 2021 - Additional distribution license granted - Section 2.3 applies
283License File: EULA.txt 252License File: EULA.txt
284Package Category: BSP 253Package Category: BSP
285Type of Content: source 254Type of Content: source
286Description and comments: BSP source - SECO 255Description and comments: BSP source - SECO
287Release Location: https://github.com/NXP/imx-seco-libs.git -b rel_imx_5.4.70_2.3.2 256Release Location: https://github.com/NXP/imx-seco-libs.git -b lf-5.10.35-2.0.0
288Origin: NXP (proprietary) 257Origin: NXP (proprietary)
289 258
290-------------------------------------------- 259--------------------------------------------
291 260
292Package: sof-imx-1.5.0-3 261Package: sof-imx-1.8.0-1
262Version: 1.8.0-1
293Outgoing License: BSD-3-Clause 263Outgoing License: BSD-3-Clause
294License File: LICENCE 264License File: LICENCE
295Package Category: BSP 265Package Category: BSP
@@ -306,6 +276,7 @@ Origin: NXP (BSD-3-clause)
306-------------------------------------------- 276--------------------------------------------
307 277
308Package: simg2img.git 278Package: simg2img.git
279Version:
309Outgoing License: Apache-2.0 280Outgoing License: Apache-2.0
310License File: COPYING 281License File: COPYING
311Package Category: BSP 282Package Category: BSP
@@ -319,6 +290,7 @@ Origin: NXP (Apache-2.0)
319-------------------------------------------- 290--------------------------------------------
320 291
321Package: imx-kobs.git 292Package: imx-kobs.git
293Version:
322Outgoing License: GPL-2.0 294Outgoing License: GPL-2.0
323License File: COPYING 295License File: COPYING
324Package Category: BSP 296Package Category: BSP
@@ -333,6 +305,7 @@ Origin: NXP (GPL-2.0)
333-------------------------------------------- 305--------------------------------------------
334 306
335Package: imx-uuc.git 307Package: imx-uuc.git
308Version:
336Outgoing License: GPL-2.0 309Outgoing License: GPL-2.0
337License File: COPYING 310License File: COPYING
338Package Category: BSP 311Package Category: BSP
@@ -344,24 +317,26 @@ Origin: NXP (GPL-2.0)
344-------------------------------------------- 317--------------------------------------------
345 318
346Package: imx-optee-client.git 319Package: imx-optee-client.git
320Version: 3.13.0.imx
347Outgoing License: BSD-2-Clause 321Outgoing License: BSD-2-Clause
348License File: LICENSE 322License File: LICENSE
349Package Category: BSP 323Package Category: BSP
350Type of Content: source 324Type of Content: source
351Description and comments: Open Portable Trusted Execution Environment for TEE Client library 325Description and comments: Open Portable Trusted Execution Environment for TEE Client library
352Release Location: https://source.codeaurora.org/external/imx/imx-optee-client -b rel_imx_5.4.70_2.3.2 326Release Location: https://source.codeaurora.org/external/imx/imx-optee-client -b lf-5.10.35-2.0.0
353Origin: NXP (BSD-2-Clause) 327Origin: NXP (BSD-2-Clause)
354 optee_client (BSD-2-Clause) - https://github.com/OP-TEE/optee_client 328 optee_client (BSD-2-Clause) - https://github.com/OP-TEE/optee_client
355 329
356-------------------------------------------- 330--------------------------------------------
357 331
358Package: imx-optee-os.git 332Package: imx-optee-os.git
333Version: 3.13.0.imx
359Outgoing License: BSD-2-Clause 334Outgoing License: BSD-2-Clause
360License File: LICENSE 335License File: LICENSE
361Package Category: BSP 336Package Category: BSP
362Type of Content: source 337Type of Content: source
363Description and comments: Open Portable Trusted Execution Environment for Linux on ARM 338Description and comments: Open Portable Trusted Execution Environment for Linux on ARM
364Release Location: https://source.codeaurora.org/external/imx/imx-optee-os -b rel_imx_5.4.70_2.3.2 339Release Location: https://source.codeaurora.org/external/imx/imx-optee-os -b lf-5.10.35-2.0.0
365Origin: NXP (BSD-2-Clause) 340Origin: NXP (BSD-2-Clause)
366 OP-TEE Trusted OS (BSD-2-Clause) - https://github.com/OP-TEE/optee_os 341 OP-TEE Trusted OS (BSD-2-Clause) - https://github.com/OP-TEE/optee_os
367 Mbed TLS (Apache-2.0) - https://github.com/ARMmbed/mbedtls/ 342 Mbed TLS (Apache-2.0) - https://github.com/ARMmbed/mbedtls/
@@ -369,51 +344,46 @@ Origin: NXP (BSD-2-Clause)
369-------------------------------------------- 344--------------------------------------------
370 345
371Package: imx-optee-test.git 346Package: imx-optee-test.git
347Version: 3.13.0.imx
372Outgoing License: BSD-2-Clause (ta/) and GPL-2.0 (host/) 348Outgoing License: BSD-2-Clause (ta/) and GPL-2.0 (host/)
373License File: LICENSE.md 349License File: LICENSE.md
374Package Category: BSP 350Package Category: BSP
375Type of Content: source 351Type of Content: source
376Description and comments: Open Portable Trusted Execution Environment sanity tests 352Description and comments: Open Portable Trusted Execution Environment sanity tests
377Release Location: https://source.codeaurora.org/external/imx/imx-optee-test -b rel_imx_5.4.70_2.3.2 353Release Location: https://source.codeaurora.org/external/imx/imx-optee-test -b lf-5.10.35-2.0.0
378Origin: NXP (BSD-2-Clause) 354Origin: NXP (BSD-2-Clause)
379 optee_test (BSD-2-Clause) - https://github.com/OP-TEE/optee_test 355 optee_test (BSD-2-Clause) - https://github.com/OP-TEE/optee_test
380 356
381-------------------------------------------- 357--------------------------------------------
382 358
383Package: imx-jailhouse.git 359Package: imx-jailhouse.git
360Version: 0.12
384Outgoing License: GPL-2.0 361Outgoing License: GPL-2.0
385License File: COPYING 362License File: COPYING
386Package Category: BSP 363Package Category: BSP
387Type of Content: source 364Type of Content: source
388Description and comments: A partitioning Hypervisor based on Linux 365Description and comments: A partitioning Hypervisor based on Linux
389Release Location: https://source.codeaurora.org/external/imx/imx-jailhouse -b rel_imx_5.4.70_2.3.2 366Release Location: https://source.codeaurora.org/external/imx/imx-jailhouse -b lf-5.10.35-2.0.0
390Origin: NXP (GPL-2.0) 367Origin: NXP (GPL-2.0)
391 Siemens AG (GPL-2.0) - https://github.com/siemens/jailhouse 368 Siemens AG (GPL-2.0) - https://github.com/siemens/jailhouse
392 369
393-------------------------------------------- 370--------------------------------------------
394 371
395Package: imx-xen.git 372Package: imx-xen.git
373Version: 4.13.0
396Outgoing License: GPL-2.0 374Outgoing License: GPL-2.0
397License File: COPYING 375License File: COPYING
398Package Category: BSP 376Package Category: BSP
399Type of Content: source 377Type of Content: source
400Description and comments: A Virtual Machine Monitor 378Description and comments: A Virtual Machine Monitor
401Release Location: https://source.codeaurora.org/external/imx/imx-xen -b rel_imx_5.4.70_2.3.2 379Release Location: https://source.codeaurora.org/external/imx/imx-xen -b lf-5.10.35-2.0.0
402Origin: NXP (GPL-2.0) 380Origin: NXP (GPL-2.0)
403 381
404-------------------------------------------- 382--------------------------------------------
405 383
406Package: deepview-rt-2.4.18-aarch64.bin 384Package: ml-security-1.0.4.bin
407Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - No distribution license granted - Section 2.2 applies 385Version: 1.0.4
408License File: COPYING 386Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
409Package Category: BSP
410Type of Content: binary
411Description and comments: Machine Learning Au-Zone DeepViewRT and ModelRunner for i.MX8 Application Processors
412Release Location: Mirror
413--------------------------------------------
414
415Package: ml-security-1.0.3.bin
416Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Additional distribution license granted - Section 2.3 applies
417License File: COPYING 387License File: COPYING
418Package Category: BSP 388Package Category: BSP
419Type of Content: binary 389Type of Content: binary
@@ -424,41 +394,116 @@ Origin: NXP (NXP Proprietary)
424-------------------------------------------- 394--------------------------------------------
425 395
426Package: imx-smw.git 396Package: imx-smw.git
397Version: 0.1
427Outgoing License: BSD-3-Clause 398Outgoing License: BSD-3-Clause
428License File: COPYING 399License File: COPYING
429Package Category: BSP 400Package Category: BSP
430Type of Content: source 401Type of Content: source
431Description and comments: NXP i.MX Security Middleware Library 402Description and comments: NXP i.MX Security Middleware Library
432Release Location: https://source.codeaurora.org/external/imx/imx-smw -b rel_imx_5.4.70_2.3.2 403Release Location: https://source.codeaurora.org/external/imx/imx-smw -b lf-5.10.35-2.0.0
433Origin: NXP (BSD-3-Clause) 404Origin: NXP (BSD-3-Clause)
434 405
435-------------------------------------------- 406--------------------------------------------
436 407
437Package: keyctl-caam.git 408Package: keyctl_caam.git
409Version:
438Outgoing License: BSD-3-Clause 410Outgoing License: BSD-3-Clause
439License File: COPYING 411License File: COPYING
440Package Category: BSP 412Package Category: BSP
441Type of Content: source 413Type of Content: source
442Description and comments: NXP i.MX keyctl tool to manage CAAM Keys 414Description and comments: NXP i.MX keyctl tool to manage CAAM Keys
443Release Location: https://source.codeaurora.org/external/imx/key_caam -b rel_imx_5.4.70_2.3.2 415Release Location: https://source.codeaurora.org/external/imx/keyctl_caam -b lf-5.10.35-2.0.0
416--------------------------------------------
417
418Package: ecdsa-lib-imx-3.3.1.bin
419Version: 3.3.1
420Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
421License File: COPYING
422Package Category: BSP
423Type of Content: binary
424Description and comments: 2X signature verification library
425Release Location: Mirror
426--------------------------------------------
427
428Package: v2xsehsm.git
429Version: 0.5
430Outgoing License: BSD-3-Clause
431License File: BSD-3-Clause.txt
432Package Category: BSP
433Type of Content: source
434Description and comments: V2X Secure Element library
435Release Location: https://source.codeaurora.org/external/imx/v2xsehsm -b lf-5.10.35-2.0.0
436Origin: NXP (BSD-3-Clause)
437
438--------------------------------------------
439
440Package: vtest.git
441Version:
442Outgoing License: BSD-3-Clause
443License File: BSD-3-Clause.txt
444Package Category: BSP
445Type of Content: source
446Description and comments: V2X Test Suite
447Release Location: https://source.codeaurora.org/external/imx/vtest -b lf-5.10.35-2.0.0
448Origin: NXP (BSD-3-Clause)
449
444-------------------------------------------- 450--------------------------------------------
445Graphics Packages 451Graphics Packages
446-------------------------------------------- 452--------------------------------------------
447 453
454Package: isp-vvcam.git
455Version: 4.2.2.13.0
456Outgoing License: GPL-2.0
457License File: vvcam/LICENSE
458Package Category: Graphics
459Type of Content: ISP Kernel Module source
460Description and comments: Kernel Loadable Module for ISP
461Release Location: https://source.codeaurora.org/external/imx/isp-vvcam -b lf-5.10.35-2.0.0
462Origin: VeriSilicon Holdings Co., Ltd. (GPL-2.0)
463
464--------------------------------------------
465
466Package: isp-imx-4.2.2.13.0.bin
467Version: 4.2.2.13.0
468Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
469License File: COPYING
470Package Category: Graphics
471Type of Content: binary and source
472Description and comments: i.MX software ISP
473Release Location: Mirror
474Origin: VeriSilicon Holdings Co., Ltd. (proprietary)
475
476--------------------------------------------
477
478Package: basler-camera-4.2.2.13.0.bin
479Version: 4.2.2.13.0
480Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
481License File: COPYING
482Package Category: Graphics
483Type of Content: binary
484Description and comments: Basler camera binary drivers
485Release Location: Mirror
486Origin: Basler AG (proprietary)
487 VeriSilicon Holdings Co., Ltd. (proprietary)
488
489--------------------------------------------
490
448Package: apitrace-imx.git 491Package: apitrace-imx.git
492Version: 9.0.0
449Outgoing License: MIT 493Outgoing License: MIT
450License File: LICENSE 494License File: LICENSE
451Package Category: Graphics 495Package Category: Graphics
452Type of Content: source 496Type of Content: source
453Description and comments: GPU Core IP and test application source 497Description and comments: GPU Core IP and test application source
454Release Location: https://source.codeaurora.org/external/imx/apitrace-imx -b rel_imx_5.4.70_2.3.2 498Release Location: https://source.codeaurora.org/external/imx/apitrace-imx -b lf-5.10.35-2.0.0
455Origin: NXP (MIT) 499Origin: NXP (MIT)
456 apitrace (MIT) - https://github.com/apitrace/apitrace 500 apitrace (MIT) - https://github.com/apitrace/apitrace
457 501
458-------------------------------------------- 502--------------------------------------------
459 503
460Package: imx-gpu-viv-6.4.3.p1.4-aarch32.bin 504Package: imx-gpu-viv-6.4.3.p2.0-aarch32.bin
461Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Additional distribution license granted - Section 2.3 applies 505Version: 6.4.3.p2.0
506Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
462License File: COPYING 507License File: COPYING
463Package Category: Graphics 508Package Category: Graphics
464Type of Content: binary and source 509Type of Content: binary and source
@@ -475,8 +520,9 @@ Origin: NXP (proprietary)
475 520
476-------------------------------------------- 521--------------------------------------------
477 522
478Package: imx-gpu-viv-6.4.3.p1.4-aarch64.bin 523Package: imx-gpu-viv-6.4.3.p2.0-aarch64.bin
479Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Additional distribution license granted - Section 2.3 applies 524Version: 6.4.3.p2.0
525Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
480License File: COPYING 526License File: COPYING
481Package Category: Graphics 527Package Category: Graphics
482Type of Content: binary and source 528Type of Content: binary and source
@@ -494,12 +540,13 @@ Origin: NXP (proprietary)
494-------------------------------------------- 540--------------------------------------------
495 541
496Package: xf86-video-imx-vivante.git 542Package: xf86-video-imx-vivante.git
543Version: 6.4.0.p0.0
497Outgoing License: MIT 544Outgoing License: MIT
498License File: COPYING-MIT 545License File: COPYING-MIT
499Package Category: Graphics 546Package Category: Graphics
500Type of Content: source 547Type of Content: source
501Description and comments: Xserver Library extensions 548Description and comments: Xserver Library extensions
502Release Location: https://source.codeaurora.org/external/imx/xf86-video-imx-vivante -b rel_imx_5.4.70_2.3.2 549Release Location: https://source.codeaurora.org/external/imx/xf86-video-imx-vivante -b lf-5.10.35-2.0.0
503Origin: NXP (MIT) 550Origin: NXP (MIT)
504 Vivante Corp. (MIT) 551 Vivante Corp. (MIT)
505 xorg-server (MIT) - http://xorg.freedesktop.org/ 552 xorg-server (MIT) - http://xorg.freedesktop.org/
@@ -512,12 +559,13 @@ Origin: NXP (MIT)
512-------------------------------------------- 559--------------------------------------------
513 560
514Package: gtec-demo-framework.git 561Package: gtec-demo-framework.git
562Version: 5.7.1
515Outgoing License: BSD-3-Clause 563Outgoing License: BSD-3-Clause
516License File: License.md 564License File: License.md
517Package Category: Graphics 565Package Category: Graphics
518Type of Content: source 566Type of Content: source
519Description and comments: Graphics sample applications 567Description and comments: Graphics sample applications
520Release Location: https://github.com/NXPmicro/gtec-demo-framework -b 5.6.2 568Release Location: https://github.com/NXPmicro/gtec-demo-framework -b 5.7.1
521Origin: NXP (BSD-3-clause) 569Origin: NXP (BSD-3-clause)
522 Demo Framework 570 Demo Framework
523 The Android Open Source Project (Apache-2.0) - https://source.android.com/ 571 The Android Open Source Project (Apache-2.0) - https://source.android.com/
@@ -547,8 +595,9 @@ Origin: NXP (BSD-3-clause)
547 595
548-------------------------------------------- 596--------------------------------------------
549 597
550Package: imx-dpu-g2d-1.8.14.bin 598Package: imx-dpu-g2d-1.9.2.bin
551Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Additional distribution license granted - Section 2.3 applies 599Version: 1.9.2
600Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
552License File: COPYING 601License File: COPYING
553Package Category: Graphics 602Package Category: Graphics
554Type of Content: binary 603Type of Content: binary
@@ -559,53 +608,58 @@ Origin: NXP (proprietary)
559-------------------------------------------- 608--------------------------------------------
560 609
561Package: libdrm-imx.git 610Package: libdrm-imx.git
611Version: 2.4.102.imx
562Outgoing License: MIT 612Outgoing License: MIT
563License File: COPYING 613License File: COPYING
564Package Category: Graphics 614Package Category: Graphics
565Type of Content: source 615Type of Content: source
566Description and comments: i.MX DRM Direct Rendering Manager 616Description and comments: i.MX DRM Direct Rendering Manager
567Release Location: https://source.codeaurora.org/external/imx/libdrm-imx -b rel_imx_5.4.70_2.3.2 617Release Location: https://source.codeaurora.org/external/imx/libdrm-imx -b lf-5.10.35-2.0.0
568Origin: NXP (MIT) 618Origin: NXP (MIT)
569 619
570-------------------------------------------- 620--------------------------------------------
571 621
572Package: wayland-protocols-imx.git 622Package: wayland-protocols-imx.git
623Version: 1.20.imx
573Outgoing License: MIT 624Outgoing License: MIT
574License File: COPYING 625License File: COPYING
575Package Category: Graphics 626Package Category: Graphics
576Type of Content: source 627Type of Content: source
577Description and comments: Wayland protocol development 628Description and comments: Wayland protocol development
578Release Location: https://source.codeaurora.org/external/imx/wayland-protocols-imx -b rel_imx_5.4.70_2.3.2 629Release Location: https://source.codeaurora.org/external/imx/wayland-protocols-imx -b lf-5.10.35-2.0.0
579Origin: NXP (MIT) 630Origin: NXP (MIT)
580 Weston (MIT) - https://anongit.freedesktop.org/git/wayland/wayland-protocols.git 631 Weston (MIT) - https://anongit.freedesktop.org/git/wayland/wayland-protocols.git
581 632
582-------------------------------------------- 633--------------------------------------------
583 634
584Package: weston-imx.git 635Package: weston-imx.git
636Version: 9.0.0.imx
585Outgoing License: MIT 637Outgoing License: MIT
586License File: COPYING 638License File: COPYING
587Package Category: Graphics 639Package Category: Graphics
588Type of Content: source 640Type of Content: source
589Description and comments: A reference implementation of a Wayland compositor 641Description and comments: A reference implementation of a Wayland compositor
590Release Location: https://source.codeaurora.org/external/imx/weston-imx -b rel_imx_5.4.70_2.3.2 642Release Location: https://source.codeaurora.org/external/imx/weston-imx -b lf-5.10.35-2.0.0
591Origin: NXP (MIT) 643Origin: NXP (MIT)
592 Weston (MIT) - http://github.com/wayland-project/weston/ 644 Weston (MIT) - http://github.com/wayland-project/weston/
593 645
594-------------------------------------------- 646--------------------------------------------
595 647
596Package: imx-gputop.git 648Package: imx-gputop.git
649Version: 6.4.3.p2.0
597Outgoing License: MIT 650Outgoing License: MIT
598License File: LICENSE.txt 651License File: LICENSE.txt
599Package Category: Graphics 652Package Category: Graphics
600Type of Content: source 653Type of Content: source
601Description and comments: Sample program to monitor i.MX GPU performance data 654Description and comments: Sample program to monitor i.MX GPU performance data
602Release Location: https://source.codeaurora.org/external/imx/imx-gputop -b rel_imx_5.4.70_2.3.2 655Release Location: https://source.codeaurora.org/external/imx/imx-gputop -b lf-5.10.35-2.0.0
603Origin: NXP (MIT) 656Origin: NXP (MIT)
604 657
605-------------------------------------------- 658--------------------------------------------
606 659
607Package: imx-gpu-g2d-6.4.3.p1.4-arm.bin 660Package: imx-gpu-g2d-6.4.3.p2.0-arm.bin
608Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Additional distribution license granted - Section 2.3 applies 661Version: 6.4.3.p2.0
662Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
609License File: COPYING 663License File: COPYING
610Package Category: Graphics 664Package Category: Graphics
611Type of Content: binary 665Type of Content: binary
@@ -615,8 +669,9 @@ Origin: NXP (proprietary)
615 669
616-------------------------------------------- 670--------------------------------------------
617 671
618Package: imx-gpu-g2d-6.4.3.p1.4-aarch64.bin 672Package: imx-gpu-g2d-6.4.3.p2.0-aarch64.bin
619Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Additional distribution license granted - Section 2.3 applies 673Version: 6.4.3.p2.0
674Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
620License File: COPYING 675License File: COPYING
621Package Category: Graphics 676Package Category: Graphics
622Type of Content: binary 677Type of Content: binary
@@ -626,8 +681,9 @@ Origin: NXP (proprietary)
626 681
627-------------------------------------------- 682--------------------------------------------
628 683
629Package: libgpuperfcnt-6.4.3.p1.4-aarch64-fb.bin 684Package: libgpuperfcnt-6.4.3.p2.0-aarch64-fb.bin
630Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 685Version: 6.4.3.p2.0
686Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
631License File: COPYING 687License File: COPYING
632Package Category: Graphics 688Package Category: Graphics
633Type of Content: binary 689Type of Content: binary
@@ -637,8 +693,9 @@ Origin: NXP (proprietary)
637 693
638-------------------------------------------- 694--------------------------------------------
639 695
640Package: libgpuperfcnt-6.4.3.p1.4-aarch64-wayland.bin 696Package: libgpuperfcnt-6.4.3.p2.0-aarch64-wayland.bin
641Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 697Version: 6.4.3.p2.0
698Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
642License File: COPYING 699License File: COPYING
643Package Category: Graphics 700Package Category: Graphics
644Type of Content: binary 701Type of Content: binary
@@ -648,7 +705,8 @@ Origin: NXP (proprietary)
648 705
649-------------------------------------------- 706--------------------------------------------
650 707
651Package: libgpuperfcnt-6.4.3.p1.4-aarch64-x11.bin 708Package: libgpuperfcnt-6.4.3.p2.0-aarch64-x11.bin
709Version: 6.4.3.p2.0
652Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 710Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
653License File: COPYING 711License File: COPYING
654Package Category: Graphics 712Package Category: Graphics
@@ -659,8 +717,9 @@ Origin: NXP (proprietary)
659 717
660-------------------------------------------- 718--------------------------------------------
661 719
662Package: libgpuperfcnt-6.4.3.p1.4-arm-fb.bin 720Package: libgpuperfcnt-6.4.3.p2.0-arm-fb.bin
663Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 721Version: 6.4.3.p2.0
722Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
664License File: COPYING 723License File: COPYING
665Package Category: Graphics 724Package Category: Graphics
666Type of Content: binary 725Type of Content: binary
@@ -670,8 +729,9 @@ Origin: NXP (proprietary)
670 729
671-------------------------------------------- 730--------------------------------------------
672 731
673Package: libgpuperfcnt-6.4.3.p1.4-arm-wayland.bin 732Package: libgpuperfcnt-6.4.3.p2.0-arm-wayland.bin
674Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 733Version: 6.4.3.p2.0
734Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
675License File: COPYING 735License File: COPYING
676Package Category: Graphics 736Package Category: Graphics
677Type of Content: binary 737Type of Content: binary
@@ -681,7 +741,8 @@ Origin: NXP (proprietary)
681 741
682-------------------------------------------- 742--------------------------------------------
683 743
684Package: libgpuperfcnt-6.4.3.p1.4-arm-x11.bin 744Package: libgpuperfcnt-6.4.3.p2.0-arm-x11.bin
745Version: 6.4.3.p2.0
685Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies 746Outgoing License: LA_OPT_NXP_Software_License v22 April 2021 - Additional distribution license granted - Section 2.3 applies
686License File: COPYING 747License File: COPYING
687Package Category: Graphics 748Package Category: Graphics
@@ -693,12 +754,13 @@ Origin: NXP (proprietary)
693-------------------------------------------- 754--------------------------------------------
694 755
695Package: nn-imx.git 756Package: nn-imx.git
757Version: 1.2.0
696Outgoing License: MIT 758Outgoing License: MIT
697License File: LICENSE 759License File: LICENSE
698Package Category: Graphics 760Package Category: Graphics
699Type of Content: source 761Type of Content: source
700Description and comments: i.MX Neural Networks Accelerator Plugin 762Description and comments: i.MX Neural Networks Accelerator Plugin
701Release Location: https://source.codeaurora.org/external/imx/nn-imx -b rel_imx_5.4.70_2.3.2 763Release Location: https://source.codeaurora.org/external/imx/nn-imx -b lf-5.10.35-2.0.0
702Origin: NXP (MIT) 764Origin: NXP (MIT)
703 Vivante Corporation (MIT) 765 Vivante Corporation (MIT)
704 Boost Software (Boost) - https://www.boost.org/ 766 Boost Software (Boost) - https://www.boost.org/
@@ -710,12 +772,13 @@ Origin: NXP (MIT)
710-------------------------------------------- 772--------------------------------------------
711 773
712Package: opencv-imx.git 774Package: opencv-imx.git
713Outgoing License: BSD-3-Clause 775Version: 4.5.2.imx
776Outgoing License: Apache-2.0
714License File: LICENSE 777License File: LICENSE
715Package Category: Graphics 778Package Category: Graphics
716Type of Content: source 779Type of Content: source
717Description and comments: i.MX OpenCV 780Description and comments: i.MX OpenCV
718Release Location: https://source.codeaurora.org/external/imx/opencv-imx -b rel_imx_5.4.70_2.3.2 781Release Location: https://source.codeaurora.org/external/imx/opencv-imx -b lf-5.10.35-2.0.0
719Origin: NXP (BSD-3-Cluse) 782Origin: NXP (BSD-3-Cluse)
720 OpenCV Foundation (BSD-3-Clause) - https://github.com/opencv/opencv 783 OpenCV Foundation (BSD-3-Clause) - https://github.com/opencv/opencv
721 Intel Corporation (BSD-3-Clause) 784 Intel Corporation (BSD-3-Clause)
@@ -727,12 +790,13 @@ Origin: NXP (BSD-3-Cluse)
727-------------------------------------------- 790--------------------------------------------
728 791
729Package: arm-computelibrary-imx.git 792Package: arm-computelibrary-imx.git
793Version: 21.02
730Outgoing License: MIT 794Outgoing License: MIT
731License File: LICENSE 795License File: LICENSE
732Package Category: Graphics 796Package Category: Graphics
733Type of Content: source 797Type of Content: source
734Description and comments: ARM Compute Library fork 798Description and comments: ARM Compute Library fork
735Release Location: https://source.codeaurora.org/external/imx/ARM-ComputeLibrary-imx -b rel_imx_5.4.70_2.3.2 799Release Location: https://source.codeaurora.org/external/imx/ARM-ComputeLibrary-imx -b lf-5.10.35-2.0.0
736Origin: NXP (MIT) 800Origin: NXP (MIT)
737 ARM Software (MIT) - https://github.com/ARM-software/ComputeLibrary 801 ARM Software (MIT) - https://github.com/ARM-software/ComputeLibrary
738 802
@@ -740,8 +804,9 @@ Origin: NXP (MIT)
740Multimedia Packages 804Multimedia Packages
741-------------------------------------------- 805--------------------------------------------
742 806
743Package: imx-codec-4.5.7.bin 807Package: imx-codec-4.6.1.bin
744Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Additional distribution license granted - Section 2.3 applies 808Version: 4.6.1
809Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
745License File: COPYING 810License File: COPYING
746Package Category: Multimedia 811Package Category: Multimedia
747Type of Content: binary 812Type of Content: binary
@@ -756,8 +821,9 @@ Origin: NXP (proprietary)
756 821
757-------------------------------------------- 822--------------------------------------------
758 823
759Package: imx-parser-4.5.7.bin 824Package: imx-parser-4.6.1.bin
760Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Additional distribution license granted - Section 2.3 applies 825Version: 4.6.1
826Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
761License File: COPYING 827License File: COPYING
762Package Category: Multimedia 828Package Category: Multimedia
763Type of Content: binary 829Type of Content: binary
@@ -768,12 +834,13 @@ Origin: NXP (proprietary)
768-------------------------------------------- 834--------------------------------------------
769 835
770Package: imx-gst1.0-plugin.git 836Package: imx-gst1.0-plugin.git
837Version: 4.6.1
771Outgoing License: LGPL-2.1 838Outgoing License: LGPL-2.1
772License File: COPYING-LGPL-2.1 839License File: COPYING-LGPL-2.1
773Package Category: Multimedia 840Package Category: Multimedia
774Type of Content: source 841Type of Content: source
775Description and comments: i.MX Gstreamer 1.0 plugins 842Description and comments: i.MX Gstreamer 1.0 plugins
776Release Location: https://source.codeaurora.org/external/imx/imx-gst1.0-plugin -b rel_imx_5.4.70_2.3.2 843Release Location: https://source.codeaurora.org/external/imx/imx-gst1.0-plugin -b lf-5.10.35-2.0.0
777Origin: NXP (LGPL-2.1) 844Origin: NXP (LGPL-2.1)
778 Gstreamer plugins-Base (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-base/ 845 Gstreamer plugins-Base (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-base/
779 Gstreamer plugins-Good (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-good/ 846 Gstreamer plugins-Good (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-good/
@@ -782,55 +849,60 @@ Origin: NXP (LGPL-2.1)
782-------------------------------------------- 849--------------------------------------------
783 850
784Package: gstreamer.git 851Package: gstreamer.git
852Version: 1.18.0.imx
785Outgoing License: LGPL-2.0 853Outgoing License: LGPL-2.0
786License File: COPYING 854License File: COPYING
787Package Category: Multimedia 855Package Category: Multimedia
788Type of Content: source 856Type of Content: source
789Description and comments: Open Source Multimedia Farmework 857Description and comments: Open Source Multimedia Farmework
790Release Location: https://source.codeaurora.org/external/imx/gstreamer -b rel_imx_5.4.70_2.3.2 858Release Location: https://source.codeaurora.org/external/imx/gstreamer -b lf-5.10.35-2.0.0
791Origin: NXP (LGPL-2.1) 859Origin: NXP (LGPL-2.1)
792 GStreamer (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gstreamer/ 860 GStreamer (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gstreamer/
793 861
794-------------------------------------------- 862--------------------------------------------
795 863
796Package: gst-plugins-good.git 864Package: gst-plugins-good.git
865Version: 1.18.0.imx
797Outgoing License: LGPL-2.1 866Outgoing License: LGPL-2.1
798License File: COPYING 867License File: COPYING
799Package Category: Multimedia 868Package Category: Multimedia
800Type of Content: source 869Type of Content: source
801Description and comments: Gstreamer plugins with good quality code and correct functionality 870Description and comments: Gstreamer plugins with good quality code and correct functionality
802Release Location: https://source.codeaurora.org/external/imx/gst-plugins-good -b rel_imx_5.4.70_2.3.2 871Release Location: https://source.codeaurora.org/external/imx/gst-plugins-good -b lf-5.10.35-2.0.0
803Origin: NXP (LGPL-2.1) 872Origin: NXP (LGPL-2.1)
804 Gstreamer plugins-Good (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-good/ 873 Gstreamer plugins-Good (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-good/
805 874
806-------------------------------------------- 875--------------------------------------------
807 876
808Package: gst-plugins-base.git 877Package: gst-plugins-base.git
878Version: 1.18.0.imx
809Outgoing License: LGPL-2.0 879Outgoing License: LGPL-2.0
810License File: COPYING 880License File: COPYING
811Package Category: Multimedia 881Package Category: Multimedia
812Type of Content: source 882Type of Content: source
813Description and comments: Collection of well-groomed and well-maintained Gstreamer plugins 883Description and comments: Collection of well-groomed and well-maintained Gstreamer plugins
814Release Location: https://source.codeaurora.org/external/imx/gst-plugins-base -b rel_imx_5.4.70_2.3.2 884Release Location: https://source.codeaurora.org/external/imx/gst-plugins-base -b lf-5.10.35-2.0.0
815Origin: NXP (LGPL-2.1) 885Origin: NXP (LGPL-2.1)
816 Gstreamer plugins-Base (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-base/ 886 Gstreamer plugins-Base (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-base/
817 887
818-------------------------------------------- 888--------------------------------------------
819 889
820Package: gst-plugins-bad.git 890Package: gst-plugins-bad.git
891Version: 1.18.0.imx
821Outgoing License: LGPL-2.0 892Outgoing License: LGPL-2.0
822License File: COPYING.LIB 893License File: COPYING.LIB
823Package Category: Multimedia 894Package Category: Multimedia
824Type of Content: source 895Type of Content: source
825Description and comments: Gstreamer plug-ins that aren't up to par compared to the rest. Close to good quality but missing something. 896Description and comments: Gstreamer plug-ins that aren't up to par compared to the rest. Close to good quality but missing something.
826Release Location: https://source.codeaurora.org/external/imx/gst-plugins-bad -b rel_imx_5.4.70_2.3.2 897Release Location: https://source.codeaurora.org/external/imx/gst-plugins-bad -b lf-5.10.35-2.0.0
827Origin: NXP (LGPL-2.1) 898Origin: NXP (LGPL-2.1)
828 Gstreamer plugins-Bad (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-bad/ 899 Gstreamer plugins-Bad (LGPL-2.1+) - http://gstreamer.freedesktop.org/src/gst-plugins-bad/
829 900
830-------------------------------------------- 901--------------------------------------------
831 902
832Package: imx-dspc-asrc-1.0.1.bin 903Package: imx-dspc-asrc-1.0.1.bin
833Outgoing License: LA_OPT_NXP_Software_License v8 June 2019 - Production Use - Section 2.3 applies 904Version: 1.0.1
905Outgoing License: LA_OPT_NXP_Software_License v8 June 2019 - Additional distribution license granted - Section 2.3 applies
834License File: COPYING 906License File: COPYING
835Package Category: Multimedia 907Package Category: Multimedia
836Type of Content: binary 908Type of Content: binary
@@ -842,7 +914,8 @@ Origin: NXP (proprietary)
842-------------------------------------------- 914--------------------------------------------
843 915
844Package: imx-sw-pdm-1.0.1.bin 916Package: imx-sw-pdm-1.0.1.bin
845Outgoing License: LA_OPT_NXP_Software_License v15 August 2020 - Production Use - Section 2.3 applies 917Version: 1.0.1
918Outgoing License: LA_OPT_NXP_Software_License v15 August 2020 - Additional distribution license granted - Section 2.3 applies
846License File: COPYING 919License File: COPYING
847Package Category: Multimedia 920Package Category: Multimedia
848Type of Content: binary 921Type of Content: binary
@@ -853,19 +926,21 @@ Origin: NXP (proprietary)
853-------------------------------------------- 926--------------------------------------------
854 927
855Package: imx-vpuwrap.git 928Package: imx-vpuwrap.git
856Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Production Use - Section 2.3 applies 929Version: 4.6.1
930Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
857License File: COPYING 931License File: COPYING
858Package Category: Multimedia 932Package Category: Multimedia
859Type of Content: source 933Type of Content: source
860Description and comments: i.MX VPU wrapper library 934Description and comments: i.MX VPU wrapper library
861Release Location: https://github.com/NXP/imx-vpuwrap.git -b rel_imx_5.4.70_2.3.2 935Release Location: https://github.com/NXP/imx-vpuwrap.git -b lf-5.10.35-2.0.0
862Origin: NXP (proprietary) 936Origin: NXP (proprietary)
863 sqlite (Public Domain) - http://www.hwaci.com/sw/sqlite/index.html 937 sqlite (Public Domain) - http://www.hwaci.com/sw/sqlite/index.html
864 938
865-------------------------------------------- 939--------------------------------------------
866 940
867Package: imx-vpu-5.4.39.3.bin 941Package: imx-vpu-5.4.39.3.bin
868Outgoing License: LA_OPT_NXP_Software_License v11 February 2020 - Production Use - Section 2.3 applies 942Version: 5.4.39.3
943Outgoing License: LA_OPT_NXP_Software_License v11 February 2020 - Additional distribution license granted - Section 2.3 applies
869License File: COPYING 944License File: COPYING
870Package Category: Multimedia 945Package Category: Multimedia
871Type of Content: binary 946Type of Content: binary
@@ -876,8 +951,9 @@ Origin: NXP (proprietary)
876 951
877-------------------------------------------- 952--------------------------------------------
878 953
879Package: imx-vpu-hantro-1.20.0.bin 954Package: imx-vpu-hantro-1.22.0.bin
880Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Additional distribution license granted - Section 2.3 applies 955Version: 1.22.0
956Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
881License File: COPYING 957License File: COPYING
882Package Category: Multimedia 958Package Category: Multimedia
883Type of Content: binary 959Type of Content: binary
@@ -890,8 +966,22 @@ Origin: VeriSilicon Inc. (proprietary)
890 966
891-------------------------------------------- 967--------------------------------------------
892 968
893Package: imx-vpu-hantro-vc-1.3.0.bin 969Package: imx-vpu-hantro-daemon-1.0.0
894Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Additional distribution license granted - Section 2.3 applies 970Version: 1.0.0
971Outgoing License: MIT License
972License File: LICENSE.txt
973Package Category: Multimedia
974Type of Content: binary
975Description and comments: VPU library
976Release Location: Mirror
977Origin: NXP (MIT)
978 VeriSilicon Inc. (MIT)
979 Intel Corporation - intel-vaapi-driver (MIT) - https://github.com/intel/intel-vaapi-driver
980--------------------------------------------
981
982Package: imx-vpu-hantro-vc-1.4.0.bin
983Version: 1.4.0
984Outgoing License: LA_OPT_NXP_Software_License v24 June 2021 - Additional distribution license granted - Section 2.3 applies
895License File: COPYING 985License File: COPYING
896Package Category: Multimedia 986Package Category: Multimedia
897Type of Content: binary 987Type of Content: binary
@@ -904,6 +994,7 @@ Origin: VeriSilicon Inc. (proprietary)
904-------------------------------------------- 994--------------------------------------------
905 995
906Package: imx-qtapplications-1.2.2-aarch32.bin 996Package: imx-qtapplications-1.2.2-aarch32.bin
997Version: 1.2.2
907Outgoing License: LA_OPT_BASE_LICENSE v26 June 2018 998Outgoing License: LA_OPT_BASE_LICENSE v26 June 2018
908License File: COPYING 999License File: COPYING
909Package Category: Multimedia 1000Package Category: Multimedia
@@ -915,6 +1006,7 @@ Origin: NXP (proprietary)
915-------------------------------------------- 1006--------------------------------------------
916 1007
917Package: imx-qtapplications-1.2.2-aarch64.bin 1008Package: imx-qtapplications-1.2.2-aarch64.bin
1009Version: 1.2.2
918Outgoing License: LA_OPT_BASE_LICENSE v26 June 2018 1010Outgoing License: LA_OPT_BASE_LICENSE v26 June 2018
919License File: COPYING 1011License File: COPYING
920Package Category: Multimedia 1012Package Category: Multimedia
@@ -926,6 +1018,7 @@ Origin: NXP (proprietary)
926-------------------------------------------- 1018--------------------------------------------
927 1019
928Package: imx-alsa-plugins.git 1020Package: imx-alsa-plugins.git
1021Version:
929Outgoing License: GPL-2.0 1022Outgoing License: GPL-2.0
930License File: COPYING.GPL 1023License File: COPYING.GPL
931Package Category: Multimedia 1024Package Category: Multimedia
@@ -941,7 +1034,8 @@ M4 Processor Packages
941-------------------------------------------- 1034--------------------------------------------
942 1035
943Package: imx7ulp-m4-demo-2.8.0.1.bin 1036Package: imx7ulp-m4-demo-2.8.0.1.bin
944Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Production Use - Section 2.3 applies 1037Version: 2.8.0.1
1038Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Additional distribution license granted - Section 2.3 applies
945License File: COPYING 1039License File: COPYING
946Package Category: M4_Processor 1040Package Category: M4_Processor
947Type of Content: binary 1041Type of Content: binary
@@ -954,6 +1048,7 @@ Origin: NXP (proprietary)
954-------------------------------------------- 1048--------------------------------------------
955 1049
956Package: imx8dxl-m4-demo-2.9.0.bin 1050Package: imx8dxl-m4-demo-2.9.0.bin
1051Version: 2.9.0
957Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Production Use - Section 2.3 applies 1052Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Production Use - Section 2.3 applies
958License File: COPYING 1053License File: COPYING
959Package Category: M4_Processor 1054Package Category: M4_Processor
@@ -966,8 +1061,9 @@ Origin: NXP (proprietary)
966 1061
967-------------------------------------------- 1062--------------------------------------------
968 1063
969Package: imx8mm-m4-demo-2.8.0.1.bin 1064Package: imx8mm-m4-demo-2.9.1.bin
970Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Production Use - Section 2.3 applies 1065Version: 2.9.1
1066Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Production Use - Section 2.3 applies
971License File: COPYING 1067License File: COPYING
972Package Category: M4_Processor 1068Package Category: M4_Processor
973Type of Content: binary 1069Type of Content: binary
@@ -979,8 +1075,9 @@ Origin: NXP (proprietary)
979 1075
980-------------------------------------------- 1076--------------------------------------------
981 1077
982Package: imx8mq-m4-demo-2.8.0.1.bin 1078Package: imx8mq-m4-demo-2.9.0.bin
983Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Production Use - Section 2.3 applies 1079Version: 2.9.0
1080Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Production Use - Section 2.3 applies
984License File: COPYING 1081License File: COPYING
985Package Category: M4_Processor 1082Package Category: M4_Processor
986Type of Content: binary 1083Type of Content: binary
@@ -992,8 +1089,9 @@ Origin: NXP (proprietary)
992 1089
993-------------------------------------------- 1090--------------------------------------------
994 1091
995Package: imx8qm-m4-demo-2.8.0.1.bin 1092Package: imx8qm-m4-demo-2.9.0.bin
996Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Production Use - Section 2.3 applies 1093Version: 2.9.0
1094Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Production Use - Section 2.3 applies
997License File: COPYING 1095License File: COPYING
998Package Category: M4_Processor 1096Package Category: M4_Processor
999Type of Content: binary 1097Type of Content: binary
@@ -1005,8 +1103,9 @@ Origin: NXP (proprietary)
1005 1103
1006-------------------------------------------- 1104--------------------------------------------
1007 1105
1008Package: imx8qx-m4-demo-2.8.0.1.bin 1106Package: imx8qx-m4-demo-2.9.0.bin
1009Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Production Use - Section 2.3 applies 1107Version: 2.9.0
1108Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Production Use - Section 2.3 applies
1010License File: COPYING 1109License File: COPYING
1011Package Category: M4_Processor 1110Package Category: M4_Processor
1012Type of Content: binary 1111Type of Content: binary
@@ -1020,8 +1119,9 @@ Origin: NXP (proprietary)
1020M7 Processor Packages 1119M7 Processor Packages
1021-------------------------------------------- 1120--------------------------------------------
1022 1121
1023Package: imx8mn-m7-demo-2.8.0.1.bin 1122Package: imx8mn-m7-demo-2.9.0.bin
1024Outgoing License: LA_OPT_NXP_Software_License v13 June 2020 - Production Use - Section 2.3 applies 1123Version: 2.9.0
1124Outgoing License: LA_OPT_NXP_Software_License v19 February 2021 - Production Use - Section 2.3 applies
1025License File: COPYING 1125License File: COPYING
1026Package Category: M7_Processor 1126Package Category: M7_Processor
1027Type of Content: binary 1127Type of Content: binary
@@ -1033,7 +1133,18 @@ Origin: NXP (proprietary)
1033 1133
1034-------------------------------------------- 1134--------------------------------------------
1035 1135
1136Package: imx8mnddr3l-m7-demo-2.9.1.bin
1137Version: 2.9.1
1138Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Production Use - Section 2.3 applies
1139License File: COPYING
1140Package Category: M7_Processor
1141Type of Content: binary
1142Description and comments: i.MX MCUXpresso SDK demo image on Cortex-M7 core
1143Release Location: Mirror
1144--------------------------------------------
1145
1036Package: imx8mp-m7-demo-2.9.0.bin 1146Package: imx8mp-m7-demo-2.9.0.bin
1147Version: 2.9.0
1037Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Production Use - Section 2.3 applies 1148Outgoing License: LA_OPT_NXP_Software_License v17 October 2020 - Production Use - Section 2.3 applies
1038License File: COPYING 1149License File: COPYING
1039Package Category: M7_Processor 1150Package Category: M7_Processor
@@ -1050,24 +1161,86 @@ MachineLearning Packages
1050-------------------------------------------- 1161--------------------------------------------
1051 1162
1052Package: armnn.git 1163Package: armnn.git
1164Version: 21.02
1053Outgoing License: MIT 1165Outgoing License: MIT
1054License File: LICENSE 1166License File: LICENSE
1055Package Category: MachineLearning 1167Package Category: MachineLearning
1056Type of Content: source 1168Type of Content: source
1057Description and comments: ARM Neural Network SDK 1169Description and comments: ARM Neural Network SDK
1058Release Location: https://source.codeaurora.org/external/imx/armnn-imx -b rel_imx_5.4.70_2.3.2 1170Release Location: https://source.codeaurora.org/external/imx/armnn-imx -b lf-5.10.35-2.0.0
1059Origin: NXP (MIT) 1171Origin: NXP (MIT)
1060 armnn (MIT) - https://github.com/ARM-software/armnn 1172 armnn (MIT) - https://github.com/ARM-software/armnn
1061 1173
1062-------------------------------------------- 1174--------------------------------------------
1063 1175
1176Package: coral-posenet-imx.git
1177Version:
1178Outgoing License: Apache-2.0
1179License File: LICENSE
1180Package Category: MachineLearning
1181Type of Content: source
1182Description and comments: Google Coral Edge TPU Posenet Library
1183Release Location: https://source.codeaurora.org/external/imx/coral-posenet-imx -b lf-5.10.35-2.0.0
1184--------------------------------------------
1185
1186Package: deepview-rt-2.4.25-aarch64.bin
1187Version: 2.4.25-aarch64
1188Outgoing License: LA_OPT_NXP_Software_License v25 June 2021 - No distribution license granted - Section 2.2 applies
1189License File: COPYING
1190Package Category: MachineLearning
1191Type of Content: binary
1192Description and comments: Machine Learning Au-Zone DeepViewRT and ModelRunner for i.MX8 Application Processors
1193Release Location: Mirror
1194--------------------------------------------
1195
1196Package: deepview-rt-examples-1.0.bin
1197Version: 1.0
1198Outgoing License: LA_OPT_NXP_Software_License v25 June 2021 - Additional distribution license granted - Section 2.3 applies
1199License File: COPYING
1200Package Category: MachineLearning
1201Type of Content: binary
1202Description and comments: DeepViewRT Examples
1203Release Location: Mirror
1204--------------------------------------------
1205
1206Package: deepview-rt-extras-2.4.25.bin
1207Version: 2.4.25
1208Outgoing License: LA_OPT_NXP_Software_License v25 June 2021 - Additional distribution license granted - Section 2.3 applies
1209License File: COPYING
1210Package Category: MachineLearning
1211Type of Content: binary
1212Description and comments: DeepView API between NNTensor and XTensor
1213Release Location: Mirror
1214--------------------------------------------
1215
1216Package: eiq-apps-imx.git
1217Version:
1218Outgoing License: LGPL-2.1
1219License File: COPYING-LGPL2.1
1220Package Category: MachineLearning
1221Type of Content: source
1222Description and comments: Gstreamer Neural Network inference Demo
1223Release Location: https://source.codeaurora.org/external/imx/eiq-apps-imx -b lf-5.10.35-2.0.0
1224--------------------------------------------
1225
1226Package: eiq-tvm-imx.git
1227Version: 0.7.0
1228Outgoing License: Apache-2.0
1229License File: LICENSE
1230Package Category: MachineLearning
1231Type of Content: source
1232Description and comments: Open Deep Learning Compiler Stack
1233Release Location: https://source.codeaurora.org/external/imx/eiq-tvm-imx -b lf-5.10.35-2.0.0
1234--------------------------------------------
1235
1064Package: onnxruntime-imx.git 1236Package: onnxruntime-imx.git
1237Version: 1.5.3
1065Outgoing License: MIT 1238Outgoing License: MIT
1066License File: LICENSE 1239License File: LICENSE
1067Package Category: MachineLearning 1240Package Category: MachineLearning
1068Type of Content: source 1241Type of Content: source
1069Description and comments: Onnxruntime cross-platform scoring engine 1242Description and comments: Onnxruntime cross-platform scoring engine
1070Release Location: https://source.codeaurora.org/external/imx/onnxruntime-imx -b rel_imx_5.4.70_2.3.2 1243Release Location: https://source.codeaurora.org/external/imx/onnxruntime-imx -b lf-5.10.35-2.0.0
1071Origin: NXP (MIT) 1244Origin: NXP (MIT)
1072 Microsoft/onnxruntime (MIT) - https://github.com/Microsoft/onnxruntime 1245 Microsoft/onnxruntime (MIT) - https://github.com/Microsoft/onnxruntime
1073 Google's Protocol Buffer (BSD-3-clause) - https://tracker.debian.org/pkg/protobuf 1246 Google's Protocol Buffer (BSD-3-clause) - https://tracker.debian.org/pkg/protobuf
@@ -1076,29 +1249,58 @@ Origin: NXP (MIT)
1076-------------------------------------------- 1249--------------------------------------------
1077 1250
1078Package: pytorch-release.git 1251Package: pytorch-release.git
1252Version:
1079Outgoing License: BSD-3-Clause 1253Outgoing License: BSD-3-Clause
1080License File: LICENSE 1254License File: LICENSE
1081Package Category: MachineLearning 1255Package Category: MachineLearning
1082Type of Content: source 1256Type of Content: source
1083Description and comments: Tensors and Dynamic neural networks in Python with strong GPU acceleration 1257Description and comments: Tensors and Dynamic neural networks in Python with strong GPU acceleration
1084Release Location: https://github.com/NXPmicro/pytorch-release -b rel_imx_5.4.70_2.3.2 1258Release Location: https://github.com/NXPmicro/pytorch-release -b lf-5.10.35-2.0.0
1259Origin: NXP (BSD-3-Clause)
1260 pytorch (BSD-3-clause) - https://github.com/pytorch/pytorch
1261
1262--------------------------------------------
1263
1264Package: torchvision.git
1265Version:
1266Outgoing License: BSD-3-Clause
1267License File: LICENSE
1268Package Category: MachineLearning
1269Type of Content: source
1270Description and comments: The torchvision package consists of popular datasets model architectures and common image transformations for computer vision
1271Release Location: https://github.com/NXPmicro/pytorch-release -b lf-5.10.35-2.0.0
1272Origin: NXP (BSD-3-Clause)
1273 pytorch (BSD-3-clause) - https://github.com/pytorch/pytorch
1274
1085-------------------------------------------- 1275--------------------------------------------
1086 1276
1087Package: tensorflow-imx.git 1277Package: tensorflow-imx.git
1278Version: 2.4.1
1088Outgoing License: Apache-2.0 1279Outgoing License: Apache-2.0
1089License File: LICENSE 1280License File: LICENSE
1090Package Category: MachineLearning 1281Package Category: MachineLearning
1091Type of Content: source 1282Type of Content: source
1092Description and comments: TensorFlow Lite C++ Library 1283Description and comments: TensorFlow Lite C++ Library
1093Release Location: https://source.codeaurora.org/external/imx/tensorflow-imx -b rel_imx_5.4.70_2.3.2 1284Release Location: https://source.codeaurora.org/external/imx/tensorflow-imx -b lf-5.10.35-2.0.0
1094Origin: NXP (Apache-2.0) 1285Origin: NXP (Apache-2.0)
1095 TensorFlow (Apache-2.0) - https://github.com/tensorflow/tensorflow/ 1286 TensorFlow (Apache-2.0) - https://github.com/tensorflow/tensorflow/
1096 1287
1097-------------------------------------------- 1288--------------------------------------------
1289
1290Package: tim-vx-imx.git
1291Version: 1.1.30
1292Outgoing License: MIT
1293License File: LICENSE
1294Package Category: MachineLearning
1295Type of Content: source
1296Description and comments: Tensor Interface Module for OpenVX
1297Release Location: https://source.codeaurora.org/external/imx/tim-vx-imx -b lf-5.10.35-2.0.0
1298--------------------------------------------
1098Tools Packages 1299Tools Packages
1099-------------------------------------------- 1300--------------------------------------------
1100 1301
1101Package: VeriSiliconTool-6.4.3.p1.0.tgz 1302Package: VeriSiliconTool-6.4.3.p2.0.tgz
1303Version: 6.4.3.p2.0
1102Outgoing License: VeriSilicon License 1304Outgoing License: VeriSilicon License
1103License File: 1305License File:
1104Package Category: Tools 1306Package Category: Tools
@@ -1110,6 +1312,7 @@ Origin: VeriSilicon (proprietary)
1110-------------------------------------------- 1312--------------------------------------------
1111 1313
1112Package: mfgtools.git 1314Package: mfgtools.git
1315Version: 3
1113Outgoing License: BSD-3-Clause 1316Outgoing License: BSD-3-Clause
1114License File: LICENSE 1317License File: LICENSE
1115Package Category: Tools 1318Package Category: Tools
@@ -1125,6 +1328,7 @@ Origin: NXP (BSD-3-clause)
1125-------------------------------------------- 1328--------------------------------------------
1126 1329
1127Package: bcu.git 1330Package: bcu.git
1331Version: 1.1.26
1128Outgoing License: BSD 3-Clause 1332Outgoing License: BSD 3-Clause
1129License File: LICENSE 1333License File: LICENSE
1130Package Category: Tools 1334Package Category: Tools
diff --git a/classes/fsl-eula-unpack.bbclass b/classes/fsl-eula-unpack.bbclass
index 64d26bfc..498d7826 100644
--- a/classes/fsl-eula-unpack.bbclass
+++ b/classes/fsl-eula-unpack.bbclass
@@ -34,6 +34,10 @@ FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17 = "cf3f9b8d09bc3926b1004ea7
34FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18 = "231e11849a4331fcbb19d7f4aab4a659" 34FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18 = "231e11849a4331fcbb19d7f4aab4a659"
35FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19 = "a632fefd1c359980434f9389833cab3a" 35FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19 = "a632fefd1c359980434f9389833cab3a"
36FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22 = "3c3fe2b904fd694f28d2f646ee16dddb" 36FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22 = "3c3fe2b904fd694f28d2f646ee16dddb"
37FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V23 = "85d06b38f17b935ca11784d67075b846"
38FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24 = "417b82f17fc02b88125331ed312f6f1b"
39FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1 = "b3b0bab6ff55420d043cf1652c52d788"
40FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V25 = "f35df765ff17e69043ea21f350e3229c"
37FSL_EULA_FILE_MD5SUMS = " \ 41FSL_EULA_FILE_MD5SUMS = " \
38 ${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V8} \ 42 ${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V8} \
39 ${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V10} \ 43 ${FSL_EULA_FILE_MD5SUM_LA_OPT_BASE_LICENSE_V10} \
@@ -63,11 +67,15 @@ FSL_EULA_FILE_MD5SUMS = " \
63 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18} \ 67 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18} \
64 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19} \ 68 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19} \
65 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22} \ 69 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22} \
70 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V23} \
71 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24} \
72 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1} \
73 ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V25} \
66" 74"
67 75
68# The checksum for the EULA in the layer 76# The checksum for the EULA in the layer
69FSL_EULA_FILE_MD5SUM ?= \ 77FSL_EULA_FILE_MD5SUM ?= \
70 "${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22}" 78 "${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1}"
71 79
72LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}" 80LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}"
73LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE" 81LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE"
diff --git a/conf/machine/imx8mq-evk.conf b/conf/machine/imx8mq-evk.conf
index 9907ef4b..3f6598a6 100644
--- a/conf/machine/imx8mq-evk.conf
+++ b/conf/machine/imx8mq-evk.conf
@@ -78,10 +78,3 @@ OPTEE_BIN_EXT = "8mq"
78 78
79# Add additional firmware 79# Add additional firmware
80MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 80MACHINE_FIRMWARE_append = " linux-firmware-ath10k"
81
82# Use gstreamer 1.16 from meta-freescale
83PREFERRED_VERSION_gstreamer1.0 ?= "1.16.imx"
84PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.16.imx"
85PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.16.imx"
86PREFERRED_VERSION_gstreamer1.0-plugins-bad ?= "1.16.imx"
87PREFERRED_VERSION_gstreamer1.0-libav ?= "1.16.0"
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index 17c7bc17..6cb04f09 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -334,11 +334,13 @@ MACHINE_GSTREAMER_1_0_PLUGIN_mx8mq ?= "imx-gst1.0-plugin"
334MACHINE_GSTREAMER_1_0_PLUGIN_mx8qm ?= "imx-gst1.0-plugin" 334MACHINE_GSTREAMER_1_0_PLUGIN_mx8qm ?= "imx-gst1.0-plugin"
335MACHINE_GSTREAMER_1_0_PLUGIN_mx8qxp ?= "imx-gst1.0-plugin" 335MACHINE_GSTREAMER_1_0_PLUGIN_mx8qxp ?= "imx-gst1.0-plugin"
336 336
337PREFERRED_VERSION_gstreamer1.0_mx8 ?= "1.16.2.imx" 337+PREFERRED_VERSION_gstreamer1.0_mx8 ?= "1.18.0.imx"
338PREFERRED_VERSION_gstreamer1.0-plugins-base_mx8 ?= "1.16.2.imx" 338+PREFERRED_VERSION_gstreamer1.0-plugins-base_mx8 ?= "1.18.0.imx"
339PREFERRED_VERSION_gstreamer1.0-plugins-good_mx8 ?= "1.16.3.imx" 339+PREFERRED_VERSION_gstreamer1.0-plugins-good_mx8 ?= "1.18.0.imx"
340PREFERRED_VERSION_gstreamer1.0-plugins-bad_mx8 ?= "1.16.3.imx" 340+PREFERRED_VERSION_gstreamer1.0-plugins-bad_mx8 ?= "1.18.0.imx"
341PREFERRED_VERSION_gstreamer1.0-libav_mx8 ?= "1.16.0" 341+PREFERRED_VERSION_gstreamer1.0-plugins-ugly_mx8 ?= "1.18.0"
342+PREFERRED_VERSION_gstreamer1.0-libav_mx8 ?= "1.18.0"
343+PREFERRED_VERSION_gstreamer1.0-rtsp-server_mx8 ?= "1.18.0"
342 344
343# Determines if the SoC has support for Vivante kernel driver 345# Determines if the SoC has support for Vivante kernel driver
344SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0" 346SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0"
diff --git a/conf/machine/include/imx8mm-evk.inc b/conf/machine/include/imx8mm-evk.inc
index 9b590fe0..62d5bfdd 100644
--- a/conf/machine/include/imx8mm-evk.inc
+++ b/conf/machine/include/imx8mm-evk.inc
@@ -5,13 +5,13 @@ require conf/machine/include/tune-cortexa53.inc
5 5
6MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356" 6MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356"
7 7
8# NXP BSP can consume BCM4359 and QCA9377 driver and firmware 8# NXP BSP can consume BCM4359 driver and firmware
9# Since the firmware is not available publicly, and rather distributed 9# Since the firmware is not available publicly, and rather distributed
10# under "Proprietary" license - we opt-out from using it in all BSPs 10# under "Proprietary" license - we opt-out from using it in all BSPs
11# and pin it to NXP BSP only 11# and pin it to NXP BSP only
12# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have 12# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
13# a full support for it yet. 13# a full support for it yet.
14MACHINE_FEATURES_append_use-nxp-bsp = " optee bcm4359 qca9377" 14MACHINE_FEATURES_append_use-nxp-bsp = " optee bcm4359"
15 15
16KERNEL_DEVICETREE = " \ 16KERNEL_DEVICETREE = " \
17 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ 17 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
diff --git a/conf/machine/include/imx8mp-evk.inc b/conf/machine/include/imx8mp-evk.inc
index 872d07a0..56b6e90f 100644
--- a/conf/machine/include/imx8mp-evk.inc
+++ b/conf/machine/include/imx8mp-evk.inc
@@ -3,11 +3,12 @@ MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mp:"
3require conf/machine/include/imx-base.inc 3require conf/machine/include/imx-base.inc
4require conf/machine/include/tune-cortexa53.inc 4require conf/machine/include/tune-cortexa53.inc
5 5
6MACHINE_FEATURES += "pci wifi bluetooth jailhouse" 6MACHINE_FEATURES += "pci wifi bluetooth"
7 7
8# NXP BSP can consume proprietary jailhouse and Marvell drivers
8# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have 9# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
9# a full support for it yet. 10# a full support for it yet.
10MACHINE_FEATURES_append_use-nxp-bsp = " optee mrvl8997" 11MACHINE_FEATURES_append_use-nxp-bsp = " optee jailhouse mrvl8997"
11 12
12# Mainline kernel contains only one DTB file for 13# Mainline kernel contains only one DTB file for
13# imx8mpevk machine 14# imx8mpevk machine
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8.10.1.inc b/recipes-bsp/firmware-imx/firmware-imx-8.12.inc
index 582beb18..b9699a86 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8.10.1.inc
+++ b/recipes-bsp/firmware-imx/firmware-imx-8.12.inc
@@ -3,14 +3,14 @@
3# Copyright (C) 2018 O.S. Systems Software LTDA. 3# Copyright (C) 2018 O.S. Systems Software LTDA.
4SECTION = "base" 4SECTION = "base"
5LICENSE = "Proprietary" 5LICENSE = "Proprietary"
6LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb" 6LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
7 7
8SRC_URI = " \ 8SRC_URI = " \
9 ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ 9 ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \
10" 10"
11 11
12SRC_URI[md5sum] = "1a9414928c3f30e7a911700fe83cd62e" 12SRC_URI[md5sum] = "6062247e9f12f3ec27247079e59fb935"
13SRC_URI[sha256sum] = "da415c32063c08fce8f52734f198b19ab06bd7d4333a4df900f8831df562f8fc" 13SRC_URI[sha256sum] = "6b6747bf36ecc53e385234afdce01f69c5775adf0d6685c885281ca6e4e322ef"
14 14
15S = "${WORKDIR}/firmware-imx-${PV}" 15S = "${WORKDIR}/firmware-imx-${PV}"
16 16
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.10.1.bb b/recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb
index 650c1cfd..650c1cfd 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8_8.10.1.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.1.bb b/recipes-bsp/firmware-imx/firmware-imx-8m_8.12.bb
index a48356ed..a48356ed 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.1.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx-8m_8.12.bb
diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.10.1.bb b/recipes-bsp/firmware-imx/firmware-imx_8.12.bb
index 8ff4a321..8ff4a321 100644
--- a/recipes-bsp/firmware-imx/firmware-imx_8.10.1.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx_8.12.bb
diff --git a/recipes-bsp/firmware-qca/firmware-qca.inc b/recipes-bsp/firmware-qca/firmware-qca.inc
deleted file mode 100644
index f33f4eb9..00000000
--- a/recipes-bsp/firmware-qca/firmware-qca.inc
+++ /dev/null
@@ -1,15 +0,0 @@
1# Copyright (C) 2018-2020 NXP
2
3SUMMARY = "Qualcomm Wi-Fi and Bluetooth firmware"
4SECTION = "base"
5LICENSE = "Proprietary"
6LIC_FILES_CHKSUM = "file://COPYING;md5=fd4b227530cd88a82af6a5982cfb724d \
7 file://QUALCOMM_ATHEROS_LICENSE_AGREEMENT.pdf;md5=e629669cf17f6a2a6872e067582986e3 \
8"
9
10SRC_URI = " ${FSL_MIRROR}/firmware-qca-${PV}.bin;fsl-eula=true"
11SRC_URI[md5sum] = "75b1b2a8dea8f81609ccfc072d42fa86"
12SRC_URI[sha256sum] = "6ad56ac1df841e252ac6db0a8966082715a3cb6dc7189426bade13333a16fd9d"
13S = "${WORKDIR}/firmware-qca-${PV}"
14
15inherit fsl-eula-unpack
diff --git a/recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb b/recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb
deleted file mode 100644
index 47b289af..00000000
--- a/recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
1# Copyright (C) 2019-2020 NXP
2
3require firmware-qca.inc
4
5SUMMARY = "Qualcomm Wi-Fi and Bluetooth firmware"
6DESCRIPTION = "Qualcomm Wi-Fi and Bluetooth firmware for modules such as QCA6174A"
7SECTION = "base"
8LICENSE = "Proprietary"
9
10inherit allarch
11
12do_install () {
13 # Install firmware.conf for QCA modules
14 install -d ${D}${sysconfdir}/bluetooth
15 install -m 644 ${S}/1CQ_QCA6174A_LEA_2.0/etc/bluetooth/firmware.conf ${D}${sysconfdir}/bluetooth
16
17 # Install firmware files
18 install -d ${D}${base_libdir}
19 cp -r ${S}/1CQ_QCA6174A_LEA_2.0/lib/firmware ${D}${base_libdir}
20}
21
22FILES_${PN} = " \
23 ${sysconfdir}/bluetooth/firmware.conf \
24 ${base_libdir}/firmware/qca6174 \
25 ${base_libdir}/firmware/wlan \
26 ${base_libdir}/firmware/* \
27"
diff --git a/recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb b/recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb
deleted file mode 100644
index 26c41d50..00000000
--- a/recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
1# Copyright (C) 2018-2020 NXP
2
3require firmware-qca.inc
4
5SUMMARY = "Qualcomm Wi-Fi and Bluetooth firmware"
6DESCRIPTION = "Qualcomm Wi-Fi and Bluetooth firmware for modules such as QCA9377-3"
7SECTION = "base"
8LICENSE = "Proprietary"
9
10inherit allarch
11
12do_install () {
13 # Install firmware.conf for QCA modules
14 install -d ${D}${sysconfdir}/bluetooth
15 install -m 644 ${S}/1PJ_QCA9377-3_LEA_3.0/etc/bluetooth/firmware.conf ${D}${sysconfdir}/bluetooth
16
17 # Install firmware files
18 install -d ${D}${base_libdir}
19 cp -r ${S}/1PJ_QCA9377-3_LEA_3.0/lib/firmware ${D}${base_libdir}
20}
21
22FILES_${PN} = " \
23 ${sysconfdir}/bluetooth/firmware.conf \
24 ${base_libdir}/firmware/qca \
25 ${base_libdir}/firmware/qca9377 \
26 ${base_libdir}/firmware/wlan \
27"
diff --git a/recipes-bsp/firmware-qca/qca-tools_3.0.2.bb b/recipes-bsp/firmware-qca/qca-tools_3.0.2.bb
deleted file mode 100644
index e996c62d..00000000
--- a/recipes-bsp/firmware-qca/qca-tools_3.0.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1# Copyright (C) 2018-2020 NXP
2
3require firmware-qca.inc
4
5SUMMARY = "Qualcomm Wi-Fi and Bluetooth tools"
6DESCRIPTION = "Qualcomm Wi-Fi and Bluetooth tools for modules such as QCA6174A and QCA9377"
7LICENSE = "Proprietary"
8
9DEPENDS = "libnl zlib"
10
11FCC_TOOLS_FOLDER ?= "qca9377_qca6174_arm32"
12FCC_TOOLS_FOLDER_aarch64 = "qca9377_qca6174_arm64"
13
14do_install() {
15 install -d ${D}${sbindir}/fcc_tools
16 cp -r ${S}/fcc_tools/${FCC_TOOLS_FOLDER} ${D}${sbindir}/fcc_tools
17}
18
19COMPATIBLE_HOST = '(aarch64|arm).*-linux'
20COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-bsp/imx-atf/imx-atf_2.4.bb b/recipes-bsp/imx-atf/imx-atf_2.4.bb
index 07807eff..f4db002b 100644
--- a/recipes-bsp/imx-atf/imx-atf_2.4.bb
+++ b/recipes-bsp/imx-atf/imx-atf_2.4.bb
@@ -7,10 +7,10 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;m
7 7
8PV .= "+git${SRCPV}" 8PV .= "+git${SRCPV}"
9 9
10SRCBRANCH = "imx_5.4.70_2.3.0" 10SRCBRANCH = "lf_v2.4"
11SRC_URI = "git://source.codeaurora.org/external/imx/imx-atf.git;protocol=https;branch=${SRCBRANCH} \ 11SRC_URI = "git://source.codeaurora.org/external/imx/imx-atf.git;protocol=https;branch=${SRCBRANCH} \
12" 12"
13SRCREV = "2a26786460edd4f0ec3111e7027c93c57fc572c1" 13SRCREV = "ec35fef92b71a79075f214f8cff0738cd4482ed0"
14 14
15S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
16 16
@@ -27,6 +27,8 @@ EXTRA_OEMAKE += " \
27 27
28BUILD_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}" 28BUILD_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}"
29 29
30CFLAGS_remove_mx8mq = "-O2"
31
30do_compile() { 32do_compile() {
31 # Clear LDFLAGS to avoid the option -Wl recognize issue 33 # Clear LDFLAGS to avoid the option -Wl recognize issue
32 unset LDFLAGS 34 unset LDFLAGS
diff --git a/recipes-bsp/imx-mkimage/imx-mkimage_git.bb b/recipes-bsp/imx-mkimage/imx-mkimage_git.bb
index 4e154f6d..f9943342 100644
--- a/recipes-bsp/imx-mkimage/imx-mkimage_git.bb
+++ b/recipes-bsp/imx-mkimage/imx-mkimage_git.bb
@@ -1,5 +1,5 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright (C) 2017-2020 NXP 2# Copyright (C) 2017-2021 NXP
3 3
4require imx-mkimage_git.inc 4require imx-mkimage_git.inc
5 5
@@ -12,18 +12,11 @@ inherit deploy native
12 12
13CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR} -L ${STAGING_LIBDIR}" 13CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR} -L ${STAGING_LIBDIR}"
14 14
15REV_CHIP ?= "B0"
16REV_CHIP_mx8qxp = \
17 "${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', 'B0', \
18 'C0', d)}"
19
20do_compile () { 15do_compile () {
21 cd ${S} 16 cd ${S}
22 oe_runmake clean 17 oe_runmake clean
23 oe_runmake bin 18 oe_runmake bin
24 oe_runmake -C iMX8M -f soc.mak mkimage_imx8 19 oe_runmake -C iMX8M -f soc.mak mkimage_imx8
25 oe_runmake -C iMX8QM REV=${REV_CHIP} -f soc.mak imx8qm_dcd.cfg.tmp
26 oe_runmake -C iMX8QX REV=${REV_CHIP} -f soc.mak imx8qx_dcd.cfg.tmp
27} 20}
28 21
29do_install () { 22do_install () {
@@ -32,9 +25,3 @@ do_install () {
32 install -m 0755 iMX8M/mkimage_imx8 ${D}${bindir}/mkimage_imx8m 25 install -m 0755 iMX8M/mkimage_imx8 ${D}${bindir}/mkimage_imx8m
33 install -m 0755 mkimage_imx8 ${D}${bindir}/mkimage_imx8 26 install -m 0755 mkimage_imx8 ${D}${bindir}/mkimage_imx8
34} 27}
35
36do_deploy () {
37 install -m 0644 ${S}/iMX8QM/imx8qm_dcd.cfg.tmp ${DEPLOYDIR}
38 install -m 0644 ${S}/iMX8QX/imx8qx_dcd.cfg.tmp ${DEPLOYDIR}
39}
40addtask deploy before do_build after do_install
diff --git a/recipes-bsp/imx-mkimage/imx-mkimage_git.inc b/recipes-bsp/imx-mkimage/imx-mkimage_git.inc
index e52fd722..1288d877 100644
--- a/recipes-bsp/imx-mkimage/imx-mkimage_git.inc
+++ b/recipes-bsp/imx-mkimage/imx-mkimage_git.inc
@@ -1,13 +1,12 @@
1# Copyright 2017-2020 NXP 1# Copyright 2017-2021 NXP
2 2
3DEPENDS = "zlib-native openssl-native" 3DEPENDS = "zlib-native openssl-native"
4 4
5SRCBRANCH = "imx_5.4.70_2.3.0" 5SRCBRANCH = "lf-5.10.y_2.0.0"
6SRC_URI = "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH} \ 6SRC_URI = "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH} \
7 file://0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch \ 7 file://0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch \
8" 8"
9 9SRCREV = "5138add7602a50d1730a54d0b67219f0ce0666b4"
10SRCREV = "8947fea369ab3932259630232cfb9f87b8f9dda1"
11S = "${WORKDIR}/git" 10S = "${WORKDIR}/git"
12 11
13BOOT_TOOLS = "imx-boot-tools" 12BOOT_TOOLS = "imx-boot-tools"
diff --git a/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.7.1.bb b/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb
index ade228d0..f8ad829e 100644
--- a/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.7.1.bb
+++ b/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb
@@ -1,17 +1,17 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright (C) 2017-2020 NXP 2# Copyright (C) 2017-2021 NXP
3 3
4DESCRIPTION = "i.MX System Controller Firmware" 4DESCRIPTION = "i.MX System Controller Firmware"
5LICENSE = "Proprietary" 5LICENSE = "Proprietary"
6LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" 6LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
7SECTION = "BSP" 7SECTION = "BSP"
8 8
9inherit fsl-eula-unpack pkgconfig deploy 9inherit fsl-eula-unpack pkgconfig deploy
10 10
11SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 11SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
12 12
13SRC_URI[md5sum] = "962aebbb0100cc0e049fa88cea594a00" 13SRC_URI[md5sum] = "5fb6fd285b18717614b5ba67f023e51c"
14SRC_URI[sha256sum] = "9a37353c07c187078be02d76ac55f615cd0c60ea9a1c4233c1929e4b2c43aebc" 14SRC_URI[sha256sum] = "df0fe17c93e4c2835542d6b1b2557524f034e378b643100cd838225e82336158"
15 15
16BOARD_TYPE ?= "mek" 16BOARD_TYPE ?= "mek"
17SC_FIRMWARE_NAME ?= "INVALID" 17SC_FIRMWARE_NAME ?= "INVALID"
diff --git a/recipes-bsp/imx-seco/imx-seco-libs_git.bb b/recipes-bsp/imx-seco/imx-seco-libs_git.bb
index dc37cdfc..4813d27e 100644
--- a/recipes-bsp/imx-seco/imx-seco-libs_git.bb
+++ b/recipes-bsp/imx-seco/imx-seco-libs_git.bb
@@ -1,17 +1,17 @@
1# Copyright (C) 2019-2020 NXP 1# Copyright (C) 2019-2021 NXP
2 2
3SUMMARY = "NXP i.MX SECO library" 3SUMMARY = "NXP i.MX SECO library"
4DESCRIPTION = "NXP IMX SECO library" 4DESCRIPTION = "NXP IMX SECO library"
5SECTION = "base" 5SECTION = "base"
6LICENSE = "Proprietary" 6LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://EULA.txt;md5=228c72f2a91452b8a03c4cab30f30ef9" 7LIC_FILES_CHKSUM = "file://EULA.txt;md5=85d06b38f17b935ca11784d67075b846"
8 8
9DEPENDS = "zlib" 9DEPENDS = "zlib"
10 10
11SRCBRANCH = "imx_5.4.70_2.3.1" 11SRCBRANCH = "lf-5.10.y_2.0.0"
12SRC_URI = "git://github.com/NXP/imx-seco-libs.git;protocol=https;branch=${SRCBRANCH} \ 12SRC_URI = "git://github.com/NXP/imx-seco-libs.git;protocol=https;branch=${SRCBRANCH} \
13 file://0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch" 13 file://0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch"
14SRCREV = "79e5fb5d096c61b1c3163c9fa8e42719509d95a0" 14SRCREV = "44caf511023012e9eda93f8bf64c90eaff1bade6"
15 15
16S = "${WORKDIR}/git" 16S = "${WORKDIR}/git"
17 17
diff --git a/recipes-bsp/imx-seco/imx-seco_3.7.5.bb b/recipes-bsp/imx-seco/imx-seco_3.8.1.bb
index 0539b887..d6d165d7 100644
--- a/recipes-bsp/imx-seco/imx-seco_3.7.5.bb
+++ b/recipes-bsp/imx-seco/imx-seco_3.8.1.bb
@@ -1,17 +1,17 @@
1# Copyright (C) 2019-2020 NXP 1# Copyright (C) 2019-2021 NXP
2 2
3SUMMARY = "NXP i.MX SECO firmware" 3SUMMARY = "NXP i.MX SECO firmware"
4DESCRIPTION = "NXP IMX SECO firmware" 4DESCRIPTION = "NXP IMX SECO firmware"
5SECTION = "base" 5SECTION = "base"
6LICENSE = "Proprietary" 6LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" 7LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb"
8 8
9inherit fsl-eula-unpack use-imx-security-controller-firmware deploy 9inherit fsl-eula-unpack use-imx-security-controller-firmware deploy
10 10
11SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true" 11SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
12 12
13SRC_URI[md5sum] = "d4faca131abfc51a1dd0278d7d201159" 13SRC_URI[md5sum] = "3043817d797fbd7417442ef3709d69b3"
14SRC_URI[sha256sum] = "08cf25a4be6841ca7264a50b29c311b386eae1c02fced8a3b55fd04213acb4bc" 14SRC_URI[sha256sum] = "fe6cff8ee0b66cc4e048ad4ad17e663867c5509809a436a3da62a73a80c1140f"
15 15
16do_compile[noexec] = "1" 16do_compile[noexec] = "1"
17 17
diff --git a/recipes-bsp/imx-test/imx-test_git.bb b/recipes-bsp/imx-test/imx-test_git.bb
index 4e139cc4..90594f39 100644
--- a/recipes-bsp/imx-test/imx-test_git.bb
+++ b/recipes-bsp/imx-test/imx-test_git.bb
@@ -1,6 +1,6 @@
1# Copyright (C) 2012-2016 O.S. Systems Software LTDA. 1# Copyright (C) 2012-2016 O.S. Systems Software LTDA.
2# Copyright (C) 2013-2016 Freescale Semiconductor 2# Copyright (C) 2013-2016 Freescale Semiconductor
3# Copyright (C) 2017-2019 NXP 3# Copyright (C) 2017-2021 NXP
4 4
5SUMMARY = "Test programs for i.MX BSP" 5SUMMARY = "Test programs for i.MX BSP"
6DESCRIPTION = "Unit tests for the i.MX BSP" 6DESCRIPTION = "Unit tests for the i.MX BSP"
@@ -16,12 +16,12 @@ DEPENDS_append_imxvpu = " virtual/imxvpu"
16PE = "1" 16PE = "1"
17PV = "7.0+${SRCPV}" 17PV = "7.0+${SRCPV}"
18 18
19SRCBRANCH = "imx_5.4.70_2.3.0" 19SRCBRANCH = "lf-5.10.y_2.0.0"
20SRC_URI = " \ 20SRC_URI = " \
21 git://source.codeaurora.org/external/imx/imx-test.git;protocol=https;branch=${SRCBRANCH} \ 21 git://source.codeaurora.org/external/imx/imx-test.git;protocol=https;branch=${SRCBRANCH} \
22 file://memtool_profile \ 22 file://memtool_profile \
23" 23"
24SRCREV = "90fd7168fe5f15de9b2b1992a719024fc73a185a" 24SRCREV = "e55c83b939dbb1989181f48b2b3f3e32f7b5b380"
25S = "${WORKDIR}/git" 25S = "${WORKDIR}/git"
26 26
27inherit module-base use-imx-headers 27inherit module-base use-imx-headers
diff --git a/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb b/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb
index bd087898..58a140b4 100644
--- a/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb
+++ b/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb
@@ -1,8 +1,8 @@
1# Copyright (C) 2019-2020 NXP 1# Copyright (C) 2019-2021 NXP
2 2
3DESCRIPTION = "i.MX VC8000E Encoder library" 3DESCRIPTION = "i.MX VC8000E Encoder library"
4LICENSE = "Proprietary" 4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" 5LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
6 6
7inherit fsl-eula-unpack 7inherit fsl-eula-unpack
8 8
@@ -10,8 +10,8 @@ SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
10 10
11S = "${WORKDIR}/${BPN}-${PV}" 11S = "${WORKDIR}/${BPN}-${PV}"
12 12
13SRC_URI[md5sum] = "37c61718602ff08041b81319cfd6a8d9" 13SRC_URI[md5sum] = "b5270450ba2da5b7468b67ae8c0bcdca"
14SRC_URI[sha256sum] = "8425796fc63d7107f2f57c51497281c4d54c883b2670817347fbe55f39dc2b8c" 14SRC_URI[sha256sum] = "d5efae484c4271c098286d007590d6bf40c272d4f35702ff65625f2362715ab3"
15 15
16# SCR is the location and name of the Software Content Register file 16# SCR is the location and name of the Software Content Register file
17# relative to ${D}${D_SUBDIR}. 17# relative to ${D}${D_SUBDIR}.
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon/0001-Makefile-Honor-LDFLAGS-from-toolchain.patch b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon/0001-Makefile-Honor-LDFLAGS-from-toolchain.patch
new file mode 100644
index 00000000..dff2fb8f
--- /dev/null
+++ b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon/0001-Makefile-Honor-LDFLAGS-from-toolchain.patch
@@ -0,0 +1,33 @@
1From 94ae72948f1ed1a8bad1c13b4edc4b9189207e35 Mon Sep 17 00:00:00 2001
2From: Tom Hochstein <tom.hochstein@nxp.com>
3Date: Mon, 26 Jul 2021 09:06:26 -0500
4Subject: [PATCH] Makefile: Honor LDFLAGS from toolchain
5
6The LDFLAGS variable is standard from the toolchain and should be
7honored. Yocto detects the problem with a QA check:
8
9ERROR: imx-vpu-hantro-daemon-1.1.0-r0 do_package_qa: QA Issue: File /usr/bin/vsidaemon in package imx-vpu-hantro-daemon doesn't have GNU_HASH (didn't pass LDFLAGS?) [ldflags]
10
11Upstream-Status: Pending
12
13Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
14---
15 Makefile | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/Makefile b/Makefile
19index 9a775b0..e73ff47 100755
20--- a/Makefile
21+++ b/Makefile
22@@ -22,7 +22,7 @@ OUT_FILE = vsidaemon
23 DEC = nxp_enc_hw
24 ENC = nxp_dec_hw
25 LIBFILES =
26-LD_FLAGS = -lpthread -lm
27+LD_FLAGS = $(LDFLAGS) -lpthread -lm
28
29 PLATFORM ?= IMX8MP
30
31--
322.17.1
33
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb
new file mode 100644
index 00000000..88b9ee0e
--- /dev/null
+++ b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb
@@ -0,0 +1,32 @@
1# Copyright 2021 NXP
2DESCRIPTION = "i.MX Hantro V4L2 Daemon"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd8bc2a79509c22fc9c1782a151210b1"
5
6DEPENDS = "imx-vpu-hantro"
7DEPENDS_append_mx8mp = " imx-vpu-hantro-vc"
8
9SRC_URI = " \
10 ${FSL_MIRROR}/${BP}.tar.gz \
11 file://0001-Makefile-Honor-LDFLAGS-from-toolchain.patch \
12"
13SRC_URI[md5sum] = "65417710ef22214523c37f50f34b6ab2"
14SRC_URI[sha256sum] = "897d174c4c0818f31012d8a60ed51fc83fdfc55fca2d2b0fc24a0db3e9f3b6e8"
15
16PLATFORM_mx8mm = "IMX8MM"
17PLATFORM_mx8mq = "IMX8MQ"
18PLATFORM_mx8mp = "IMX8MP"
19
20EXTRA_OEMAKE = " \
21 CROSS_COMPILE="${HOST_PREFIX}" \
22 SDKTARGETSYSROOT="${STAGING_DIR_TARGET}" \
23 CTRLSW_HDRPATH="${STAGING_INCDIR}" \
24 PLATFORM="${PLATFORM}" \
25"
26
27do_install () {
28 oe_runmake install DEST_DIR="${D}"
29}
30
31PACKAGE_ARCH = "${MACHINE_SOCARCH}"
32COMPATIBLE_MACHINE = "(mx8mq|mx8mm|mx8mp)"
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-decoder_sw-resolve-compilation-error-with-fcommon.patch b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-decoder_sw-resolve-compilation-error-with-fcommon.patch
deleted file mode 100644
index 8d9610d5..00000000
--- a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro/0001-decoder_sw-resolve-compilation-error-with-fcommon.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1From 5bfb24738c47003fd04a86bfd5a49f8c6354ed23 Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
3Date: Fri, 28 Aug 2020 07:46:35 +0000
4Subject: [PATCH] decoder_sw: resolve compilation error with -fcommon
5
6-fcommon is enabled by default in gcc10 compiler, which results in
7following build errors:
8
9decoder_sw/software/source/inc/decapicommon.h:272: multiple definition
10of `DecPicCodingType'; decoder_sw/software/linux/dwl/dwl_linux.o:
11decoder_sw/software/source/inc/decapicommon.h:272: first defined here
12
13decoder_sw/software/source/inc/dwl.h:94: multiple definition of
14`DWLInitParam'; decoder_sw/software/linux/dwl/dwl_linux.o:
15decoder_sw/software/source/inc/dwl.h:94: first defined here
16
17Drop multiple enum name definitions, which solves above compilation
18issues.
19
20Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
21---
22 decoder_sw/software/source/inc/decapicommon.h | 2 +-
23 decoder_sw/software/source/inc/dwl.h | 2 +-
24 2 files changed, 2 insertions(+), 2 deletions(-)
25
26diff --git a/decoder_sw/software/source/inc/decapicommon.h b/decoder_sw/software/source/inc/decapicommon.h
27index 0f02092..fc8cccf 100755
28--- a/decoder_sw/software/source/inc/decapicommon.h
29+++ b/decoder_sw/software/source/inc/decapicommon.h
30@@ -269,7 +269,7 @@ enum DecPicCodingType {
31 DEC_PIC_TYPE_D = 3,
32 DEC_PIC_TYPE_FI = 4,
33 DEC_PIC_TYPE_BI = 5
34-} DecPicCodingType;
35+};
36
37 /* Output picture pixel format types for raster scan or down scale output */
38 enum DecPicturePixelFormat {
39diff --git a/decoder_sw/software/source/inc/dwl.h b/decoder_sw/software/source/inc/dwl.h
40index 6991f03..fd357b3 100755
41--- a/decoder_sw/software/source/inc/dwl.h
42+++ b/decoder_sw/software/source/inc/dwl.h
43@@ -91,7 +91,7 @@ struct DWLLinearMem {
44 /* DWLInitParam is used to pass parameters when initializing the DWL */
45 struct DWLInitParam {
46 u32 client_type;
47-} DWLInitParam;
48+};
49
50 /* Hardware configuration description, same as in top API */
51 typedef struct DecHwConfig DWLHwConfig;
52--
532.17.1
54
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.20.0.bb b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.20.0.bb
deleted file mode 100644
index b7c64cbb..00000000
--- a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.20.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1# Copyright (C) 2017-2020 NXP
2
3DESCRIPTION = "i.MX Hantro VPU library"
4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a"
6
7PROVIDES = "virtual/imxvpu"
8
9SRC_URI = " \
10 ${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true \
11"
12SRC_URI[md5sum] = "682b3a73bf5aa22a37d56a433d11fc91"
13SRC_URI[sha256sum] = "e6cdd5b4c628604906466fc9620e2b048cf1b2c863f9ee49616dd5212b9261b0"
14
15inherit fsl-eula-unpack use-imx-headers
16
17PARALLEL_MAKE="-j 1"
18
19PLATFORM_mx8mm = "IMX8MM"
20PLATFORM_mx8mq = "IMX8MQ"
21PLATFORM_mx8mp = "IMX8MP"
22
23do_compile () {
24 oe_runmake CROSS_COMPILE="${HOST_PREFIX}" \
25 SDKTARGETSYSROOT="${STAGING_DIR_TARGET}" \
26 PLATFORM="${PLATFORM}" all
27}
28
29do_install () {
30 oe_runmake DEST_DIR="${D}" PLATFORM="${PLATFORM}" install
31}
32
33FILES_${PN} += "/unit_tests"
34
35COMPATIBLE_MACHINE = "(mx8mq|mx8mm|mx8mp)"
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb
new file mode 100644
index 00000000..20ac87c7
--- /dev/null
+++ b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb
@@ -0,0 +1,35 @@
1# Copyright (C) 2017-2020 NXP
2
3DESCRIPTION = "i.MX Hantro VPU library"
4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
6
7PROVIDES = "virtual/imxvpu"
8
9SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
10SRC_URI[md5sum] = "b65b49eadb6463b784e1a9e44a94fca1"
11SRC_URI[sha256sum] = "03c61dfb268b31a0d25a4d1387cb3ad0261029ad5de801f72224602e2b37da00"
12
13inherit fsl-eula-unpack use-imx-headers
14
15PARALLEL_MAKE="-j 1"
16
17PLATFORM_mx8mm = "IMX8MM"
18PLATFORM_mx8mq = "IMX8MQ"
19PLATFORM_mx8mp = "IMX8MP"
20
21EXTRA_OEMAKE = " \
22 CROSS_COMPILE="${HOST_PREFIX}" \
23 SDKTARGETSYSROOT="${STAGING_DIR_TARGET}" \
24 PLATFORM="${PLATFORM}" \
25"
26
27do_install () {
28 oe_runmake install DEST_DIR="${D}"
29}
30
31FILES_${PN} += "/unit_tests"
32
33RDEPENDS_${PN} += "imx-vpu-hantro-daemon"
34
35COMPATIBLE_MACHINE = "(mx8mq|mx8mm|mx8mp)"
diff --git a/recipes-bsp/isp-imx/basler-camera_4.2.2.11.0.bb b/recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb
index 88cdd1c5..e7d4b652 100644
--- a/recipes-bsp/isp-imx/basler-camera_4.2.2.11.0.bb
+++ b/recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb
@@ -2,14 +2,14 @@
2 2
3DESCRIPTION = "Basler camera binary drivers" 3DESCRIPTION = "Basler camera binary drivers"
4LICENSE = "Proprietary" 4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb" 5LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
6 6
7inherit fsl-eula-unpack 7inherit fsl-eula-unpack
8 8
9SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 9SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
10 10
11SRC_URI[md5sum] = "2e0bd011f8d72e1957c4d6da55364be5" 11SRC_URI[md5sum] = "8d99375cc9e7f1573d984c6a989655b1"
12SRC_URI[sha256sum] = "4be5c4f26dc0f3f5e031c2d8ac295ff5768489e7e978aaa901030fd77b5209c2" 12SRC_URI[sha256sum] = "3f09f7a2de290b0580faee9e180a78a322144d316fbbbc80b8a36fb83ab538b1"
13 13
14do_install() { 14do_install() {
15 dest_dir=${D}/opt/imx8-isp/bin 15 dest_dir=${D}/opt/imx8-isp/bin
diff --git a/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch b/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch
index 1b62afe5..be2e1c61 100644
--- a/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch
+++ b/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch
@@ -10,20 +10,20 @@ Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
10 imx/start_isp.sh | 13 +++++-------- 10 imx/start_isp.sh | 13 +++++--------
11 1 file changed, 5 insertions(+), 8 deletions(-) 11 1 file changed, 5 insertions(+), 8 deletions(-)
12 12
13Index: isp-imx-4.2.2.11.0/imx/start_isp.sh 13Index: isp-imx-4.2.2.13.0/imx/start_isp.sh
14=================================================================== 14===================================================================
15--- isp-imx-4.2.2.11.0.orig/imx/start_isp.sh 15--- isp-imx-4.2.2.13.0.orig/imx/start_isp.sh
16+++ isp-imx-4.2.2.11.0/imx/start_isp.sh 16+++ isp-imx-4.2.2.13.0/imx/start_isp.sh
17@@ -8,6 +8,7 @@ 17@@ -9,6 +9,7 @@
18
19 RUNTIME_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" 18 RUNTIME_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
20 NR_DEVICE_TREE_BASLER=$(grep basler-camera-vvcam /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null) 19 NR_DEVICE_TREE_BASLER=$(grep basler-camera-vvcam /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null)
20 NR_DEVICE_TREE_OV5640=$(grep ov5640 /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null)
21+DMESG_BASLER=`dmesg | grep Basler` 21+DMESG_BASLER=`dmesg | grep Basler`
22 22
23 # check if the basler device has been enabled in the device tree 23 # check if the basler device has been enabled in the device tree
24 if [ $NR_DEVICE_TREE_BASLER -eq 1 ]; then 24 if [ $NR_DEVICE_TREE_BASLER -eq 1 ]; then
25@@ -28,8 +29,15 @@ elif [ $NR_DEVICE_TREE_BASLER -eq 2 ]; t 25@@ -40,8 +41,15 @@ elif [ $NR_DEVICE_TREE_BASLER -eq 2 ]; t
26 # Available configurations: dual_basler_1080p60, dual_basler_1080p60hdr 26 # Available configurations: dual_basler_1080p60, dual_basler_1080p60hdr, dual_basler_1080p25hdr
27 exec ./run.sh -c dual_basler_1080p60 -lm 27 exec ./run.sh -c dual_basler_1080p60 -lm
28 28
29+elif [ ! -z "$DMESG_BASLER" ]; then 29+elif [ ! -z "$DMESG_BASLER" ]; then
diff --git a/recipes-bsp/isp-imx/isp-imx_4.2.2.11.0.bb b/recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb
index 3d25229f..ec15dfb9 100644
--- a/recipes-bsp/isp-imx/isp-imx_4.2.2.11.0.bb
+++ b/recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb
@@ -2,15 +2,15 @@
2 2
3DESCRIPTION = "i.MX Verisilicon Software ISP" 3DESCRIPTION = "i.MX Verisilicon Software ISP"
4LICENSE = "Proprietary" 4LICENSE = "Proprietary"
5LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb" 5LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
6DEPENDS = "python3 libdrm virtual/libg2d" 6DEPENDS = "python3 libdrm virtual/libg2d"
7 7
8SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true \ 8SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true \
9 file://0001-start_isp.sh-fix-test-to-be-generic.patch \ 9 file://0001-start_isp.sh-fix-test-to-be-generic.patch \
10" 10"
11 11
12SRC_URI[md5sum] = "75f79ba556c47172b9a0cbc3a877e604" 12SRC_URI[md5sum] = "123feed48302fea2a1be8572e913ae47"
13SRC_URI[sha256sum] = "28e2ee909f29a256c4eac87ef8336932d90a88a2a183389ac0868212954af42c" 13SRC_URI[sha256sum] = "e775975684aab4211f0bf8c5e2c6604ba46b83c5586937000675e044a50d77b8"
14 14
15inherit fsl-eula-unpack cmake systemd use-imx-headers 15inherit fsl-eula-unpack cmake systemd use-imx-headers
16 16
diff --git a/recipes-bsp/u-boot/u-boot-imx-common.inc b/recipes-bsp/u-boot/u-boot-imx-common_2021.04.inc
index f1edc92c..2abcac9b 100644
--- a/recipes-bsp/u-boot/u-boot-imx-common.inc
+++ b/recipes-bsp/u-boot/u-boot-imx-common_2021.04.inc
@@ -3,9 +3,9 @@ DESCRIPTION = "i.MX U-Boot suppporting i.MX reference boards."
3LICENSE = "GPLv2+" 3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263" 4LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
5 5
6SRCBRANCH = "imx_v2020.04_5.4.70_2.3.0" 6SRCBRANCH = "lf_v2021.04"
7SRC_URI = "git://source.codeaurora.org/external/imx/uboot-imx.git;protocol=https;branch=${SRCBRANCH}" 7SRC_URI = "git://source.codeaurora.org/external/imx/uboot-imx.git;protocol=https;branch=${SRCBRANCH}"
8SRCREV = "185bdaaaf5644319284566e5c340927d28954a1a" 8SRCREV = "3463140881c523e248d2fcb6bfc9ed25c0db93bd"
9 9
10DEPENDS += "flex-native bison-native bc-native dtc-native" 10DEPENDS += "flex-native bison-native bc-native dtc-native"
11 11
@@ -14,7 +14,7 @@ B = "${WORKDIR}/build"
14 14
15inherit fsl-u-boot-localversion 15inherit fsl-u-boot-localversion
16 16
17LOCALVERSION ?= "-imx_v2020.04_5.4.70_2.3.2" 17LOCALVERSION ?= "-imx_v2021.04_5.10.35_2.0.0"
18 18
19BOOT_TOOLS = "imx-boot-tools" 19BOOT_TOOLS = "imx-boot-tools"
20 20
diff --git a/recipes-bsp/u-boot/u-boot-imx-mfgtool_2020.04.bb b/recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb
index 2b296c19..2b296c19 100644
--- a/recipes-bsp/u-boot/u-boot-imx-mfgtool_2020.04.bb
+++ b/recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb
diff --git a/recipes-bsp/u-boot/u-boot-imx_2020.04.bb b/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
index 058229e2..6a279a12 100644
--- a/recipes-bsp/u-boot/u-boot-imx_2020.04.bb
+++ b/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
@@ -3,12 +3,12 @@
3# Copyright (C) 2017-2021 NXP 3# Copyright (C) 2017-2021 NXP
4 4
5require recipes-bsp/u-boot/u-boot.inc 5require recipes-bsp/u-boot/u-boot.inc
6require u-boot-imx-common.inc 6require u-boot-imx-common_${PV}.inc
7 7
8PROVIDES += "u-boot" 8PROVIDES += "u-boot"
9 9
10do_deploy_append_mx8m() { 10do_deploy_append_mx8m() {
11 # Deploy the mkimage, u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary 11 # Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary
12 if [ -n "${UBOOT_CONFIG}" ] 12 if [ -n "${UBOOT_CONFIG}" ]
13 then 13 then
14 for config in ${UBOOT_MACHINE}; do 14 for config in ${UBOOT_MACHINE}; do
@@ -19,7 +19,7 @@ do_deploy_append_mx8m() {
19 then 19 then
20 install -d ${DEPLOYDIR}/${BOOT_TOOLS} 20 install -d ${DEPLOYDIR}/${BOOT_TOOLS}
21 install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} 21 install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
22 install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG} 22 install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${type}
23 fi 23 fi
24 done 24 done
25 unset j 25 unset j
diff --git a/recipes-bsp/u-boot/u-boot-mfgtool.inc b/recipes-bsp/u-boot/u-boot-mfgtool.inc
index 91526ad7..92d055bf 100644
--- a/recipes-bsp/u-boot/u-boot-mfgtool.inc
+++ b/recipes-bsp/u-boot/u-boot-mfgtool.inc
@@ -17,5 +17,5 @@ UBOOT_CONFIG = "mfgtool"
17# Add 'mfgtool' suffix 17# Add 'mfgtool' suffix
18UBOOT_IMAGE = "u-boot-${MACHINE}-mfgtool-${PV}-${PR}.${UBOOT_SUFFIX}" 18UBOOT_IMAGE = "u-boot-${MACHINE}-mfgtool-${PV}-${PR}.${UBOOT_SUFFIX}"
19UBOOT_SYMLINK = "u-boot-${MACHINE}-mfgtool.${UBOOT_SUFFIX}" 19UBOOT_SYMLINK = "u-boot-${MACHINE}-mfgtool.${UBOOT_SUFFIX}"
20SPL_IMAGE = "${SPL_BINARY}-${MACHINE}-mfgtool-${PV}-${PR}" 20SPL_IMAGE = "${SPL_BINARYNAME}-${MACHINE}-mfgtool-${PV}-${PR}"
21SPL_SYMLINK = "${SPL_BINARY}-mfgtool-${MACHINE}" 21SPL_SYMLINK = "${SPL_BINARYNAME}-mfgtool-${MACHINE}"
diff --git a/recipes-extended/tsntool/tsntool_git.bb b/recipes-extended/tsntool/tsntool_git.bb
index 94091db8..8ef79d27 100644
--- a/recipes-extended/tsntool/tsntool_git.bb
+++ b/recipes-extended/tsntool/tsntool_git.bb
@@ -8,7 +8,7 @@ DEPENDS = "cjson libnl readline"
8inherit pkgconfig 8inherit pkgconfig
9 9
10SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/tsntool;protocol=https;nobranch=1" 10SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/tsntool;protocol=https;nobranch=1"
11SRCREV = "1d1686e83c8f83472055189c278b837434990dcc" 11SRCREV = "3111f7f79e7d1b1a5e60f37fe76785559b2d0360"
12 12
13S = "${WORKDIR}/git" 13S = "${WORKDIR}/git"
14 14
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb b/recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb
deleted file mode 100644
index aeba7623..00000000
--- a/recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb
+++ /dev/null
@@ -1,13 +0,0 @@
1# Copyright 2019 NXP
2
3SUMMARY = "Qualcomm Wi-Fi support"
4
5inherit packagegroup
6
7RDEPENDS_${PN} = " \
8 kernel-module-qca6174 \
9 firmware-qca6174 \
10"
11
12COMPATIBLE_HOST = '(aarch64|arm).*-linux'
13COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb b/recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb
deleted file mode 100644
index 43df5a70..00000000
--- a/recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1# Copyright 2019 NXP
2
3SUMMARY = "Qualcomm Wi-Fi support"
4
5inherit packagegroup
6
7RDEPENDS_${PN} = " \
8 kernel-module-qca9377 \
9 firmware-qca9377 \
10"
11COMPATIBLE_HOST = '(aarch64|arm).*-linux'
12COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb b/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.9.2.bb
index 1176fa1a..af96367b 100644
--- a/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb
+++ b/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.9.2.bb
@@ -1,15 +1,15 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2019 NXP 2# Copyright 2017-2021 NXP
3# Released under the MIT license (see COPYING.MIT for the terms) 3# Released under the MIT license (see COPYING.MIT for the terms)
4 4
5DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and DPU" 5DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and DPU"
6LICENSE = "Proprietary" 6LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" 7LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
8PROVIDES += "virtual/libg2d" 8PROVIDES += "virtual/libg2d"
9 9
10SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 10SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
11SRC_URI[md5sum] = "51b1a54f303bea31325549e9fb1f0d04" 11SRC_URI[md5sum] = "a267c87677d600ecf07d4c8f42941532"
12SRC_URI[sha256sum] = "360012a32353bde233a548f25a8f99b18660059ea2655ab15335a967843ce3b9" 12SRC_URI[sha256sum] = "02e4e649f2af6c867cb666df10f032af48b0907e1529fa6c5958dad7e38aebbe"
13 13
14inherit fsl-eula-unpack 14inherit fsl-eula-unpack
15 15
diff --git a/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb b/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p2.0.bb
index 257ecf16..3527a709 100644
--- a/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb
+++ b/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p2.0.bb
@@ -1,11 +1,11 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2018 NXP 2# Copyright 2017-2021 NXP
3# Copyright 2018 (C) O.S. Systems Software LTDA. 3# Copyright 2018 (C) O.S. Systems Software LTDA.
4# Released under the MIT license (see COPYING.MIT for the terms) 4# Released under the MIT license (see COPYING.MIT for the terms)
5 5
6DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and no DPU" 6DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and no DPU"
7LICENSE = "Proprietary" 7LICENSE = "Proprietary"
8LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" 8LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
9 9
10DEPENDS += "libgal-imx" 10DEPENDS += "libgal-imx"
11PROVIDES += "virtual/libg2d" 11PROVIDES += "virtual/libg2d"
@@ -13,10 +13,10 @@ PROVIDES += "virtual/libg2d"
13FSLBIN_NAME = "${PN}-${PV}-${TARGET_ARCH}" 13FSLBIN_NAME = "${PN}-${PV}-${TARGET_ARCH}"
14 14
15SRC_URI = "${FSL_MIRROR}/${FSLBIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true" 15SRC_URI = "${FSL_MIRROR}/${FSLBIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true"
16SRC_URI[aarch64.md5sum] = "575eac63da712019bfe3ac4c616b2774" 16SRC_URI[aarch64.md5sum] = "baef64e3779f50098b7191e5246ce19f"
17SRC_URI[aarch64.sha256sum] = "017e8c40a51311bb384a427467ec6950f91879b9e36c48074dd29c6ca7db8c4f" 17SRC_URI[aarch64.sha256sum] = "2642a49e088daae4cf568a150d01e7c095995e8a6ff1883c02c3fa6d26d254b3"
18SRC_URI[arm.md5sum] = "9eab89a12949534a5a45050c24ba4cba" 18SRC_URI[arm.md5sum] = "865a92ddf68509a3cff5469536ff201a"
19SRC_URI[arm.sha256sum] = "a5ee498e47e52cbc56292d5ea8d71b5194775c750fa0415a43ea05ddb1acb08a" 19SRC_URI[arm.sha256sum] = "39fe307916e19a0892a514621121086e276a43858af90230372a1344852116a2"
20 20
21S = "${WORKDIR}/${FSLBIN_NAME}" 21S = "${WORKDIR}/${FSLBIN_NAME}"
22 22
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
index 9f55aaf9..95f36bf7 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
@@ -1,12 +1,12 @@
1# Copyright (C) 2012-2016 Freescale Semiconductor 1# Copyright (C) 2012-2016 Freescale Semiconductor
2# Copyright (C) 2012-2018 O.S. Systems Software LTDA. 2# Copyright (C) 2012-2018 O.S. Systems Software LTDA.
3# Copyright 2017-2020 NXP 3# Copyright 2017-2021 NXP
4# Released under the MIT license (see COPYING.MIT for the terms) 4# Released under the MIT license (see COPYING.MIT for the terms)
5 5
6DESCRIPTION = "GPU driver and apps for i.MX" 6DESCRIPTION = "GPU driver and apps for i.MX"
7SECTION = "libs" 7SECTION = "libs"
8LICENSE = "Proprietary" 8LICENSE = "Proprietary"
9LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" 9LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
10 10
11DEPENDS += " \ 11DEPENDS += " \
12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ 12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
@@ -82,13 +82,11 @@ PACKAGES =+ "libclc-imx libclc-imx-dev \
82 libvivante-dri-imx \ 82 libvivante-dri-imx \
83 libvsc-imx \ 83 libvsc-imx \
84 ${IMX_PACKAGES_GBM} \ 84 ${IMX_PACKAGES_GBM} \
85 libwayland-viv-imx libwayland-viv-imx-dev \
86 libgc-wayland-protocol-imx libgc-wayland-protocol-imx-dev \
87 imx-gpu-viv-tools \ 85 imx-gpu-viv-tools \
88 imx-gpu-viv-demos \ 86 imx-gpu-viv-demos \
89 libvulkan-imx libvulkan-imx-dev \ 87 libvulkan-imx libvulkan-imx-dev \
90 libopenvx-imx libopenvx-imx-dev \ 88 libopenvx-imx libopenvx-imx-dev \
91 libnn-imx libnn-imx-dev \ 89 libnn-imx \
92" 90"
93python __anonymous () { 91python __anonymous () {
94 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0') 92 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0')
@@ -99,10 +97,11 @@ python __anonymous () {
99USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}" 97USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
100USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}" 98USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
101 99
102# Inhibit warnings about files being stripped. 100# The packaged binaries have been stripped of debug info, so disable
103INHIBIT_PACKAGE_STRIP = "1" 101# operations accordingly.
104INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 102INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
105INSANE_SKIP_${BPN} += "already-stripped" 103INHIBIT_PACKAGE_STRIP = "1"
104INHIBIT_SYSROOT_STRIP = "1"
106 105
107# FIXME: The provided binary doesn't provide soname. If in future BSP 106# FIXME: The provided binary doesn't provide soname. If in future BSP
108# release the libraries are fixed, we can drop this hack. 107# release the libraries are fixed, we can drop this hack.
@@ -238,12 +237,6 @@ do_install () {
238 rm -f ${D}${includedir}/GLES3/${header} 237 rm -f ${D}${includedir}/GLES3/${header}
239 done 238 done
240 239
241 # skip packaging wayland libraries if no support is requested
242 if [ "${USE_WL}" = "no" ]; then
243 find ${D}${libdir} -name "libgc_wayland_protocol.*" -exec rm '{}' ';'
244 find ${D}${libdir} -name "libwayland-viv.*" -exec rm '{}' ';'
245 fi
246
247 # FIXME: MX6SL does not have 3D support; hack it for now 240 # FIXME: MX6SL does not have 3D support; hack it for now
248 if [ "${IS_MX6SL}" = "1" ]; then 241 if [ "${IS_MX6SL}" = "1" ]; then
249 rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \ 242 rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \
@@ -272,7 +265,7 @@ do_install () {
272 265
273ALLOW_EMPTY_${PN} = "1" 266ALLOW_EMPTY_${PN} = "1"
274 267
275FILES_libclc-imx = "${libdir}/libCLC${SOLIBS}" 268FILES_libclc-imx = "${libdir}/libCLC${SOLIBS} ${includedir}/CL/cl_viv_vx_ext.h"
276FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}" 269FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
277 270
278# libEGL.so is used by some demo apps from Freescale 271# libEGL.so is used by some demo apps from Freescale
@@ -347,21 +340,11 @@ FILES_libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
347FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so" 340FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so"
348RDEPENDS_libvivante-dri-imx = "libdrm" 341RDEPENDS_libvivante-dri-imx = "libdrm"
349 342
350INSANE_SKIP_libwayland-viv-imx += "dev-so"
351FILES_libwayland-viv-imx = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}"
352FILES_libwayland-viv-imx-dev = "${includedir}/wayland-viv ${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc"
353RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imx-vivante', '', d)}"
354
355INSANE_SKIP_libgc-wayland-protocol-imx += "dev-so"
356FILES_libgc-wayland-protocol-imx = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}"
357FILES_libgc-wayland-protocol-imx-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc"
358
359FILES_imx-gpu-viv-tools = "${bindir}/gmem_info" 343FILES_imx-gpu-viv-tools = "${bindir}/gmem_info"
360 344
361FILES_imx-gpu-viv-demos = "/opt" 345FILES_imx-gpu-viv-demos = "/opt"
362INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps" 346INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps"
363 347
364FILES_libnn-imx = "${libdir}/libNN*${SOLIBS} ${libdir}/libnn*${SOLIBS} ${libdir}/libneuralnetworks${SOLIBS}" 348FILES_libnn-imx = "${libdir}/libNN*${SOLIBS}"
365FILES_libnn-imx-dev = "${includedir}/nnrt"
366 349
367# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)" 350# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb
deleted file mode 100644
index b1b4bace..00000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require imx-gpu-viv-6.inc
2
3SRC_URI[md5sum] = "2493f1264458ac13572cf328ae78f280"
4SRC_URI[sha256sum] = "5f1579ac846dad3464e2e7c7569ea59c89bd12bc61b79344c1210d80e1ea91e1"
5
6COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch32.bb
index e6c1f8a3..e534f4e7 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch32.bb
@@ -4,7 +4,7 @@
4 4
5require imx-gpu-viv-6.inc 5require imx-gpu-viv-6.inc
6 6
7SRC_URI[md5sum] = "1270a84dcd0d0e985a8bfa9027988fb2" 7SRC_URI[md5sum] = "a5c945615c8145ca4aa3d9a69bfdd2f7"
8SRC_URI[sha256sum] = "ecdd5355f6aa0d154c3ddf575fde28d0212767d852d2843f3a75aba10c65cd46" 8SRC_URI[sha256sum] = "1324b1aaf190110b80ad9a6f6533f4f50dce9e9ab8d49d8503f59764b151d219"
9 9
10COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)" 10COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb
new file mode 100644
index 00000000..ff7f95f5
--- /dev/null
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb
@@ -0,0 +1,6 @@
1require imx-gpu-viv-6.inc
2
3SRC_URI[md5sum] = "ff63b1fb889ae9fe41f0cca14d62b69c"
4SRC_URI[sha256sum] = "003c30baefb1655790b475c3cdfa5cefbf81ea89ef37c6649b64f151dd23a52e"
5
6COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch
new file mode 100644
index 00000000..e0958558
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch
@@ -0,0 +1,47 @@
1From 3a6fe85a5f123f53319b5be8a69666174cad09cf Mon Sep 17 00:00:00 2001
2From: Julien Isorce <julien.isorce@gmail.com>
3Date: Thu, 6 Sep 2018 15:38:13 -0700
4Subject: [PATCH 1/8] xfree86: define FOURCC_NV12 and XVIMAGE_NV12
5
6Useful for glamor.
7
8Upstream-Status: Backport
9Signed-off-by: Julien Isorce <jisorce@oblong.com>
10Tested-by: Olivier Fourdan <ofourdan@redhat.com>
11Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12---
13 hw/xfree86/common/fourcc.h | 20 ++++++++++++++++++++
14 1 file changed, 20 insertions(+)
15
16diff --git a/hw/xfree86/common/fourcc.h b/hw/xfree86/common/fourcc.h
17index e6126b7fe..a19e6869e 100644
18--- a/hw/xfree86/common/fourcc.h
19+++ b/hw/xfree86/common/fourcc.h
20@@ -156,4 +156,24 @@
21 XvTopToBottom \
22 }
23
24+#define FOURCC_NV12 0x3231564e
25+#define XVIMAGE_NV12 \
26+ { \
27+ FOURCC_NV12, \
28+ XvYUV, \
29+ LSBFirst, \
30+ {'N','V','1','2', \
31+ 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71}, \
32+ 12, \
33+ XvPlanar, \
34+ 2, \
35+ 0, 0, 0, 0, \
36+ 8, 8, 8, \
37+ 1, 2, 2, \
38+ 1, 2, 2, \
39+ {'Y','U','V', \
40+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, \
41+ XvTopToBottom \
42+ }
43+
44 #endif /* _XF86_FOURCC_H_ */
45--
462.17.1
47
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch
new file mode 100644
index 00000000..78988373
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch
@@ -0,0 +1,116 @@
1From 7f46b31e3d80ca769f68a4ffb201d0fc4801ea93 Mon Sep 17 00:00:00 2001
2From: Julien Isorce <julien.isorce@gmail.com>
3Date: Thu, 6 Sep 2018 15:38:14 -0700
4Subject: [PATCH 2/8] glamor: add support for GL_RG
5
6Allow to upload the CbCr plane of an NV12 image into a GL texture.
7
8Upstream-Status: Backport
9Signed-off-by: Julien Isorce <jisorce@oblong.com>
10Tested-by: Olivier Fourdan <ofourdan@redhat.com>
11Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12---
13 glamor/glamor.c | 2 ++
14 glamor/glamor.h | 1 +
15 glamor/glamor_priv.h | 4 +++-
16 glamor/glamor_transfer.c | 10 ++++++++--
17 glamor/glamor_utils.h | 4 ++++
18 5 files changed, 18 insertions(+), 3 deletions(-)
19
20diff --git a/glamor/glamor.c b/glamor/glamor.c
21index abefef614..3e9cf284c 100644
22--- a/glamor/glamor.c
23+++ b/glamor/glamor.c
24@@ -222,6 +222,8 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
25
26 pixmap_priv = glamor_get_pixmap_private(pixmap);
27
28+ pixmap_priv->is_cbcr = (usage == GLAMOR_CREATE_FORMAT_CBCR);
29+
30 format = gl_iformat_for_pixmap(pixmap);
31
32 pitch = (((w * pixmap->drawable.bitsPerPixel + 7) / 8) + 3) & ~3;
33diff --git a/glamor/glamor.h b/glamor/glamor.h
34index be04bf858..e5992aa56 100644
35--- a/glamor/glamor.h
36+++ b/glamor/glamor.h
37@@ -129,6 +129,7 @@ extern _X_EXPORT Bool glamor_destroy_pixmap(PixmapPtr pixmap);
38 #define GLAMOR_CREATE_FBO_NO_FBO 0x103
39 #define GLAMOR_CREATE_NO_LARGE 0x105
40 #define GLAMOR_CREATE_PIXMAP_NO_TEXTURE 0x106
41+#define GLAMOR_CREATE_FORMAT_CBCR 0x107
42
43 /* @glamor_egl_exchange_buffers: Exchange the underlying buffers(KHR image,fbo).
44 *
45diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
46index 4353a99f1..a14aaf624 100644
47--- a/glamor/glamor_priv.h
48+++ b/glamor/glamor_priv.h
49@@ -380,6 +380,8 @@ typedef struct glamor_pixmap_private {
50 * names.
51 */
52 glamor_pixmap_fbo **fbo_array;
53+
54+ Bool is_cbcr;
55 } glamor_pixmap_private;
56
57 extern DevPrivateKeyRec glamor_pixmap_private_key;
58@@ -902,7 +904,7 @@ int glamor_xv_put_image(glamor_port_private *port_priv,
59 Bool sync,
60 RegionPtr clipBoxes);
61 void glamor_xv_core_init(ScreenPtr screen);
62-void glamor_xv_render(glamor_port_private *port_priv);
63+void glamor_xv_render(glamor_port_private *port_priv, int id);
64
65 #include "glamor_utils.h"
66
67diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c
68index ebb5101d1..421ed3a5f 100644
69--- a/glamor/glamor_transfer.c
70+++ b/glamor/glamor_transfer.c
71@@ -27,6 +27,7 @@
72 void
73 glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
74 {
75+ glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
76 switch (pixmap->drawable.depth) {
77 case 24:
78 case 32:
79@@ -38,8 +39,13 @@ glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
80 *type = GL_UNSIGNED_INT_2_10_10_10_REV;
81 break;
82 case 16:
83- *format = GL_RGB;
84- *type = GL_UNSIGNED_SHORT_5_6_5;
85+ if (priv->is_cbcr) {
86+ *format = priv->fbo->format;
87+ *type = GL_UNSIGNED_BYTE;
88+ } else {
89+ *format = GL_RGB;
90+ *type = GL_UNSIGNED_SHORT_5_6_5;
91+ }
92 break;
93 case 15:
94 *format = GL_BGRA;
95diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
96index 0d5674d63..1890c1fe5 100644
97--- a/glamor/glamor_utils.h
98+++ b/glamor/glamor_utils.h
99@@ -613,10 +613,14 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
100 {
101 glamor_screen_private *glamor_priv =
102 glamor_get_screen_private((pixmap)->drawable.pScreen);
103+ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
104
105 if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
106 ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
107 return glamor_priv->one_channel_format;
108+ } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
109+ (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
110+ return GL_RG;
111 } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
112 (pixmap)->drawable.depth == 30) {
113 return GL_RGB10_A2;
114--
1152.17.1
116
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch
new file mode 100644
index 00000000..855d1938
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch
@@ -0,0 +1,322 @@
1From 17a3528162304f1586329aabd606d3498bfe48a5 Mon Sep 17 00:00:00 2001
2From: Julien Isorce <julien.isorce@gmail.com>
3Date: Tue, 11 Sep 2018 10:28:33 -0700
4Subject: [PATCH 3/8] glamor: add support for NV12 in Xv
5
6Useful when video decoders only output NV12. Currently
7glamor Xv only supports I420 and YV12.
8
9Note that Intel's sna supports I420, YV12, YUY2, UYVY, NV12.
10
11Test: xvinfo | grep NV12
12Test: gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! xvimagesink
13
14v2: Combine the two texture2Ds on u_sampler.
15
16Upstream-Status: Backport
17Signed-off-by: Julien Isorce <jisorce@oblong.com>
18Tested-by: Olivier Fourdan <ofourdan@redhat.com>
19Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
20---
21 glamor/glamor_xv.c | 180 ++++++++++++++++++++++++++++++++++++++-------
22 1 file changed, 155 insertions(+), 25 deletions(-)
23
24diff --git a/glamor/glamor_xv.c b/glamor/glamor_xv.c
25index 62fc4fff5..6fef6ed0d 100644
26--- a/glamor/glamor_xv.c
27+++ b/glamor/glamor_xv.c
28@@ -59,8 +59,40 @@ typedef struct tagREF_TRANSFORM {
29 #define RTFContrast(a) (1.0 + ((a)*1.0)/1000.0)
30 #define RTFHue(a) (((a)*3.1416)/1000.0)
31
32-static const glamor_facet glamor_facet_xv_planar = {
33- .name = "xv_planar",
34+static const glamor_facet glamor_facet_xv_planar_2 = {
35+ .name = "xv_planar_2",
36+
37+ .version = 120,
38+
39+ .source_name = "v_texcoord0",
40+ .vs_vars = ("attribute vec2 position;\n"
41+ "attribute vec2 v_texcoord0;\n"
42+ "varying vec2 tcs;\n"),
43+ .vs_exec = (GLAMOR_POS(gl_Position, position)
44+ " tcs = v_texcoord0;\n"),
45+
46+ .fs_vars = ("uniform sampler2D y_sampler;\n"
47+ "uniform sampler2D u_sampler;\n"
48+ "uniform vec4 offsetyco;\n"
49+ "uniform vec4 ucogamma;\n"
50+ "uniform vec4 vco;\n"
51+ "varying vec2 tcs;\n"),
52+ .fs_exec = (
53+ " float sample;\n"
54+ " vec2 sample_uv;\n"
55+ " vec4 temp1;\n"
56+ " sample = texture2D(y_sampler, tcs).w;\n"
57+ " temp1.xyz = offsetyco.www * vec3(sample) + offsetyco.xyz;\n"
58+ " sample_uv = texture2D(u_sampler, tcs).xy;\n"
59+ " temp1.xyz = ucogamma.xyz * vec3(sample_uv.x) + temp1.xyz;\n"
60+ " temp1.xyz = clamp(vco.xyz * vec3(sample_uv.y) + temp1.xyz, 0.0, 1.0);\n"
61+ " temp1.w = 1.0;\n"
62+ " gl_FragColor = temp1;\n"
63+ ),
64+};
65+
66+static const glamor_facet glamor_facet_xv_planar_3 = {
67+ .name = "xv_planar_3",
68
69 .version = 120,
70
71@@ -110,26 +142,50 @@ Atom glamorBrightness, glamorContrast, glamorSaturation, glamorHue,
72 XvImageRec glamor_xv_images[] = {
73 XVIMAGE_YV12,
74 XVIMAGE_I420,
75+ XVIMAGE_NV12
76 };
77 int glamor_xv_num_images = ARRAY_SIZE(glamor_xv_images);
78
79 static void
80-glamor_init_xv_shader(ScreenPtr screen)
81+glamor_init_xv_shader(ScreenPtr screen, int id)
82 {
83 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
84 GLint sampler_loc;
85+ const glamor_facet *glamor_facet_xv_planar = NULL;
86+
87+ switch (id) {
88+ case FOURCC_YV12:
89+ case FOURCC_I420:
90+ glamor_facet_xv_planar = &glamor_facet_xv_planar_3;
91+ break;
92+ case FOURCC_NV12:
93+ glamor_facet_xv_planar = &glamor_facet_xv_planar_2;
94+ break;
95+ default:
96+ break;
97+ }
98
99 glamor_build_program(screen,
100 &glamor_priv->xv_prog,
101- &glamor_facet_xv_planar, NULL, NULL, NULL);
102+ glamor_facet_xv_planar, NULL, NULL, NULL);
103
104 glUseProgram(glamor_priv->xv_prog.prog);
105 sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "y_sampler");
106 glUniform1i(sampler_loc, 0);
107 sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "u_sampler");
108 glUniform1i(sampler_loc, 1);
109- sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "v_sampler");
110- glUniform1i(sampler_loc, 2);
111+
112+ switch (id) {
113+ case FOURCC_YV12:
114+ case FOURCC_I420:
115+ sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "v_sampler");
116+ glUniform1i(sampler_loc, 2);
117+ break;
118+ case FOURCC_NV12:
119+ break;
120+ default:
121+ break;
122+ }
123
124 }
125
126@@ -227,6 +283,21 @@ glamor_xv_query_image_attributes(int id,
127 offsets[2] = size;
128 size += tmp;
129 break;
130+ case FOURCC_NV12:
131+ *w = ALIGN(*w, 2);
132+ *h = ALIGN(*h, 2);
133+ size = ALIGN(*w, 4);
134+ if (pitches)
135+ pitches[0] = size;
136+ size *= *h;
137+ if (offsets)
138+ offsets[1] = offsets[2] = size;
139+ tmp = ALIGN(*w, 4);
140+ if (pitches)
141+ pitches[1] = pitches[2] = tmp;
142+ tmp *= (*h >> 1);
143+ size += tmp;
144+ break;
145 }
146 return size;
147 }
148@@ -240,7 +311,7 @@ static REF_TRANSFORM trans[2] = {
149 };
150
151 void
152-glamor_xv_render(glamor_port_private *port_priv)
153+glamor_xv_render(glamor_port_private *port_priv, int id)
154 {
155 ScreenPtr screen = port_priv->pPixmap->drawable.pScreen;
156 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
157@@ -264,7 +335,7 @@ glamor_xv_render(glamor_port_private *port_priv)
158 int dst_box_index;
159
160 if (!glamor_priv->xv_prog.prog)
161- glamor_init_xv_shader(screen);
162+ glamor_init_xv_shader(screen, id);
163
164 cont = RTFContrast(port_priv->contrast);
165 bright = RTFBrightness(port_priv->brightness);
166@@ -293,6 +364,8 @@ glamor_xv_render(glamor_port_private *port_priv)
167 glamor_get_pixmap_private(port_priv->src_pix[i]);
168 pixmap_priv_get_scale(src_pixmap_priv[i], &src_xscale[i],
169 &src_yscale[i]);
170+ } else {
171+ src_pixmap_priv[i] = NULL;
172 }
173 }
174 glamor_make_current(glamor_priv);
175@@ -319,12 +392,21 @@ glamor_xv_render(glamor_port_private *port_priv)
176 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
177 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
178
179- glActiveTexture(GL_TEXTURE2);
180- glBindTexture(GL_TEXTURE_2D, src_pixmap_priv[2]->fbo->tex);
181- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
182- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
183- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
184- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
185+ switch (id) {
186+ case FOURCC_YV12:
187+ case FOURCC_I420:
188+ glActiveTexture(GL_TEXTURE2);
189+ glBindTexture(GL_TEXTURE_2D, src_pixmap_priv[2]->fbo->tex);
190+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
191+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
192+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
193+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
194+ break;
195+ case FOURCC_NV12:
196+ break;
197+ default:
198+ break;
199+ }
200
201 glEnableVertexAttribArray(GLAMOR_VERTEX_POS);
202 glEnableVertexAttribArray(GLAMOR_VERTEX_SOURCE);
203@@ -336,7 +418,7 @@ glamor_xv_render(glamor_port_private *port_priv)
204 /* Set up a single primitive covering the area being drawn. We'll
205 * clip it to port_priv->clip using GL scissors instead of just
206 * emitting a GL_QUAD per box, because this way we hopefully avoid
207- * diagonal tearing between the two trangles used to rasterize a
208+ * diagonal tearing between the two triangles used to rasterize a
209 * GL_QUAD.
210 */
211 i = 0;
212@@ -417,6 +499,7 @@ glamor_xv_put_image(glamor_port_private *port_priv,
213 RegionPtr clipBoxes)
214 {
215 ScreenPtr pScreen = pDrawable->pScreen;
216+ glamor_screen_private *glamor_priv = glamor_get_screen_private(pScreen);
217 int srcPitch, srcPitch2;
218 int top, nlines;
219 int s2offset, s3offset, tmp;
220@@ -425,9 +508,16 @@ glamor_xv_put_image(glamor_port_private *port_priv,
221 s2offset = s3offset = srcPitch2 = 0;
222
223 if (!port_priv->src_pix[0] ||
224- (width != port_priv->src_pix_w || height != port_priv->src_pix_h)) {
225+ (width != port_priv->src_pix_w || height != port_priv->src_pix_h) ||
226+ (port_priv->src_pix[2] && id == FOURCC_NV12) ||
227+ (!port_priv->src_pix[2] && id != FOURCC_NV12)) {
228 int i;
229
230+ if (glamor_priv->xv_prog.prog) {
231+ glDeleteProgram(glamor_priv->xv_prog.prog);
232+ glamor_priv->xv_prog.prog = 0;
233+ }
234+
235 for (i = 0; i < 3; i++)
236 if (port_priv->src_pix[i])
237 glamor_destroy_pixmap(port_priv->src_pix[i]);
238@@ -435,17 +525,34 @@ glamor_xv_put_image(glamor_port_private *port_priv,
239 port_priv->src_pix[0] =
240 glamor_create_pixmap(pScreen, width, height, 8,
241 GLAMOR_CREATE_FBO_NO_FBO);
242- port_priv->src_pix[1] =
243- glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
244- GLAMOR_CREATE_FBO_NO_FBO);
245- port_priv->src_pix[2] =
246- glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
247- GLAMOR_CREATE_FBO_NO_FBO);
248+
249+ switch (id) {
250+ case FOURCC_YV12:
251+ case FOURCC_I420:
252+ port_priv->src_pix[1] =
253+ glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
254+ GLAMOR_CREATE_FBO_NO_FBO);
255+ port_priv->src_pix[2] =
256+ glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
257+ GLAMOR_CREATE_FBO_NO_FBO);
258+ if (!port_priv->src_pix[2])
259+ return BadAlloc;
260+ break;
261+ case FOURCC_NV12:
262+ port_priv->src_pix[1] =
263+ glamor_create_pixmap(pScreen, width >> 1, height >> 1, 16,
264+ GLAMOR_CREATE_FBO_NO_FBO |
265+ GLAMOR_CREATE_FORMAT_CBCR);
266+ port_priv->src_pix[2] = NULL;
267+ break;
268+ default:
269+ return BadMatch;
270+ }
271+
272 port_priv->src_pix_w = width;
273 port_priv->src_pix_h = height;
274
275- if (!port_priv->src_pix[0] || !port_priv->src_pix[1] ||
276- !port_priv->src_pix[2])
277+ if (!port_priv->src_pix[0] || !port_priv->src_pix[1])
278 return BadAlloc;
279 }
280
281@@ -489,6 +596,29 @@ glamor_xv_put_image(glamor_port_private *port_priv,
282 0, 0, 0, 0,
283 buf + s3offset, srcPitch2);
284 break;
285+ case FOURCC_NV12:
286+ srcPitch = ALIGN(width, 4);
287+ s2offset = srcPitch * height;
288+ s2offset += ((top >> 1) * srcPitch);
289+
290+ full_box.x1 = 0;
291+ full_box.y1 = 0;
292+ full_box.x2 = width;
293+ full_box.y2 = nlines;
294+
295+ half_box.x1 = 0;
296+ half_box.y1 = 0;
297+ half_box.x2 = width;
298+ half_box.y2 = (nlines + 1) >> 1;
299+
300+ glamor_upload_boxes(port_priv->src_pix[0], &full_box, 1,
301+ 0, 0, 0, 0,
302+ buf + (top * srcPitch), srcPitch);
303+
304+ glamor_upload_boxes(port_priv->src_pix[1], &half_box, 1,
305+ 0, 0, 0, 0,
306+ buf + s2offset, srcPitch);
307+ break;
308 default:
309 return BadMatch;
310 }
311@@ -511,7 +641,7 @@ glamor_xv_put_image(glamor_port_private *port_priv,
312 port_priv->w = width;
313 port_priv->h = height;
314 port_priv->pDraw = pDrawable;
315- glamor_xv_render(port_priv);
316+ glamor_xv_render(port_priv, id);
317 return Success;
318 }
319
320--
3212.17.1
322
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch
new file mode 100644
index 00000000..c116576f
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch
@@ -0,0 +1,31 @@
1From 69892ca6a623057ed4e3be0c22cb7fd812425024 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
3Date: Wed, 19 Dec 2018 10:11:22 +0100
4Subject: [PATCH 4/8] glamor: Remove unused format_for_pixmap helper
5
6Upstream-Status: Backport
7Reviewed-by: Eric Anholt <eric@anholt.net>
8---
9 glamor/glamor_utils.h | 6 ------
10 1 file changed, 6 deletions(-)
11
12diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
13index 1890c1fe5..8a147ca7e 100644
14--- a/glamor/glamor_utils.h
15+++ b/glamor/glamor_utils.h
16@@ -629,12 +629,6 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
17 }
18 }
19
20-static inline CARD32
21-format_for_pixmap(PixmapPtr pixmap)
22-{
23- return format_for_depth((pixmap)->drawable.depth);
24-}
25-
26 #define REVERT_NONE 0
27 #define REVERT_NORMAL 1
28 #define REVERT_UPLOADING_A1 3
29--
302.17.1
31
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch
new file mode 100644
index 00000000..9a0aa7ab
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch
@@ -0,0 +1,132 @@
1From 2498f6712c3b551c4d8104628aff78246b5cd6c8 Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:58:59 -0700
4Subject: [PATCH 5/8] glamor: Stop trying to store the pixmap's "format" in
5 glamor_pixmap_fbo.
6
7"format" is a bit of a confused term (internalformat vs GL format),
8and all we really needed was "is this GL_RED?"
9
10Upstream-Status: Backport
11Signed-off-by: Eric Anholt <eric@anholt.net>
12---
13 glamor/glamor.c | 3 +--
14 glamor/glamor_fbo.c | 7 ++++---
15 glamor/glamor_priv.h | 13 ++-----------
16 glamor/glamor_render.c | 2 +-
17 glamor/glamor_transfer.c | 2 +-
18 5 files changed, 9 insertions(+), 18 deletions(-)
19
20diff --git a/glamor/glamor.c b/glamor/glamor.c
21index 3e9cf284c..c36b6ea74 100644
22--- a/glamor/glamor.c
23+++ b/glamor/glamor.c
24@@ -184,8 +184,7 @@ glamor_bind_texture(glamor_screen_private *glamor_priv, GLenum texture,
25 /* Is the operand a GL_RED fbo?
26 */
27
28- if (glamor_fbo_red_is_alpha(glamor_priv, fbo)) {
29-
30+ if (fbo->is_red) {
31 /* If destination is also GL_RED, then preserve the bits in
32 * the R channel */
33
34diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
35index f939a6c2f..58eb97bf4 100644
36--- a/glamor/glamor_fbo.c
37+++ b/glamor/glamor_fbo.c
38@@ -95,7 +95,7 @@ glamor_pixmap_ensure_fb(glamor_screen_private *glamor_priv,
39
40 glamor_pixmap_fbo *
41 glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
42- int w, int h, GLenum format, GLint tex, int flag)
43+ int w, int h, Bool is_red, GLint tex, int flag)
44 {
45 glamor_pixmap_fbo *fbo;
46
47@@ -106,7 +106,7 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
48 fbo->tex = tex;
49 fbo->width = w;
50 fbo->height = h;
51- fbo->format = format;
52+ fbo->is_red = is_red;
53
54 if (flag != GLAMOR_CREATE_FBO_NO_FBO) {
55 if (glamor_pixmap_ensure_fb(glamor_priv, fbo) != 0) {
56@@ -163,7 +163,8 @@ glamor_create_fbo(glamor_screen_private *glamor_priv,
57 if (!tex) /* Texture creation failed due to GL_OUT_OF_MEMORY */
58 return NULL;
59
60- return glamor_create_fbo_from_tex(glamor_priv, w, h, format, tex, flag);
61+ return glamor_create_fbo_from_tex(glamor_priv, w, h, format == GL_RED,
62+ tex, flag);
63 }
64
65 /**
66diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
67index a14aaf624..e70d349da 100644
68--- a/glamor/glamor_priv.h
69+++ b/glamor/glamor_priv.h
70@@ -317,8 +317,7 @@ typedef struct glamor_pixmap_fbo {
71 GLuint fb; /**< GL FBO name */
72 int width; /**< width in pixels */
73 int height; /**< height in pixels */
74- GLenum format; /**< GL format used to create the texture. */
75- GLenum type; /**< GL type used to create the texture. */
76+ Bool is_red;
77 } glamor_pixmap_fbo;
78
79 typedef struct glamor_pixmap_clipped_regions {
80@@ -533,7 +532,7 @@ glamor_pixmap_fbo *glamor_pixmap_detach_fbo(glamor_pixmap_private *
81 void glamor_pixmap_attach_fbo(PixmapPtr pixmap, glamor_pixmap_fbo *fbo);
82 glamor_pixmap_fbo *glamor_create_fbo_from_tex(glamor_screen_private *
83 glamor_priv, int w, int h,
84- GLenum format, GLint tex,
85+ Bool is_red, GLint tex,
86 int flag);
87 glamor_pixmap_fbo *glamor_create_fbo(glamor_screen_private *glamor_priv, int w,
88 int h, GLenum format, int flag);
89@@ -549,14 +548,6 @@ static inline Bool glamor_picture_is_alpha(PicturePtr picture)
90 return picture->format == PICT_a1 || picture->format == PICT_a8;
91 }
92
93-/* Return whether 'fbo' is storing alpha bits in the red channel */
94-static inline Bool
95-glamor_fbo_red_is_alpha(glamor_screen_private *glamor_priv, glamor_pixmap_fbo *fbo)
96-{
97- /* True when the format is GL_RED (that can only happen when our one channel format is GL_RED */
98- return fbo->format == GL_RED;
99-}
100-
101 /* Return whether 'picture' is storing alpha bits in the red channel */
102 static inline Bool
103 glamor_picture_red_is_alpha(PicturePtr picture)
104diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
105index d5737018f..6db6bfbc3 100644
106--- a/glamor/glamor_render.c
107+++ b/glamor/glamor_render.c
108@@ -529,7 +529,7 @@ glamor_set_composite_texture(glamor_screen_private *glamor_priv, int unit,
109 * sometimes get zero bits in the R channel, which is harmless.
110 */
111 glamor_bind_texture(glamor_priv, GL_TEXTURE0 + unit, fbo,
112- glamor_fbo_red_is_alpha(glamor_priv, dest_priv->fbo));
113+ dest_priv->fbo->is_red);
114 repeat_type = picture->repeatType;
115 switch (picture->repeatType) {
116 case RepeatNone:
117diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c
118index 421ed3a5f..215752d7b 100644
119--- a/glamor/glamor_transfer.c
120+++ b/glamor/glamor_transfer.c
121@@ -40,7 +40,7 @@ glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
122 break;
123 case 16:
124 if (priv->is_cbcr) {
125- *format = priv->fbo->format;
126+ *format = GL_RG;
127 *type = GL_UNSIGNED_BYTE;
128 } else {
129 *format = GL_RGB;
130--
1312.17.1
132
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch
new file mode 100644
index 00000000..66d2877c
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch
@@ -0,0 +1,265 @@
1From 3c14a16e1b4277aa00a2b23d5758d99dc20ca819 Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 16:57:24 -0700
4Subject: [PATCH 6/8] glamor: Plumb the pixmap through fbo creation instead of
5 a "format"
6
7For GLES, we're going to need a lot more logic for picking the
8iformat/format/type of texture setup, so we'll want the pixmap's depth
9and is_cbcr flag.
10
11Upstream-Status: Backport
12Signed-off-by: Eric Anholt <eric@anholt.net>
13---
14 glamor/glamor.c | 20 +++++++-------------
15 glamor/glamor_fbo.c | 33 +++++++++++++++++++--------------
16 glamor/glamor_picture.c | 2 +-
17 glamor/glamor_priv.h | 12 ++++++------
18 4 files changed, 33 insertions(+), 34 deletions(-)
19
20diff --git a/glamor/glamor.c b/glamor/glamor.c
21index c36b6ea74..f618c2128 100644
22--- a/glamor/glamor.c
23+++ b/glamor/glamor.c
24@@ -106,7 +106,6 @@ glamor_set_pixmap_texture(PixmapPtr pixmap, unsigned int tex)
25 glamor_pixmap_private *pixmap_priv;
26 glamor_screen_private *glamor_priv;
27 glamor_pixmap_fbo *fbo;
28- GLenum format;
29
30 glamor_priv = glamor_get_screen_private(screen);
31 pixmap_priv = glamor_get_pixmap_private(pixmap);
32@@ -116,9 +115,9 @@ glamor_set_pixmap_texture(PixmapPtr pixmap, unsigned int tex)
33 glamor_destroy_fbo(glamor_priv, fbo);
34 }
35
36- format = gl_iformat_for_pixmap(pixmap);
37- fbo = glamor_create_fbo_from_tex(glamor_priv, pixmap->drawable.width,
38- pixmap->drawable.height, format, tex, 0);
39+ fbo = glamor_create_fbo_from_tex(glamor_priv, pixmap,
40+ pixmap->drawable.width,
41+ pixmap->drawable.height, tex, 0);
42
43 if (fbo == NULL) {
44 ErrorF("XXX fail to create fbo.\n");
45@@ -204,7 +203,6 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
46 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
47 glamor_pixmap_fbo *fbo = NULL;
48 int pitch;
49- GLenum format;
50
51 if (w > 32767 || h > 32767)
52 return NullPixmap;
53@@ -223,8 +221,6 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
54
55 pixmap_priv->is_cbcr = (usage == GLAMOR_CREATE_FORMAT_CBCR);
56
57- format = gl_iformat_for_pixmap(pixmap);
58-
59 pitch = (((w * pixmap->drawable.bitsPerPixel + 7) / 8) + 3) & ~3;
60 screen->ModifyPixmapHeader(pixmap, w, h, 0, 0, pitch, NULL);
61
62@@ -238,12 +234,12 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
63 glamor_check_fbo_size(glamor_priv, w, h))
64 {
65 glamor_init_pixmap_private_small(pixmap, pixmap_priv);
66- fbo = glamor_create_fbo(glamor_priv, w, h, format, usage);
67+ fbo = glamor_create_fbo(glamor_priv, pixmap, w, h, usage);
68 } else {
69 int tile_size = glamor_priv->max_fbo_size;
70 DEBUGF("Create LARGE pixmap %p width %d height %d, tile size %d\n",
71 pixmap, w, h, tile_size);
72- fbo = glamor_create_fbo_array(glamor_priv, w, h, format, usage,
73+ fbo = glamor_create_fbo_array(glamor_priv, pixmap, usage,
74 tile_size, tile_size, pixmap_priv);
75 }
76
77@@ -860,8 +856,7 @@ _glamor_fds_from_pixmap(ScreenPtr screen, PixmapPtr pixmap, int *fds,
78 switch (pixmap_priv->type) {
79 case GLAMOR_TEXTURE_DRM:
80 case GLAMOR_TEXTURE_ONLY:
81- if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
82- GL_RGB10_A2 : GL_RGBA, 0))
83+ if (!glamor_pixmap_ensure_fbo(pixmap, 0))
84 return 0;
85
86 if (modifier) {
87@@ -937,8 +932,7 @@ glamor_name_from_pixmap(PixmapPtr pixmap, CARD16 *stride, CARD32 *size)
88 switch (pixmap_priv->type) {
89 case GLAMOR_TEXTURE_DRM:
90 case GLAMOR_TEXTURE_ONLY:
91- if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
92- GL_RGB10_A2 : GL_RGBA, 0))
93+ if (!glamor_pixmap_ensure_fbo(pixmap, 0))
94 return -1;
95 return glamor_egl_fd_name_from_pixmap(pixmap->drawable.pScreen,
96 pixmap, stride, size);
97diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
98index 58eb97bf4..75f7e2baa 100644
99--- a/glamor/glamor_fbo.c
100+++ b/glamor/glamor_fbo.c
101@@ -95,8 +95,9 @@ glamor_pixmap_ensure_fb(glamor_screen_private *glamor_priv,
102
103 glamor_pixmap_fbo *
104 glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
105- int w, int h, Bool is_red, GLint tex, int flag)
106+ PixmapPtr pixmap, int w, int h, GLint tex, int flag)
107 {
108+ GLenum format = gl_iformat_for_pixmap(pixmap);
109 glamor_pixmap_fbo *fbo;
110
111 fbo = calloc(1, sizeof(*fbo));
112@@ -106,7 +107,7 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
113 fbo->tex = tex;
114 fbo->width = w;
115 fbo->height = h;
116- fbo->is_red = is_red;
117+ fbo->is_red = format == GL_RED;
118
119 if (flag != GLAMOR_CREATE_FBO_NO_FBO) {
120 if (glamor_pixmap_ensure_fb(glamor_priv, fbo) != 0) {
121@@ -120,13 +121,15 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
122
123 static int
124 _glamor_create_tex(glamor_screen_private *glamor_priv,
125- int w, int h, GLenum format)
126+ PixmapPtr pixmap, int w, int h)
127 {
128+ GLenum iformat = gl_iformat_for_pixmap(pixmap);
129+ GLenum format = iformat;
130 unsigned int tex;
131- GLenum iformat = format;
132
133 if (format == GL_RGB10_A2)
134 format = GL_RGBA;
135+
136 glamor_make_current(glamor_priv);
137 glGenTextures(1, &tex);
138 glBindTexture(GL_TEXTURE_2D, tex);
139@@ -156,14 +159,14 @@ _glamor_create_tex(glamor_screen_private *glamor_priv,
140
141 glamor_pixmap_fbo *
142 glamor_create_fbo(glamor_screen_private *glamor_priv,
143- int w, int h, GLenum format, int flag)
144+ PixmapPtr pixmap, int w, int h, int flag)
145 {
146- GLint tex = _glamor_create_tex(glamor_priv, w, h, format);
147+ GLint tex = _glamor_create_tex(glamor_priv, pixmap, w, h);
148
149 if (!tex) /* Texture creation failed due to GL_OUT_OF_MEMORY */
150 return NULL;
151
152- return glamor_create_fbo_from_tex(glamor_priv, w, h, format == GL_RED,
153+ return glamor_create_fbo_from_tex(glamor_priv, pixmap, w, h,
154 tex, flag);
155 }
156
157@@ -173,10 +176,12 @@ glamor_create_fbo(glamor_screen_private *glamor_priv,
158 */
159 glamor_pixmap_fbo *
160 glamor_create_fbo_array(glamor_screen_private *glamor_priv,
161- int w, int h, GLenum format, int flag,
162+ PixmapPtr pixmap, int flag,
163 int block_w, int block_h,
164 glamor_pixmap_private *priv)
165 {
166+ int w = pixmap->drawable.width;
167+ int h = pixmap->drawable.height;
168 int block_wcnt;
169 int block_hcnt;
170 glamor_pixmap_fbo **fbo_array;
171@@ -216,8 +221,8 @@ glamor_create_fbo_array(glamor_screen_private *glamor_priv,
172 box_array[i * block_wcnt + j].x2 - box_array[i * block_wcnt +
173 j].x1;
174 fbo_array[i * block_wcnt + j] = glamor_create_fbo(glamor_priv,
175+ pixmap,
176 fbo_w, fbo_h,
177- format,
178 GLAMOR_CREATE_PIXMAP_FIXUP);
179 if (fbo_array[i * block_wcnt + j] == NULL)
180 goto cleanup;
181@@ -315,7 +320,7 @@ glamor_pixmap_destroy_fbo(PixmapPtr pixmap)
182 }
183
184 Bool
185-glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag)
186+glamor_pixmap_ensure_fbo(PixmapPtr pixmap, int flag)
187 {
188 glamor_screen_private *glamor_priv;
189 glamor_pixmap_private *pixmap_priv;
190@@ -325,8 +330,8 @@ glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag)
191 pixmap_priv = glamor_get_pixmap_private(pixmap);
192 if (pixmap_priv->fbo == NULL) {
193
194- fbo = glamor_create_fbo(glamor_priv, pixmap->drawable.width,
195- pixmap->drawable.height, format, flag);
196+ fbo = glamor_create_fbo(glamor_priv, pixmap, pixmap->drawable.width,
197+ pixmap->drawable.height, flag);
198 if (fbo == NULL)
199 return FALSE;
200
201@@ -336,8 +341,8 @@ glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag)
202 /* We do have a fbo, but it may lack of fb or tex. */
203 if (!pixmap_priv->fbo->tex)
204 pixmap_priv->fbo->tex =
205- _glamor_create_tex(glamor_priv, pixmap->drawable.width,
206- pixmap->drawable.height, format);
207+ _glamor_create_tex(glamor_priv, pixmap, pixmap->drawable.width,
208+ pixmap->drawable.height);
209
210 if (flag != GLAMOR_CREATE_FBO_NO_FBO && pixmap_priv->fbo->fb == 0)
211 if (glamor_pixmap_ensure_fb(glamor_priv, pixmap_priv->fbo) != 0)
212diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
213index 685d8d618..e6d387d42 100644
214--- a/glamor/glamor_picture.c
215+++ b/glamor/glamor_picture.c
216@@ -340,7 +340,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
217 else
218 iformat = format;
219
220- if (!glamor_pixmap_ensure_fbo(pixmap, iformat, GLAMOR_CREATE_FBO_NO_FBO)) {
221+ if (!glamor_pixmap_ensure_fbo(pixmap, GLAMOR_CREATE_FBO_NO_FBO)) {
222 ret = FALSE;
223 goto fail;
224 }
225diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
226index e70d349da..a87caec9b 100644
227--- a/glamor/glamor_priv.h
228+++ b/glamor/glamor_priv.h
229@@ -531,11 +531,11 @@ glamor_pixmap_fbo *glamor_pixmap_detach_fbo(glamor_pixmap_private *
230 pixmap_priv);
231 void glamor_pixmap_attach_fbo(PixmapPtr pixmap, glamor_pixmap_fbo *fbo);
232 glamor_pixmap_fbo *glamor_create_fbo_from_tex(glamor_screen_private *
233- glamor_priv, int w, int h,
234- Bool is_red, GLint tex,
235+ glamor_priv, PixmapPtr pixmap,
236+ int w, int h, GLint tex,
237 int flag);
238-glamor_pixmap_fbo *glamor_create_fbo(glamor_screen_private *glamor_priv, int w,
239- int h, GLenum format, int flag);
240+glamor_pixmap_fbo *glamor_create_fbo(glamor_screen_private *glamor_priv,
241+ PixmapPtr pixmap, int w, int h, int flag);
242 void glamor_destroy_fbo(glamor_screen_private *glamor_priv,
243 glamor_pixmap_fbo *fbo);
244 void glamor_pixmap_destroy_fbo(PixmapPtr pixmap);
245@@ -563,7 +563,7 @@ void glamor_bind_texture(glamor_screen_private *glamor_priv,
246 Bool destination_red);
247
248 glamor_pixmap_fbo *glamor_create_fbo_array(glamor_screen_private *glamor_priv,
249- int w, int h, GLenum format,
250+ PixmapPtr pixmap,
251 int flag, int block_w, int block_h,
252 glamor_pixmap_private *);
253
254@@ -673,7 +673,7 @@ glamor_put_vbo_space(ScreenPtr screen);
255 * the fbo has valid texture and attach to a valid fb.
256 * If the fbo already has a valid glfbo then do nothing.
257 */
258-Bool glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag);
259+Bool glamor_pixmap_ensure_fbo(PixmapPtr pixmap, int flag);
260
261 glamor_pixmap_clipped_regions *
262 glamor_compute_clipped_regions(PixmapPtr pixmap,
263--
2642.17.1
265
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
new file mode 100644
index 00000000..f2947f32
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
@@ -0,0 +1,287 @@
1From 3a03576d672d24f19fdb930b08afde9a3a3f55da Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:02:38 -0700
4Subject: [PATCH 7/8] glamor: Switch the gl_flavor to a boolean is_gles.
5
6There are only 2 flavors we are distinguishing -- GL versions are
7handled separately.
8
9Upstream-Status: Backport
10Signed-off-by: Eric Anholt <eric@anholt.net>
11---
12 glamor/glamor.c | 20 +++++++++-----------
13 glamor/glamor_picture.c | 22 +++++++++++-----------
14 glamor/glamor_pixmap.c | 2 +-
15 glamor/glamor_priv.h | 7 +------
16 glamor/glamor_program.c | 2 +-
17 glamor/glamor_render.c | 2 +-
18 glamor/glamor_utils.h | 6 +++---
19 7 files changed, 27 insertions(+), 34 deletions(-)
20
21diff --git a/glamor/glamor.c b/glamor/glamor.c
22index f618c2128..019edbbb1 100644
23--- a/glamor/glamor.c
24+++ b/glamor/glamor.c
25@@ -505,10 +505,8 @@ glamor_init(ScreenPtr screen, unsigned int flags)
26
27 glamor_make_current(glamor_priv);
28
29- if (epoxy_is_desktop_gl())
30- glamor_priv->gl_flavor = GLAMOR_GL_DESKTOP;
31- else
32- glamor_priv->gl_flavor = GLAMOR_GL_ES2;
33+ if (!epoxy_is_desktop_gl())
34+ glamor_priv->is_gles = TRUE;
35
36 gl_version = epoxy_gl_version();
37
38@@ -540,7 +538,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
39 }
40 glamor_priv->glsl_version = glsl_major * 100 + glsl_minor;
41
42- if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
43+ if (glamor_priv->is_gles) {
44 /* Force us back to the base version of our programs on an ES
45 * context, anyway. Basically glamor only uses desktop 1.20
46 * or 1.30 currently. 1.30's new features are also present in
47@@ -564,7 +562,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
48 * have support for it, with most of the ones lacking it being on
49 * Windows with Intel 4-series (G45) graphics or older.
50 */
51- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
52+ if (!glamor_priv->is_gles) {
53 if (gl_version < 21) {
54 ErrorF("Require OpenGL version 2.1 or later.\n");
55 goto fail;
56@@ -610,7 +608,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
57 }
58
59 glamor_priv->has_rw_pbo = FALSE;
60- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
61+ if (!glamor_priv->is_gles)
62 glamor_priv->has_rw_pbo = TRUE;
63
64 glamor_priv->has_khr_debug = epoxy_has_gl_extension("GL_KHR_debug");
65@@ -628,11 +626,11 @@ glamor_init(ScreenPtr screen, unsigned int flags)
66 glamor_priv->has_nv_texture_barrier =
67 epoxy_has_gl_extension("GL_NV_texture_barrier");
68 glamor_priv->has_unpack_subimage =
69- glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP ||
70+ !glamor_priv->is_gles ||
71 epoxy_gl_version() >= 30 ||
72 epoxy_has_gl_extension("GL_EXT_unpack_subimage");
73 glamor_priv->has_pack_subimage =
74- glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP ||
75+ !glamor_priv->is_gles ||
76 epoxy_gl_version() >= 30 ||
77 epoxy_has_gl_extension("GL_NV_pack_subimage");
78 glamor_priv->has_dual_blend =
79@@ -643,7 +641,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
80
81 glamor_setup_debug_output(screen);
82
83- glamor_priv->use_quads = (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) &&
84+ glamor_priv->use_quads = !glamor_priv->is_gles &&
85 !glamor_priv->is_core_profile;
86
87 /* Driver-specific hack: Avoid using GL_QUADS on VC4, where
88@@ -665,7 +663,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
89
90 glamor_priv->has_texture_swizzle =
91 (epoxy_has_gl_extension("GL_ARB_texture_swizzle") ||
92- (glamor_priv->gl_flavor != GLAMOR_GL_DESKTOP && gl_version >= 30));
93+ (glamor_priv->is_gles && gl_version >= 30));
94
95 glamor_priv->one_channel_format = GL_ALPHA;
96 if (epoxy_has_gl_extension("GL_ARB_texture_rg") &&
97diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
98index e6d387d42..ed2decc83 100644
99--- a/glamor/glamor_picture.c
100+++ b/glamor/glamor_picture.c
101@@ -90,7 +90,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
102
103 case PICT_b8g8r8x8:
104 case PICT_b8g8r8a8:
105- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
106+ if (!glamor_priv->is_gles) {
107 *tex_format = GL_BGRA;
108 *tex_type = GL_UNSIGNED_INT_8_8_8_8;
109 } else {
110@@ -109,7 +109,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
111
112 case PICT_x8r8g8b8:
113 case PICT_a8r8g8b8:
114- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
115+ if (!glamor_priv->is_gles) {
116 *tex_format = GL_BGRA;
117 *tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
118 } else {
119@@ -128,7 +128,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
120 case PICT_x8b8g8r8:
121 case PICT_a8b8g8r8:
122 *tex_format = GL_RGBA;
123- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
124+ if (!glamor_priv->is_gles) {
125 *tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
126 } else {
127 *tex_format = GL_RGBA;
128@@ -141,7 +141,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
129
130 case PICT_x2r10g10b10:
131 case PICT_a2r10g10b10:
132- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
133+ if (!glamor_priv->is_gles) {
134 *tex_format = GL_BGRA;
135 *tex_type = GL_UNSIGNED_INT_2_10_10_10_REV;
136 } else {
137@@ -151,7 +151,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
138
139 case PICT_x2b10g10r10:
140 case PICT_a2b10g10r10:
141- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
142+ if (!glamor_priv->is_gles) {
143 *tex_format = GL_RGBA;
144 *tex_type = GL_UNSIGNED_INT_2_10_10_10_REV;
145 } else {
146@@ -165,7 +165,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
147 break;
148 case PICT_b5g6r5:
149 *tex_format = GL_RGB;
150- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
151+ if (!glamor_priv->is_gles) {
152 *tex_type = GL_UNSIGNED_SHORT_5_6_5_REV;
153 } else {
154 *tex_type = GL_UNSIGNED_SHORT_5_6_5;
155@@ -177,7 +177,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
156 case PICT_x1b5g5r5:
157 case PICT_a1b5g5r5:
158 *tex_format = GL_RGBA;
159- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
160+ if (!glamor_priv->is_gles) {
161 *tex_type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
162 } else {
163 return FALSE;
164@@ -186,7 +186,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
165
166 case PICT_x1r5g5b5:
167 case PICT_a1r5g5b5:
168- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
169+ if (!glamor_priv->is_gles) {
170 *tex_format = GL_BGRA;
171 *tex_type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
172 } else {
173@@ -201,7 +201,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
174
175 case PICT_x4r4g4b4:
176 case PICT_a4r4g4b4:
177- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
178+ if (!glamor_priv->is_gles) {
179 *tex_format = GL_BGRA;
180 *tex_type = GL_UNSIGNED_SHORT_4_4_4_4_REV;
181 } else {
182@@ -213,7 +213,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
183
184 case PICT_x4b4g4r4:
185 case PICT_a4b4g4r4:
186- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
187+ if (!glamor_priv->is_gles) {
188 *tex_format = GL_RGBA;
189 *tex_type = GL_UNSIGNED_SHORT_4_4_4_4_REV;
190 } else {
191@@ -335,7 +335,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
192 stride = pixman_image_get_stride(converted_image);
193 }
194
195- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
196+ if (!glamor_priv->is_gles)
197 iformat = gl_iformat_for_pixmap(pixmap);
198 else
199 iformat = format;
200diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c
201index 166bde509..9aa169cdc 100644
202--- a/glamor/glamor_pixmap.c
203+++ b/glamor/glamor_pixmap.c
204@@ -124,7 +124,7 @@ glamor_set_alu(ScreenPtr screen, unsigned char alu)
205 {
206 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
207
208- if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
209+ if (glamor_priv->is_gles) {
210 if (alu != GXcopy)
211 return FALSE;
212 else
213diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
214index a87caec9b..8e8433ff3 100644
215--- a/glamor/glamor_priv.h
216+++ b/glamor/glamor_priv.h
217@@ -155,11 +155,6 @@ enum gradient_shader {
218 struct glamor_screen_private;
219 struct glamor_pixmap_private;
220
221-enum glamor_gl_flavor {
222- GLAMOR_GL_DESKTOP, // OPENGL API
223- GLAMOR_GL_ES2 // OPENGL ES2.0 API
224-};
225-
226 #define GLAMOR_COMPOSITE_VBO_VERT_CNT (64*1024)
227
228 struct glamor_saved_procs {
229@@ -185,7 +180,7 @@ struct glamor_saved_procs {
230 };
231
232 typedef struct glamor_screen_private {
233- enum glamor_gl_flavor gl_flavor;
234+ Bool is_gles;
235 int glsl_version;
236 Bool has_pack_invert;
237 Bool has_fbo_blit;
238diff --git a/glamor/glamor_program.c b/glamor/glamor_program.c
239index 830deb38b..b0a9d07a4 100644
240--- a/glamor/glamor_program.c
241+++ b/glamor/glamor_program.c
242@@ -459,7 +459,7 @@ glamor_set_blend(CARD8 op, glamor_program_alpha alpha, PicturePtr dst)
243 break;
244 }
245
246- if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
247+ if (!glamor_priv->is_gles)
248 glDisable(GL_COLOR_LOGIC_OP);
249
250 if (op == PictOpSrc)
251diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
252index 6db6bfbc3..d3859e4d1 100644
253--- a/glamor/glamor_render.c
254+++ b/glamor/glamor_render.c
255@@ -1091,7 +1091,7 @@ glamor_composite_set_shader_blend(glamor_screen_private *glamor_priv,
256 }
257 }
258
259- if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
260+ if (!glamor_priv->is_gles)
261 glDisable(GL_COLOR_LOGIC_OP);
262
263 if (op_info->source_blend == GL_ONE && op_info->dest_blend == GL_ZERO) {
264diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
265index 8a147ca7e..cbb808294 100644
266--- a/glamor/glamor_utils.h
267+++ b/glamor/glamor_utils.h
268@@ -615,13 +615,13 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
269 glamor_get_screen_private((pixmap)->drawable.pScreen);
270 glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
271
272- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
273+ if (!glamor_priv->is_gles &&
274 ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
275 return glamor_priv->one_channel_format;
276- } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
277+ } else if (!glamor_priv->is_gles &&
278 (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
279 return GL_RG;
280- } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
281+ } else if (!glamor_priv->is_gles &&
282 (pixmap)->drawable.depth == 30) {
283 return GL_RGB10_A2;
284 } else {
285--
2862.17.1
287
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch
new file mode 100644
index 00000000..dd82340a
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch
@@ -0,0 +1,669 @@
1From b75296bee6ab3578f3a13cfb6de5d77ec02b9047 Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:10:49 -0700
4Subject: [PATCH 8/8] glamor: Introduce a central place for our pixmap
5 format/type handling.
6
7We had various helper functions trying to come up with the
8internalformat/format/type/render formats for pixmaps, and it's much
9nicer to just detect what those should be once at startup. This gives
10us a chance to do the right thing for GLES.
11
12It also, notably, fixes our format/type for depth 15 and 16 setup for
13desktop GL, so that we actually allocate 16bpp (GL_RGB/565) on most
14drivers instead of 32bpp (GL_RGB/UBYTE).
15
16GLES still has regressions over desktop (2 regressions in llvmpipe
17XTS, many in rendercheck), but I think this is a good baseline.
18
19Upstream-Status: Backport
20Signed-off-by: Eric Anholt <eric@anholt.net>
21---
22 glamor/glamor.c | 167 ++++++++++++++++++++++++++++++++++++--
23 glamor/glamor_fbo.c | 16 ++--
24 glamor/glamor_picture.c | 7 +-
25 glamor/glamor_priv.h | 22 ++++-
26 glamor/glamor_render.c | 7 +-
27 glamor/glamor_spans.c | 14 ++--
28 glamor/glamor_transfer.c | 56 ++-----------
29 glamor/glamor_transfer.h | 3 -
30 glamor/glamor_transform.c | 5 +-
31 glamor/glamor_utils.h | 57 -------------
32 10 files changed, 209 insertions(+), 145 deletions(-)
33
34diff --git a/glamor/glamor.c b/glamor/glamor.c
35index 019edbbb1..3450113e0 100644
36--- a/glamor/glamor.c
37+++ b/glamor/glamor.c
38@@ -212,7 +212,7 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
39 w <= glamor_priv->glyph_max_dim &&
40 h <= glamor_priv->glyph_max_dim)
41 || (w == 0 && h == 0)
42- || !glamor_check_pixmap_fbo_depth(depth)))
43+ || !glamor_priv->formats[depth].format))
44 return fbCreatePixmap(screen, w, h, depth, usage);
45 else
46 pixmap = fbCreatePixmap(screen, 0, 0, depth, usage);
47@@ -440,6 +440,165 @@ glamor_setup_debug_output(ScreenPtr screen)
48 glEnable(GL_DEBUG_OUTPUT);
49 }
50
51+const struct glamor_format *
52+glamor_format_for_pixmap(PixmapPtr pixmap)
53+{
54+ ScreenPtr pScreen = pixmap->drawable.pScreen;
55+ glamor_screen_private *glamor_priv = glamor_get_screen_private(pScreen);
56+ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
57+
58+ if (pixmap_priv->is_cbcr)
59+ return &glamor_priv->cbcr_format;
60+ else
61+ return &glamor_priv->formats[pixmap->drawable.depth];
62+}
63+
64+static void
65+glamor_add_format(ScreenPtr screen, int depth, CARD32 render_format,
66+ GLenum internalformat, GLenum format, GLenum type)
67+{
68+ glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
69+ struct glamor_format *f = &glamor_priv->formats[depth];
70+
71+ /* If we're trying to run on GLES, make sure that we get the read
72+ * formats that we're expecting, since glamor_transfer relies on
73+ * them matching to get data back out. To avoid this limitation, we
74+ * would need to have a more general glReadPixels() path in
75+ * glamor_transfer that re-encoded the bits to the pixel format that
76+ * we intended after.
77+ *
78+ * Note that we can't just create a pixmap because we're in
79+ * screeninit.
80+ */
81+ if (glamor_priv->is_gles) {
82+ unsigned fbo, tex;
83+ int read_format, read_type;
84+ GLenum status;
85+
86+ glGenTextures(1, &tex);
87+ glBindTexture(GL_TEXTURE_2D, tex);
88+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
89+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
90+ glTexImage2D(GL_TEXTURE_2D, 0, internalformat, 1, 1, 0,
91+ format, type, NULL);
92+
93+ glGenFramebuffers(1, &fbo);
94+ glBindFramebuffer(GL_FRAMEBUFFER, fbo);
95+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
96+ GL_TEXTURE_2D, tex, 0);
97+ status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
98+ if (status != GL_FRAMEBUFFER_COMPLETE) {
99+ ErrorF("glamor: Test fbo for depth %d incomplete. "
100+ "Falling back to software.\n", depth);
101+ glDeleteTextures(1, &tex);
102+ glDeleteFramebuffers(1, &fbo);
103+ return;
104+ }
105+
106+ glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_FORMAT, &read_format);
107+ glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &read_type);
108+
109+ glDeleteTextures(1, &tex);
110+ glDeleteFramebuffers(1, &fbo);
111+
112+ if (format != read_format || type != read_type) {
113+ ErrorF("glamor: Implementation returned 0x%x/0x%x read format/type "
114+ "for depth %d, expected 0x%x/0x%x. "
115+ "Falling back to software.\n",
116+ read_format, read_type, depth, format, type);
117+ return;
118+ }
119+ }
120+
121+ f->depth = depth;
122+ f->render_format = render_format;
123+ f->internalformat = internalformat;
124+ f->format = format;
125+ f->type = type;
126+}
127+
128+/* Set up the GL format/types that glamor will use for the various depths
129+ *
130+ * X11's pixel data doesn't have channels, but to store our data in GL
131+ * we have to pick some sort of format to move X11 pixel data in and
132+ * out with in glamor_transfer.c. For X11 core operations, other than
133+ * GL logic ops (non-GXcopy GC ops) what the driver chooses internally
134+ * doesn't matter as long as it doesn't drop any bits (we expect them
135+ * to generally expand, if anything). For Render, we can expect
136+ * clients to tend to render with PictFormats matching our channel
137+ * layouts here since ultimately X11 pixels tend to end up on the
138+ * screen. The render implementation will fall back to fb if the
139+ * channels don't match.
140+ *
141+ * Note that these formats don't affect what glamor_egl.c or
142+ * Xwayland's EGL layer choose for surfaces exposed through DRI or
143+ * scanout. For now, those layers need to match what we're choosing
144+ * here, or channels will end up swizzled around. Similarly, the
145+ * driver's visual masks also need to match what we're doing here.
146+ */
147+static void
148+glamor_setup_formats(ScreenPtr screen)
149+{
150+ glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
151+
152+ /* Prefer r8 textures since they're required by GLES3 and core,
153+ * only falling back to a8 if we can't do them.
154+ */
155+ if (glamor_priv->is_gles || epoxy_has_gl_extension("GL_ARB_texture_rg")) {
156+ glamor_add_format(screen, 8, PICT_a8,
157+ GL_R8, GL_RED, GL_UNSIGNED_BYTE);
158+ } else {
159+ glamor_add_format(screen, 8, PICT_a8,
160+ GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE);
161+ }
162+
163+ if (glamor_priv->is_gles) {
164+ /* For 15bpp, GLES supports format/type RGBA/5551, rather than
165+ * bgra/1555_rev. GL_EXT_bgra lets the impl say the color
166+ * read format/type is bgra/1555 even if we had to create it
167+ * with rgba/5551, with Mesa does. That means we can't use
168+ * the same format/type for TexSubImage and readpixels.
169+ *
170+ * Instead, just store 16 bits using the trusted 565 path, and
171+ * disable render accel for now.
172+ */
173+ glamor_add_format(screen, 15, PICT_x1r5g5b5,
174+ GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
175+ } else {
176+ glamor_add_format(screen, 15, PICT_x1r5g5b5,
177+ GL_RGBA, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV);
178+ }
179+
180+ glamor_add_format(screen, 16, PICT_r5g6b5,
181+ GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
182+
183+ if (glamor_priv->is_gles) {
184+ assert(X_BYTE_ORDER == X_LITTLE_ENDIAN);
185+ glamor_add_format(screen, 24, PICT_x8b8g8r8,
186+ GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
187+ glamor_add_format(screen, 32, PICT_a8b8g8r8,
188+ GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
189+ } else {
190+ glamor_add_format(screen, 24, PICT_x8r8g8b8,
191+ GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV);
192+ glamor_add_format(screen, 32, PICT_a8r8g8b8,
193+ GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV);
194+ }
195+
196+ if (glamor_priv->is_gles) {
197+ glamor_add_format(screen, 30, PICT_x2b10g10r10,
198+ GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV);
199+ } else {
200+ glamor_add_format(screen, 30, PICT_x2r10g10b10,
201+ GL_RGB10_A2, GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV);
202+ }
203+
204+ glamor_priv->cbcr_format.depth = 16;
205+ glamor_priv->cbcr_format.internalformat = GL_RG8;
206+ glamor_priv->cbcr_format.format = GL_RG;
207+ glamor_priv->cbcr_format.type = GL_UNSIGNED_BYTE;
208+}
209+
210 /** Set up glamor for an already-configured GL context. */
211 Bool
212 glamor_init(ScreenPtr screen, unsigned int flags)
213@@ -665,11 +824,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
214 (epoxy_has_gl_extension("GL_ARB_texture_swizzle") ||
215 (glamor_priv->is_gles && gl_version >= 30));
216
217- glamor_priv->one_channel_format = GL_ALPHA;
218- if (epoxy_has_gl_extension("GL_ARB_texture_rg") &&
219- glamor_priv->has_texture_swizzle) {
220- glamor_priv->one_channel_format = GL_RED;
221- }
222+ glamor_setup_formats(screen);
223
224 glamor_set_debug_level(&glamor_debug_level);
225
226diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
227index 75f7e2baa..dfb3f754d 100644
228--- a/glamor/glamor_fbo.c
229+++ b/glamor/glamor_fbo.c
230@@ -97,7 +97,7 @@ glamor_pixmap_fbo *
231 glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
232 PixmapPtr pixmap, int w, int h, GLint tex, int flag)
233 {
234- GLenum format = gl_iformat_for_pixmap(pixmap);
235+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
236 glamor_pixmap_fbo *fbo;
237
238 fbo = calloc(1, sizeof(*fbo));
239@@ -107,7 +107,7 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
240 fbo->tex = tex;
241 fbo->width = w;
242 fbo->height = h;
243- fbo->is_red = format == GL_RED;
244+ fbo->is_red = f->format == GL_RED;
245
246 if (flag != GLAMOR_CREATE_FBO_NO_FBO) {
247 if (glamor_pixmap_ensure_fb(glamor_priv, fbo) != 0) {
248@@ -123,23 +123,19 @@ static int
249 _glamor_create_tex(glamor_screen_private *glamor_priv,
250 PixmapPtr pixmap, int w, int h)
251 {
252- GLenum iformat = gl_iformat_for_pixmap(pixmap);
253- GLenum format = iformat;
254+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
255 unsigned int tex;
256
257- if (format == GL_RGB10_A2)
258- format = GL_RGBA;
259-
260 glamor_make_current(glamor_priv);
261 glGenTextures(1, &tex);
262 glBindTexture(GL_TEXTURE_2D, tex);
263 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
264 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
265- if (format == glamor_priv->one_channel_format && format == GL_RED)
266+ if (f->format == GL_RED)
267 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED);
268 glamor_priv->suppress_gl_out_of_memory_logging = true;
269- glTexImage2D(GL_TEXTURE_2D, 0, iformat, w, h, 0,
270- format, GL_UNSIGNED_BYTE, NULL);
271+ glTexImage2D(GL_TEXTURE_2D, 0, f->internalformat, w, h, 0,
272+ f->format, f->type, NULL);
273 glamor_priv->suppress_gl_out_of_memory_logging = false;
274
275 if (glGetError() == GL_OUT_OF_MEMORY) {
276diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
277index ed2decc83..33b3bebd9 100644
278--- a/glamor/glamor_picture.c
279+++ b/glamor/glamor_picture.c
280@@ -83,7 +83,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
281
282 switch (format) {
283 case PICT_a1:
284- *tex_format = glamor_priv->one_channel_format;
285+ *tex_format = glamor_priv->formats[1].format;
286 *tex_type = GL_UNSIGNED_BYTE;
287 *temp_format = PICT_a8;
288 break;
289@@ -195,7 +195,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
290 break;
291
292 case PICT_a8:
293- *tex_format = glamor_priv->one_channel_format;
294+ *tex_format = glamor_priv->formats[8].format;
295 *tex_type = GL_UNSIGNED_BYTE;
296 break;
297
298@@ -286,6 +286,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
299 Bool ret = TRUE;
300 Bool needs_swizzle;
301 pixman_image_t *converted_image = NULL;
302+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
303
304 assert(glamor_pixmap_is_memory(pixmap));
305 assert(!pixmap_priv->fbo);
306@@ -336,7 +337,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
307 }
308
309 if (!glamor_priv->is_gles)
310- iformat = gl_iformat_for_pixmap(pixmap);
311+ iformat = f->internalformat;
312 else
313 iformat = format;
314
315diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
316index 8e8433ff3..b8e2b932e 100644
317--- a/glamor/glamor_priv.h
318+++ b/glamor/glamor_priv.h
319@@ -157,6 +157,21 @@ struct glamor_pixmap_private;
320
321 #define GLAMOR_COMPOSITE_VBO_VERT_CNT (64*1024)
322
323+struct glamor_format {
324+ /** X Server's "depth" value */
325+ int depth;
326+ /** GL internalformat for creating textures of this type */
327+ GLenum internalformat;
328+ /** GL format transferring pixels in/out of textures of this type. */
329+ GLenum format;
330+ /** GL type transferring pixels in/out of textures of this type. */
331+ GLenum type;
332+ /* Render PICT_* matching GL's channel layout for pixels
333+ * transferred using format/type.
334+ */
335+ CARD32 render_format;
336+};
337+
338 struct glamor_saved_procs {
339 CloseScreenProcPtr close_screen;
340 CreateGCProcPtr create_gc;
341@@ -199,7 +214,8 @@ typedef struct glamor_screen_private {
342 Bool can_copyplane;
343 int max_fbo_size;
344
345- GLuint one_channel_format;
346+ struct glamor_format formats[33];
347+ struct glamor_format cbcr_format;
348
349 /* glamor point shader */
350 glamor_program point_prog;
351@@ -537,6 +553,8 @@ void glamor_pixmap_destroy_fbo(PixmapPtr pixmap);
352 Bool glamor_pixmap_fbo_fixup(ScreenPtr screen, PixmapPtr pixmap);
353 void glamor_pixmap_clear_fbo(glamor_screen_private *glamor_priv, glamor_pixmap_fbo *fbo);
354
355+const struct glamor_format *glamor_format_for_pixmap(PixmapPtr pixmap);
356+
357 /* Return whether 'picture' is alpha-only */
358 static inline Bool glamor_picture_is_alpha(PicturePtr picture)
359 {
360@@ -549,7 +567,7 @@ glamor_picture_red_is_alpha(PicturePtr picture)
361 {
362 /* True when the picture is alpha only and the screen is using GL_RED for alpha pictures */
363 return glamor_picture_is_alpha(picture) &&
364- glamor_get_screen_private(picture->pDrawable->pScreen)->one_channel_format == GL_RED;
365+ glamor_get_screen_private(picture->pDrawable->pScreen)->formats[8].format == GL_RED;
366 }
367
368 void glamor_bind_texture(glamor_screen_private *glamor_priv,
369diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
370index d3859e4d1..a8dc3924b 100644
371--- a/glamor/glamor_render.c
372+++ b/glamor/glamor_render.c
373@@ -772,12 +772,15 @@ static Bool
374 glamor_render_format_is_supported(PicturePtr picture)
375 {
376 PictFormatShort storage_format;
377+ glamor_screen_private *glamor_priv;
378
379 /* Source-only pictures should always work */
380 if (!picture->pDrawable)
381 return TRUE;
382
383- storage_format = format_for_depth(picture->pDrawable->depth);
384+ glamor_priv = glamor_get_screen_private(picture->pDrawable->pScreen);
385+ storage_format =
386+ glamor_priv->formats[picture->pDrawable->depth].render_format;
387
388 switch (picture->format) {
389 case PICT_x2r10g10b10:
390@@ -898,7 +901,7 @@ glamor_composite_choose_shader(CARD8 op,
391 }
392
393 if (dest_pixmap->drawable.bitsPerPixel <= 8 &&
394- glamor_priv->one_channel_format == GL_RED) {
395+ glamor_priv->formats[8].format == GL_RED) {
396 key.dest_swizzle = SHADER_DEST_SWIZZLE_ALPHA_TO_RED;
397 } else {
398 key.dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT;
399diff --git a/glamor/glamor_spans.c b/glamor/glamor_spans.c
400index b3c028d67..b5f297d2f 100644
401--- a/glamor/glamor_spans.c
402+++ b/glamor/glamor_spans.c
403@@ -187,9 +187,8 @@ glamor_get_spans_gl(DrawablePtr drawable, int wmax,
404 int box_index;
405 int n;
406 char *d;
407- GLenum type;
408- GLenum format;
409 int off_x, off_y;
410+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
411
412 pixmap_priv = glamor_get_pixmap_private(pixmap);
413 if (!GLAMOR_PIXMAP_PRIV_HAS_FBO(pixmap_priv))
414@@ -197,8 +196,6 @@ glamor_get_spans_gl(DrawablePtr drawable, int wmax,
415
416 glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y);
417
418- glamor_format_for_pixmap(pixmap, &format, &type);
419-
420 glamor_make_current(glamor_priv);
421
422 glamor_pixmap_loop(pixmap_priv, box_index) {
423@@ -234,7 +231,8 @@ glamor_get_spans_gl(DrawablePtr drawable, int wmax,
424 if (y >= box->y2)
425 continue;
426
427- glReadPixels(x1 - box->x1, y - box->y1, x2 - x1, 1, format, type, l);
428+ glReadPixels(x1 - box->x1, y - box->y1, x2 - x1, 1,
429+ f->format, f->type, l);
430 }
431 }
432
433@@ -269,11 +267,10 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
434 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
435 PixmapPtr pixmap = glamor_get_drawable_pixmap(drawable);
436 glamor_pixmap_private *pixmap_priv;
437+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
438 int box_index;
439 int n;
440 char *s;
441- GLenum type;
442- GLenum format;
443 int off_x, off_y;
444
445 pixmap_priv = glamor_get_pixmap_private(pixmap);
446@@ -287,7 +284,6 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
447 goto bail;
448
449 glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y);
450- glamor_format_for_pixmap(pixmap, &format, &type);
451
452 glamor_make_current(glamor_priv);
453
454@@ -348,7 +344,7 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
455
456 glTexSubImage2D(GL_TEXTURE_2D, 0,
457 x1 - box->x1, y1 - box->y1, x2 - x1, 1,
458- format, type,
459+ f->format, f->type,
460 l);
461 }
462 s += PixmapBytePad(w, drawable->depth);
463diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c
464index 215752d7b..e706e0fb4 100644
465--- a/glamor/glamor_transfer.c
466+++ b/glamor/glamor_transfer.c
467@@ -23,44 +23,6 @@
468 #include "glamor_priv.h"
469 #include "glamor_transfer.h"
470
471-/* XXX a kludge for now */
472-void
473-glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
474-{
475- glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
476- switch (pixmap->drawable.depth) {
477- case 24:
478- case 32:
479- *format = GL_BGRA;
480- *type = GL_UNSIGNED_INT_8_8_8_8_REV;
481- break;
482- case 30:
483- *format = GL_BGRA;
484- *type = GL_UNSIGNED_INT_2_10_10_10_REV;
485- break;
486- case 16:
487- if (priv->is_cbcr) {
488- *format = GL_RG;
489- *type = GL_UNSIGNED_BYTE;
490- } else {
491- *format = GL_RGB;
492- *type = GL_UNSIGNED_SHORT_5_6_5;
493- }
494- break;
495- case 15:
496- *format = GL_BGRA;
497- *type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
498- break;
499- case 8:
500- *format = glamor_get_screen_private(pixmap->drawable.pScreen)->one_channel_format;
501- *type = GL_UNSIGNED_BYTE;
502- break;
503- default:
504- FatalError("Invalid pixmap depth %d\n", pixmap->drawable.depth);
505- break;
506- }
507-}
508-
509 /*
510 * Write a region of bits into a pixmap
511 */
512@@ -75,10 +37,7 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
513 glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
514 int box_index;
515 int bytes_per_pixel = pixmap->drawable.bitsPerPixel >> 3;
516- GLenum type;
517- GLenum format;
518-
519- glamor_format_for_pixmap(pixmap, &format, &type);
520+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
521
522 glamor_make_current(glamor_priv);
523
524@@ -116,14 +75,14 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
525 glTexSubImage2D(GL_TEXTURE_2D, 0,
526 x1 - box->x1, y1 - box->y1,
527 x2 - x1, y2 - y1,
528- format, type,
529+ f->format, f->type,
530 bits + ofs);
531 } else {
532 for (; y1 < y2; y1++, ofs += byte_stride)
533 glTexSubImage2D(GL_TEXTURE_2D, 0,
534 x1 - box->x1, y1 - box->y1,
535 x2 - x1, 1,
536- format, type,
537+ f->format, f->type,
538 bits + ofs);
539 }
540 }
541@@ -178,10 +137,7 @@ glamor_download_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
542 glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
543 int box_index;
544 int bytes_per_pixel = pixmap->drawable.bitsPerPixel >> 3;
545- GLenum type;
546- GLenum format;
547-
548- glamor_format_for_pixmap(pixmap, &format, &type);
549+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
550
551 glamor_make_current(glamor_priv);
552
553@@ -216,10 +172,10 @@ glamor_download_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
554
555 if (glamor_priv->has_pack_subimage ||
556 x2 - x1 == byte_stride / bytes_per_pixel) {
557- glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, y2 - y1, format, type, bits + ofs);
558+ glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, y2 - y1, f->format, f->type, bits + ofs);
559 } else {
560 for (; y1 < y2; y1++, ofs += byte_stride)
561- glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, 1, format, type, bits + ofs);
562+ glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, 1, f->format, f->type, bits + ofs);
563 }
564 }
565 }
566diff --git a/glamor/glamor_transfer.h b/glamor/glamor_transfer.h
567index de8186a70..a6137b3ff 100644
568--- a/glamor/glamor_transfer.h
569+++ b/glamor/glamor_transfer.h
570@@ -23,9 +23,6 @@
571 #ifndef _GLAMOR_TRANSFER_H_
572 #define _GLAMOR_TRANSFER_H_
573
574-void
575-glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type);
576-
577 void
578 glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
579 int dx_src, int dy_src,
580diff --git a/glamor/glamor_transform.c b/glamor/glamor_transform.c
581index 2d5a634a8..348d00be1 100644
582--- a/glamor/glamor_transform.c
583+++ b/glamor/glamor_transform.c
584@@ -121,10 +121,9 @@ glamor_set_color_depth(ScreenPtr pScreen,
585
586 glamor_get_rgba_from_pixel(pixel,
587 &color[0], &color[1], &color[2], &color[3],
588- format_for_depth(depth));
589+ glamor_priv->formats[depth].render_format);
590
591- if ((depth == 1 || depth == 8) &&
592- glamor_priv->one_channel_format == GL_RED)
593+ if ((depth <= 8) && glamor_priv->formats[8].format == GL_RED)
594 color[0] = color[3];
595
596 glUniform4fv(uniform, 1, color);
597diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
598index cbb808294..651faf2fe 100644
599--- a/glamor/glamor_utils.h
600+++ b/glamor/glamor_utils.h
601@@ -570,65 +570,8 @@
602 && (_w_) <= _glamor_->max_fbo_size \
603 && (_h_) <= _glamor_->max_fbo_size)
604
605-/* For 1bpp pixmap, we don't store it as texture. */
606-#define glamor_check_pixmap_fbo_depth(_depth_) ( \
607- _depth_ == 8 \
608- || _depth_ == 15 \
609- || _depth_ == 16 \
610- || _depth_ == 24 \
611- || _depth_ == 30 \
612- || _depth_ == 32)
613-
614 #define GLAMOR_PIXMAP_PRIV_HAS_FBO(pixmap_priv) (pixmap_priv->gl_fbo == GLAMOR_FBO_NORMAL)
615
616-/**
617- * Borrow from uxa.
618- */
619-static inline CARD32
620-format_for_depth(int depth)
621-{
622- switch (depth) {
623- case 1:
624- return PICT_a1;
625- case 4:
626- return PICT_a4;
627- case 8:
628- return PICT_a8;
629- case 15:
630- return PICT_x1r5g5b5;
631- case 16:
632- return PICT_r5g6b5;
633- default:
634- case 24:
635- return PICT_x8r8g8b8;
636- case 30:
637- return PICT_x2r10g10b10;
638- case 32:
639- return PICT_a8r8g8b8;
640- }
641-}
642-
643-static inline GLenum
644-gl_iformat_for_pixmap(PixmapPtr pixmap)
645-{
646- glamor_screen_private *glamor_priv =
647- glamor_get_screen_private((pixmap)->drawable.pScreen);
648- glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
649-
650- if (!glamor_priv->is_gles &&
651- ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
652- return glamor_priv->one_channel_format;
653- } else if (!glamor_priv->is_gles &&
654- (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
655- return GL_RG;
656- } else if (!glamor_priv->is_gles &&
657- (pixmap)->drawable.depth == 30) {
658- return GL_RGB10_A2;
659- } else {
660- return GL_RGBA;
661- }
662-}
663-
664 #define REVERT_NONE 0
665 #define REVERT_NORMAL 1
666 #define REVERT_UPLOADING_A1 3
667--
6682.17.1
669
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
index 0972bdd5..b73e89fe 100644
--- a/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
+++ b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
@@ -6,6 +6,14 @@ SRC_URI_append_imxgpu = " \
6 file://0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch \ 6 file://0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch \
7 file://0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch \ 7 file://0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch \
8 file://0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch \ 8 file://0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch \
9 file://0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch \
10 file://0002-glamor-add-support-for-GL_RG.patch \
11 file://0003-glamor-add-support-for-NV12-in-Xv.patch \
12 file://0004-glamor-Remove-unused-format_for_pixmap-helper.patch \
13 file://0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch \
14 file://0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch \
15 file://0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch \
16 file://0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch \
9" 17"
10 18
11IMX_OPENGL_PKGCONFIGS_REMOVE = "" 19IMX_OPENGL_PKGCONFIGS_REMOVE = ""
diff --git a/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb b/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p2.0.bb
index 581bef95..e113aff7 100644
--- a/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb
+++ b/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p2.0.bb
@@ -1,5 +1,5 @@
1# Copyright (C) 2015-2016 Freescale Semiconductor 1# Copyright (C) 2015-2016 Freescale Semiconductor
2# Copyright (C) 2017-2020 NXP 2# Copyright (C) 2017-2021 NXP
3 3
4SUMMARY = "Kernel loadable module for Vivante GPU" 4SUMMARY = "Kernel loadable module for Vivante GPU"
5DESCRIPTION = "Builds the Vivante GPU kernel driver as a loadable kernel module, \ 5DESCRIPTION = "Builds the Vivante GPU kernel driver as a loadable kernel module, \
@@ -7,14 +7,14 @@ allowing flexibility to use a newer graphics release with an older kernel."
7LICENSE = "GPLv2" 7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 8LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
9 9
10SRCBRANCH = "imx_5.4.70_2.3.0" 10SRCBRANCH = "lf-5.10.y"
11LOCALVERSION = "-imx_5.4.70_2.3.2" 11LOCALVERSION = "-5.10.35-2.0.0"
12KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https" 12KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https"
13SRC_URI = " \ 13SRC_URI = " \
14 ${KERNEL_SRC};branch=${SRCBRANCH};subpath=drivers/mxc/gpu-viv;destsuffix=git/src \ 14 ${KERNEL_SRC};branch=${SRCBRANCH};subpath=drivers/mxc/gpu-viv;destsuffix=git/src \
15 file://Add-makefile.patch \ 15 file://Add-makefile.patch \
16" 16"
17SRCREV = "13b3c469663da0c79d385ce15887f6b5805f060d" 17SRCREV = "5b2559d9d66b0b9561fc42dd8007dfe4569573df"
18 18
19S = "${WORKDIR}/git" 19S = "${WORKDIR}/git"
20 20
diff --git a/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.11.0.bb b/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.13.0.bb
index 973cc51b..7eee17d1 100644
--- a/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.11.0.bb
+++ b/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.13.0.bb
@@ -4,13 +4,13 @@ DESCRIPTION = "Kernel loadable module for ISP"
4LICENSE = "GPLv2" 4LICENSE = "GPLv2"
5LIC_FILES_CHKSUM = "file://${WORKDIR}/git/vvcam/LICENSE;md5=64381a6ea83b48c39fe524c85f65fb44" 5LIC_FILES_CHKSUM = "file://${WORKDIR}/git/vvcam/LICENSE;md5=64381a6ea83b48c39fe524c85f65fb44"
6 6
7SRCBRANCH = "imx_5.4.70_2.3.2" 7SRCBRANCH = "imx_5.10_2.0.0"
8ISP_KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/isp-vvcam.git;protocol=https" 8ISP_KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/isp-vvcam.git;protocol=https"
9 9
10SRC_URI = " \ 10SRC_URI = " \
11 ${ISP_KERNEL_SRC};branch=${SRCBRANCH} \ 11 ${ISP_KERNEL_SRC};branch=${SRCBRANCH} \
12" 12"
13SRCREV = "6cbf264313b4859c985c8d66bae19b522996de6c" 13SRCREV = "47588cb88cc75400b5d2c35a17527e99b752d9be"
14 14
15S = "${WORKDIR}/git/vvcam/v4l2" 15S = "${WORKDIR}/git/vvcam/v4l2"
16 16
diff --git a/recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb b/recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb
deleted file mode 100644
index f78a4c5b..00000000
--- a/recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1require kernel-module-qcacld-lea.inc
2
3SUMMARY = "Qualcomm WiFi driver for QCA module 6174"
4
5EXTRA_OEMAKE += " \
6 CONFIG_ROME_IF=pci \
7 CONFIG_WLAN_FEATURE_11W=y \
8 CONFIG_WLAN_FEATURE_FILS=y \
9 CONFIG_WLAN_WAPI_MODE_11AC_DISABLE=y \
10 MODNAME=qca6174 \
11 CONFIG_WLAN_FEATURE_DSRC=y \
12"
13
14RDEPENDS_${PN} += "firmware-qca6174"
diff --git a/recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb b/recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb
deleted file mode 100644
index fbc87ea2..00000000
--- a/recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1require kernel-module-qcacld-lea.inc
2
3SUMMARY = "Qualcomm WiFi driver for QCA module 9377"
4
5EXTRA_OEMAKE += " \
6 CONFIG_CLD_HL_SDIO_CORE=y \
7 CONFIG_FEATURE_COEX_PTA_CONFIG_ENABLE=y \
8 CONFIG_PER_VDEV_TX_DESC_POOL=1 \
9 CONFIG_QCA_LL_TX_FLOW_CT=1 \
10 CONFIG_QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK=y \
11 CONFIG_WLAN_FEATURE_FILS=y \
12 CONFIG_WLAN_WAPI_MODE_11AC_DISABLE=y \
13 MODNAME=qca9377 \
14 SAP_AUTH_OFFLOAD=1 \
15"
16
17RDEPENDS_${PN} += "firmware-qca9377"
diff --git a/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc b/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc
deleted file mode 100644
index 0b23a47c..00000000
--- a/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc
+++ /dev/null
@@ -1,23 +0,0 @@
1SUMMARY = "Qualcomm WiFi driver for QCA module 9377 and 6174"
2LICENSE = "BSD & GPLv2"
3LIC_FILES_CHKSUM = "file://CORE/HDD/src/wlan_hdd_main.c;beginline=1;endline=20;md5=ec8d62116b13db773825ebf7cf91be1d;"
4
5QCACLD_SRC ?= "git://source.codeaurora.org/external/imx/qcacld-2.0-imx.git;protocol=https"
6SRC_URI = "${QCACLD_SRC};branch=IMX_CNSS.LEA.NRT_3.0_KRL5.4"
7SRCREV = "7dc91e5977f31d60741c55682564788c0f930163"
8
9S = "${WORKDIR}/git"
10
11inherit module
12
13EXTRA_OEMAKE += " \
14 CONFIG_CFG80211_INTERNAL_REGDB=y \
15 CONFIG_HDD_WLAN_WAIT_TIME=10000 \
16 CONFIG_LINUX_QCMBR=y \
17 CONFIG_NON_QC_PLATFORM=y \
18 CONFIG_PMF_SUPPORT=y \
19 TARGET_BUILD_VARIANT=user \
20"
21
22COMPATIBLE_MACHINE = "(imx)"
23COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-kernel/linux/linux-imx-headers_5.4.bb b/recipes-kernel/linux/linux-imx-headers_5.10.bb
index 70aea7e7..c656fa55 100644
--- a/recipes-kernel/linux/linux-imx-headers_5.4.bb
+++ b/recipes-kernel/linux/linux-imx-headers_5.10.bb
@@ -5,12 +5,12 @@ SUMMARY = "Installs i.MX-specific kernel headers"
5DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \ 5DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \
6New headers are installed in ${includedir}/imx." 6New headers are installed in ${includedir}/imx."
7LICENSE = "GPLv2" 7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" 8LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
9 9
10SRCBRANCH = "imx_5.4.70_2.3.0" 10SRCBRANCH = "lf-5.10.y"
11LOCALVERSION = "-2.3.2" 11LOCALVERSION = "-5.10.35-2.0.0"
12SRC_URI = "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https;branch=${SRCBRANCH}" 12SRC_URI = "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https;branch=${SRCBRANCH}"
13SRCREV = "dea2fede7e024ee7029b13e8d82a00ec14427777" 13SRCREV = "ef3f2cfc6010c13feb40cfb7fd7490832cf86f45"
14 14
15S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
16 16
@@ -25,6 +25,7 @@ IMX_UAPI_HEADERS = " \
25 ion.h \ 25 ion.h \
26 ipu.h \ 26 ipu.h \
27 isl29023.h \ 27 isl29023.h \
28 imx_vpu.h \
28 mxc_asrc.h \ 29 mxc_asrc.h \
29 mxc_dcic.h \ 30 mxc_dcic.h \
30 mxc_mlb.h \ 31 mxc_mlb.h \
diff --git a/recipes-kernel/linux/linux-imx-mfgtool_5.4.bb b/recipes-kernel/linux/linux-imx-mfgtool_5.10.bb
index 0a9f5259..0a9f5259 100644
--- a/recipes-kernel/linux/linux-imx-mfgtool_5.4.bb
+++ b/recipes-kernel/linux/linux-imx-mfgtool_5.10.bb
diff --git a/recipes-kernel/linux/linux-imx/imx/defconfig b/recipes-kernel/linux/linux-imx/imx/defconfig
index c6d83c3b..b2a0351d 100644
--- a/recipes-kernel/linux/linux-imx/imx/defconfig
+++ b/recipes-kernel/linux/linux-imx/imx/defconfig
@@ -17,14 +17,10 @@ CONFIG_USER_NS=y
17CONFIG_RELAY=y 17CONFIG_RELAY=y
18CONFIG_BLK_DEV_INITRD=y 18CONFIG_BLK_DEV_INITRD=y
19CONFIG_EXPERT=y 19CONFIG_EXPERT=y
20CONFIG_KALLSYMS_ALL=y
21CONFIG_PERF_EVENTS=y 20CONFIG_PERF_EVENTS=y
22# CONFIG_SLUB_DEBUG is not set 21# CONFIG_SLUB_DEBUG is not set
23# CONFIG_COMPAT_BRK is not set 22# CONFIG_COMPAT_BRK is not set
24CONFIG_ARCH_MXC=y 23CONFIG_ARCH_MXC=y
25CONFIG_SOC_IMX50=y
26CONFIG_SOC_IMX51=y
27CONFIG_SOC_IMX53=y
28CONFIG_SOC_IMX6Q=y 24CONFIG_SOC_IMX6Q=y
29CONFIG_SOC_IMX6SL=y 25CONFIG_SOC_IMX6SL=y
30CONFIG_SOC_IMX6SLL=y 26CONFIG_SOC_IMX6SLL=y
@@ -32,7 +28,6 @@ CONFIG_SOC_IMX6SX=y
32CONFIG_SOC_IMX6UL=y 28CONFIG_SOC_IMX6UL=y
33CONFIG_SOC_IMX7D=y 29CONFIG_SOC_IMX7D=y
34CONFIG_SOC_IMX7ULP=y 30CONFIG_SOC_IMX7ULP=y
35CONFIG_SOC_VF610=y
36CONFIG_SMP=y 31CONFIG_SMP=y
37CONFIG_VMSPLIT_2G=y 32CONFIG_VMSPLIT_2G=y
38CONFIG_ARM_PSCI=y 33CONFIG_ARM_PSCI=y
@@ -49,7 +44,6 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
49CONFIG_CPUFREQ_DT=y 44CONFIG_CPUFREQ_DT=y
50CONFIG_ARM_IMX6Q_CPUFREQ=y 45CONFIG_ARM_IMX6Q_CPUFREQ=y
51CONFIG_ARM_IMX_CPUFREQ_DT=y 46CONFIG_ARM_IMX_CPUFREQ_DT=y
52CONFIG_ARM_IMX7ULP_CPUFREQ=y
53CONFIG_CPU_IDLE=y 47CONFIG_CPU_IDLE=y
54CONFIG_ARM_CPUIDLE=y 48CONFIG_ARM_CPUIDLE=y
55CONFIG_ARM_PSCI_CPUIDLE=y 49CONFIG_ARM_PSCI_CPUIDLE=y
@@ -64,7 +58,6 @@ CONFIG_MODULE_SRCVERSION_ALL=y
64# CONFIG_BLK_DEV_BSG is not set 58# CONFIG_BLK_DEV_BSG is not set
65CONFIG_BINFMT_MISC=m 59CONFIG_BINFMT_MISC=m
66CONFIG_CMA=y 60CONFIG_CMA=y
67CONFIG_SECCOMP=y
68CONFIG_NET=y 61CONFIG_NET=y
69CONFIG_PACKET=y 62CONFIG_PACKET=y
70CONFIG_UNIX=y 63CONFIG_UNIX=y
@@ -125,7 +118,6 @@ CONFIG_MTD_DATAFLASH=y
125CONFIG_MTD_SST25L=y 118CONFIG_MTD_SST25L=y
126CONFIG_MTD_RAW_NAND=y 119CONFIG_MTD_RAW_NAND=y
127CONFIG_MTD_NAND_GPMI_NAND=y 120CONFIG_MTD_NAND_GPMI_NAND=y
128CONFIG_MTD_NAND_VF610_NFC=y
129CONFIG_MTD_NAND_MXC=y 121CONFIG_MTD_NAND_MXC=y
130CONFIG_MTD_SPI_NOR=y 122CONFIG_MTD_SPI_NOR=y
131# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set 123# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
@@ -160,7 +152,7 @@ CONFIG_NETDEVICES=y
160CONFIG_CS89x0=y 152CONFIG_CS89x0=y
161CONFIG_CS89x0_PLATFORM=y 153CONFIG_CS89x0_PLATFORM=y
162# CONFIG_NET_VENDOR_FARADAY is not set 154# CONFIG_NET_VENDOR_FARADAY is not set
163CONFIG_E1000E=y 155# CONFIG_NET_VENDOR_INTEL is not set
164# CONFIG_NET_VENDOR_MARVELL is not set 156# CONFIG_NET_VENDOR_MARVELL is not set
165# CONFIG_NET_VENDOR_MICREL is not set 157# CONFIG_NET_VENDOR_MICREL is not set
166# CONFIG_NET_VENDOR_MICROCHIP is not set 158# CONFIG_NET_VENDOR_MICROCHIP is not set
@@ -170,9 +162,8 @@ CONFIG_SMC91X=y
170CONFIG_SMC911X=y 162CONFIG_SMC911X=y
171CONFIG_SMSC911X=y 163CONFIG_SMSC911X=y
172# CONFIG_NET_VENDOR_STMICRO is not set 164# CONFIG_NET_VENDOR_STMICRO is not set
173CONFIG_AT803X_PHY=y
174CONFIG_MICREL_PHY=y 165CONFIG_MICREL_PHY=y
175CONFIG_SMSC_PHY=y 166CONFIG_AT803X_PHY=y
176CONFIG_USB_PEGASUS=m 167CONFIG_USB_PEGASUS=m
177CONFIG_USB_RTL8150=m 168CONFIG_USB_RTL8150=m
178CONFIG_USB_RTL8152=y 169CONFIG_USB_RTL8152=y
@@ -181,9 +172,7 @@ CONFIG_USB_USBNET=y
181CONFIG_USB_NET_CDC_EEM=m 172CONFIG_USB_NET_CDC_EEM=m
182CONFIG_USB_NET_SMSC95XX=y 173CONFIG_USB_NET_SMSC95XX=y
183CONFIG_USB_NET_MCS7830=y 174CONFIG_USB_NET_MCS7830=y
184CONFIG_BRCMFMAC=m
185CONFIG_HOSTAP=y 175CONFIG_HOSTAP=y
186CONFIG_MXMWIFIEX=m
187CONFIG_WL12XX=m 176CONFIG_WL12XX=m
188CONFIG_WL18XX=m 177CONFIG_WL18XX=m
189CONFIG_WLCORE_SDIO=m 178CONFIG_WLCORE_SDIO=m
@@ -197,9 +186,14 @@ CONFIG_MOUSE_PS2=m
197CONFIG_MOUSE_PS2_ELANTECH=y 186CONFIG_MOUSE_PS2_ELANTECH=y
198CONFIG_INPUT_TOUCHSCREEN=y 187CONFIG_INPUT_TOUCHSCREEN=y
199CONFIG_TOUCHSCREEN_ADS7846=y 188CONFIG_TOUCHSCREEN_ADS7846=y
189CONFIG_TOUCHSCREEN_AD7879=y
190CONFIG_TOUCHSCREEN_AD7879_I2C=y
191CONFIG_TOUCHSCREEN_ATMEL_MXT=y
192CONFIG_TOUCHSCREEN_DA9052=y
200CONFIG_TOUCHSCREEN_EGALAX=y 193CONFIG_TOUCHSCREEN_EGALAX=y
201CONFIG_TOUCHSCREEN_ELAN_TS=y 194CONFIG_TOUCHSCREEN_ELAN_TS=y
202CONFIG_TOUCHSCREEN_GOODIX=y 195CONFIG_TOUCHSCREEN_GOODIX=y
196CONFIG_TOUCHSCREEN_ILI210X=y
203CONFIG_TOUCHSCREEN_MAX11801=y 197CONFIG_TOUCHSCREEN_MAX11801=y
204CONFIG_TOUCHSCREEN_IMX6UL_TSC=y 198CONFIG_TOUCHSCREEN_IMX6UL_TSC=y
205CONFIG_TOUCHSCREEN_EDT_FT5X06=y 199CONFIG_TOUCHSCREEN_EDT_FT5X06=y
@@ -238,12 +232,12 @@ CONFIG_SPI_FSL_LPSPI=y
238CONFIG_SPI_FSL_QUADSPI=y 232CONFIG_SPI_FSL_QUADSPI=y
239CONFIG_SPI_GPIO=y 233CONFIG_SPI_GPIO=y
240CONFIG_SPI_IMX=y 234CONFIG_SPI_IMX=y
241CONFIG_SPI_FSL_DSPI=y
242CONFIG_SPI_SPIDEV=y 235CONFIG_SPI_SPIDEV=y
243CONFIG_SPI_SLAVE=y 236CONFIG_SPI_SLAVE=y
244CONFIG_SPI_SLAVE_TIME=y 237CONFIG_SPI_SLAVE_TIME=y
245CONFIG_SPI_SLAVE_SYSTEM_CONTROL=y 238CONFIG_SPI_SLAVE_SYSTEM_CONTROL=y
246CONFIG_GPIO_SYSFS=y 239CONFIG_GPIO_SYSFS=y
240CONFIG_GPIO_MXC=y
247CONFIG_GPIO_SIOX=m 241CONFIG_GPIO_SIOX=m
248CONFIG_GPIO_IMX_RPMSG=y 242CONFIG_GPIO_IMX_RPMSG=y
249CONFIG_GPIO_MAX732X=y 243CONFIG_GPIO_MAX732X=y
@@ -282,6 +276,7 @@ CONFIG_MFD_MAX17135=y
282CONFIG_MFD_RN5T618=y 276CONFIG_MFD_RN5T618=y
283CONFIG_MFD_SI476X_CORE=y 277CONFIG_MFD_SI476X_CORE=y
284CONFIG_MFD_STMPE=y 278CONFIG_MFD_STMPE=y
279CONFIG_REGULATOR=y
285CONFIG_REGULATOR_FIXED_VOLTAGE=y 280CONFIG_REGULATOR_FIXED_VOLTAGE=y
286CONFIG_REGULATOR_ANATOP=y 281CONFIG_REGULATOR_ANATOP=y
287CONFIG_REGULATOR_DA9052=y 282CONFIG_REGULATOR_DA9052=y
@@ -298,12 +293,9 @@ CONFIG_RC_CORE=y
298CONFIG_RC_DEVICES=y 293CONFIG_RC_DEVICES=y
299CONFIG_IR_GPIO_CIR=y 294CONFIG_IR_GPIO_CIR=y
300CONFIG_MEDIA_SUPPORT=y 295CONFIG_MEDIA_SUPPORT=y
301CONFIG_MEDIA_CAMERA_SUPPORT=y
302CONFIG_MEDIA_RADIO_SUPPORT=y
303CONFIG_MEDIA_CONTROLLER=y
304CONFIG_VIDEO_V4L2_SUBDEV_API=y
305CONFIG_MEDIA_USB_SUPPORT=y 296CONFIG_MEDIA_USB_SUPPORT=y
306CONFIG_USB_VIDEO_CLASS=m 297CONFIG_USB_VIDEO_CLASS=m
298CONFIG_RADIO_SI476X=y
307CONFIG_V4L_PLATFORM_DRIVERS=y 299CONFIG_V4L_PLATFORM_DRIVERS=y
308CONFIG_VIDEO_MUX=y 300CONFIG_VIDEO_MUX=y
309CONFIG_VIDEO_MXC_CAPTURE=m 301CONFIG_VIDEO_MXC_CAPTURE=m
@@ -322,15 +314,14 @@ CONFIG_VIDEO_MXC_PXP_V4L2=y
322CONFIG_V4L_MEM2MEM_DRIVERS=y 314CONFIG_V4L_MEM2MEM_DRIVERS=y
323CONFIG_VIDEO_CODA=m 315CONFIG_VIDEO_CODA=m
324CONFIG_VIDEO_IMX_PXP=y 316CONFIG_VIDEO_IMX_PXP=y
325CONFIG_RADIO_SI476X=y
326CONFIG_VIDEO_ADV7180=m 317CONFIG_VIDEO_ADV7180=m
327CONFIG_VIDEO_OV2680=m 318CONFIG_VIDEO_OV2680=m
328CONFIG_VIDEO_OV5645=m 319CONFIG_VIDEO_OV5645=m
329CONFIG_DRM=y 320CONFIG_DRM=y
330CONFIG_DRM_MSM=y
331CONFIG_DRM_PANEL_LVDS=y 321CONFIG_DRM_PANEL_LVDS=y
332CONFIG_DRM_PANEL_SIMPLE=y 322CONFIG_DRM_PANEL_SIMPLE=y
333CONFIG_DRM_PANEL_SEIKO_43WVF1G=y 323CONFIG_DRM_PANEL_SEIKO_43WVF1G=y
324CONFIG_DRM_TI_TFP410=y
334CONFIG_FB_MXS=y 325CONFIG_FB_MXS=y
335CONFIG_FB_MXC_SYNC_PANEL=y 326CONFIG_FB_MXC_SYNC_PANEL=y
336CONFIG_FB_MXC_OVERLAY=y 327CONFIG_FB_MXC_OVERLAY=y
@@ -359,28 +350,29 @@ CONFIG_SOUND=y
359CONFIG_SND=y 350CONFIG_SND=y
360CONFIG_SND_USB_AUDIO=m 351CONFIG_SND_USB_AUDIO=m
361CONFIG_SND_SOC=y 352CONFIG_SND_SOC=y
353CONFIG_SND_SOC_FSL_ASRC=y
354CONFIG_SND_SOC_FSL_MQS=y
362CONFIG_SND_IMX_SOC=y 355CONFIG_SND_IMX_SOC=y
363CONFIG_SND_SOC_EUKREA_TLV320=y 356CONFIG_SND_SOC_EUKREA_TLV320=y
364CONFIG_SND_SOC_IMX_WM8960=y
365CONFIG_SND_SOC_IMX_SII902X=y 357CONFIG_SND_SOC_IMX_SII902X=y
366CONFIG_SND_SOC_IMX_WM8958=y 358CONFIG_SND_SOC_IMX_WM8958=y
367CONFIG_SND_SOC_IMX_CS42888=y
368CONFIG_SND_SOC_IMX_WM8962=y
369CONFIG_SND_SOC_IMX_RPMSG=y 359CONFIG_SND_SOC_IMX_RPMSG=y
370CONFIG_SND_SOC_IMX_ES8328=y 360CONFIG_SND_SOC_IMX_ES8328=y
371CONFIG_SND_SOC_IMX_SGTL5000=y 361CONFIG_SND_SOC_IMX_SGTL5000=y
372CONFIG_SND_SOC_IMX_MQS=y
373CONFIG_SND_SOC_IMX_SPDIF=y 362CONFIG_SND_SOC_IMX_SPDIF=y
374CONFIG_SND_SOC_IMX_MC13783=y 363CONFIG_SND_SOC_IMX_MC13783=y
364CONFIG_SND_SOC_FSL_ASOC_CARD=y
375CONFIG_SND_SOC_IMX_SI476X=y 365CONFIG_SND_SOC_IMX_SI476X=y
376CONFIG_SND_SOC_IMX_HDMI=y 366CONFIG_SND_SOC_IMX_HDMI=y
377CONFIG_SND_SOC_AC97_CODEC=y 367CONFIG_SND_SOC_AC97_CODEC=y
368CONFIG_SND_SOC_CS42XX8_I2C=y
378CONFIG_SND_SOC_TLV320AIC3X=y 369CONFIG_SND_SOC_TLV320AIC3X=y
370CONFIG_SND_SOC_WM8960=y
371CONFIG_SND_SOC_WM8962=y
379CONFIG_SND_SIMPLE_CARD=y 372CONFIG_SND_SIMPLE_CARD=y
380CONFIG_HID_MULTITOUCH=y 373CONFIG_HID_MULTITOUCH=y
381CONFIG_USB=y 374CONFIG_USB=y
382CONFIG_USB_ANNOUNCE_NEW_DEVICES=y 375CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
383CONFIG_USB_OTG_WHITELIST=y
384CONFIG_USB_EHCI_HCD=y 376CONFIG_USB_EHCI_HCD=y
385CONFIG_USB_EHCI_MXC=y 377CONFIG_USB_EHCI_MXC=y
386CONFIG_USB_HCD_TEST_MODE=y 378CONFIG_USB_HCD_TEST_MODE=y
@@ -447,6 +439,7 @@ CONFIG_RTC_DRV_ISL1208=y
447CONFIG_RTC_DRV_PCF8523=y 439CONFIG_RTC_DRV_PCF8523=y
448CONFIG_RTC_DRV_PCF8563=y 440CONFIG_RTC_DRV_PCF8563=y
449CONFIG_RTC_DRV_M41T80=y 441CONFIG_RTC_DRV_M41T80=y
442CONFIG_RTC_DRV_RC5T619=y
450CONFIG_RTC_DRV_DA9063=y 443CONFIG_RTC_DRV_DA9063=y
451CONFIG_RTC_DRV_MC13XXX=y 444CONFIG_RTC_DRV_MC13XXX=y
452CONFIG_RTC_DRV_MXC=y 445CONFIG_RTC_DRV_MXC=y
@@ -464,12 +457,12 @@ CONFIG_STAGING=y
464CONFIG_STAGING_MEDIA=y 457CONFIG_STAGING_MEDIA=y
465CONFIG_COMMON_CLK_PWM=y 458CONFIG_COMMON_CLK_PWM=y
466CONFIG_MAILBOX=y 459CONFIG_MAILBOX=y
467CONFIG_IMX_MBOX=y
468CONFIG_REMOTEPROC=y 460CONFIG_REMOTEPROC=y
469CONFIG_IMX_REMOTEPROC=y 461CONFIG_IMX_REMOTEPROC=y
470CONFIG_EXTCON_USB_GPIO=y 462CONFIG_EXTCON_USB_GPIO=y
471CONFIG_IIO=y 463CONFIG_IIO=y
472CONFIG_IMX7D_ADC=y 464CONFIG_IMX7D_ADC=y
465CONFIG_RN5T618_ADC=y
473CONFIG_VF610_ADC=y 466CONFIG_VF610_ADC=y
474CONFIG_PWM=y 467CONFIG_PWM=y
475CONFIG_PWM_FSL_FTM=y 468CONFIG_PWM_FSL_FTM=y
@@ -478,7 +471,6 @@ CONFIG_PWM_IMX_TPM=y
478CONFIG_PHY_MIXEL_LVDS=y 471CONFIG_PHY_MIXEL_LVDS=y
479CONFIG_PHY_MIXEL_LVDS_COMBO=y 472CONFIG_PHY_MIXEL_LVDS_COMBO=y
480CONFIG_NVMEM_IMX_OCOTP=y 473CONFIG_NVMEM_IMX_OCOTP=y
481CONFIG_NVMEM_VF610_OCOTP=y
482CONFIG_NVMEM_SNVS_LPGPR=y 474CONFIG_NVMEM_SNVS_LPGPR=y
483CONFIG_TEE=y 475CONFIG_TEE=y
484CONFIG_OPTEE=y 476CONFIG_OPTEE=y
@@ -511,12 +503,15 @@ CONFIG_ZISOFS=y
511CONFIG_UDF_FS=m 503CONFIG_UDF_FS=m
512CONFIG_MSDOS_FS=m 504CONFIG_MSDOS_FS=m
513CONFIG_VFAT_FS=y 505CONFIG_VFAT_FS=y
506CONFIG_TMPFS=y
514CONFIG_TMPFS_POSIX_ACL=y 507CONFIG_TMPFS_POSIX_ACL=y
515CONFIG_JFFS2_FS=y 508CONFIG_JFFS2_FS=y
516CONFIG_UBIFS_FS=y 509CONFIG_UBIFS_FS=y
517CONFIG_NFS_FS=y 510CONFIG_NFS_FS=y
518CONFIG_NFS_V3_ACL=y 511CONFIG_NFS_V3_ACL=y
519CONFIG_NFS_V4=y 512CONFIG_NFS_V4=y
513CONFIG_NFS_V4_1=y
514CONFIG_NFS_V4_2=y
520CONFIG_ROOT_NFS=y 515CONFIG_ROOT_NFS=y
521CONFIG_NLS_DEFAULT="cp437" 516CONFIG_NLS_DEFAULT="cp437"
522CONFIG_NLS_CODEPAGE_437=y 517CONFIG_NLS_CODEPAGE_437=y
@@ -533,7 +528,9 @@ CONFIG_CRYPTO_CFB=m
533CONFIG_CRYPTO_CTS=m 528CONFIG_CRYPTO_CTS=m
534CONFIG_CRYPTO_LRW=m 529CONFIG_CRYPTO_LRW=m
535CONFIG_CRYPTO_OFB=m 530CONFIG_CRYPTO_OFB=m
536CONFIG_CRYPTO_XTS=m 531CONFIG_CRYPTO_PCBC=m
532CONFIG_CRYPTO_XCBC=m
533CONFIG_CRYPTO_VMAC=m
537CONFIG_CRYPTO_MD4=m 534CONFIG_CRYPTO_MD4=m
538CONFIG_CRYPTO_MD5=m 535CONFIG_CRYPTO_MD5=m
539CONFIG_CRYPTO_RMD128=m 536CONFIG_CRYPTO_RMD128=m
@@ -542,37 +539,32 @@ CONFIG_CRYPTO_RMD256=m
542CONFIG_CRYPTO_RMD320=m 539CONFIG_CRYPTO_RMD320=m
543CONFIG_CRYPTO_SHA512=m 540CONFIG_CRYPTO_SHA512=m
544CONFIG_CRYPTO_SHA3=m 541CONFIG_CRYPTO_SHA3=m
542CONFIG_CRYPTO_SM3=m
543CONFIG_CRYPTO_STREEBOG=m
545CONFIG_CRYPTO_TGR192=m 544CONFIG_CRYPTO_TGR192=m
546CONFIG_CRYPTO_WP512=m 545CONFIG_CRYPTO_WP512=m
546CONFIG_CRYPTO_ANUBIS=m
547CONFIG_CRYPTO_ARC4=m
547CONFIG_CRYPTO_BLOWFISH=m 548CONFIG_CRYPTO_BLOWFISH=m
548CONFIG_CRYPTO_CAMELLIA=m 549CONFIG_CRYPTO_CAMELLIA=m
549CONFIG_CRYPTO_CAST5=m 550CONFIG_CRYPTO_CAST5=m
550CONFIG_CRYPTO_CAST6=m 551CONFIG_CRYPTO_CAST6=m
551CONFIG_CRYPTO_DES=m 552CONFIG_CRYPTO_DES=m
552CONFIG_CRYPTO_SERPENT=m
553CONFIG_CRYPTO_TWOFISH=m
554CONFIG_CRYPTO_DEV_FSL_CAAM=y
555CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y
556CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
557CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y
558CONFIG_CRYPTO_DEV_SAHARA=y
559CONFIG_CRYPTO_DEV_MXS_DCP=y
560CONFIG_CRYPTO_PCBC=m
561CONFIG_CRYPTO_XCBC=m
562CONFIG_CRYPTO_VMAC=m
563CONFIG_CRYPTO_SM3=m
564CONFIG_CRYPTO_STREEBOG=m
565CONFIG_CRYPTO_ANUBIS=m
566CONFIG_CRYPTO_FCRYPT=m 553CONFIG_CRYPTO_FCRYPT=m
567CONFIG_CRYPTO_KHAZAD=m 554CONFIG_CRYPTO_KHAZAD=m
568CONFIG_CRYPTO_SALSA20=m 555CONFIG_CRYPTO_SALSA20=m
569CONFIG_CRYPTO_SEED=m 556CONFIG_CRYPTO_SEED=m
557CONFIG_CRYPTO_SERPENT=m
570CONFIG_CRYPTO_SM4=m 558CONFIG_CRYPTO_SM4=m
571CONFIG_CRYPTO_TEA=m 559CONFIG_CRYPTO_TEA=m
560CONFIG_CRYPTO_TWOFISH=m
572CONFIG_CRYPTO_ANSI_CPRNG=m 561CONFIG_CRYPTO_ANSI_CPRNG=m
573# meta-freescale change: Set CRYPTO_SHA1 to y to prevent kernel_configcheck warning 562CONFIG_CRYPTO_USER_API_RNG=m
574#CONFIG_CRYPTO_SHA1=m 563CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=m
575CONFIG_CRYPTO_SHA1=y 564CONFIG_CRYPTO_DEV_FSL_CAAM=m
565CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
566CONFIG_CRYPTO_DEV_SAHARA=y
567CONFIG_CRYPTO_DEV_MXS_DCP=y
576CONFIG_CRC_CCITT=m 568CONFIG_CRC_CCITT=m
577CONFIG_CRC_T10DIF=y 569CONFIG_CRC_T10DIF=y
578CONFIG_CRC7=m 570CONFIG_CRC7=m
@@ -582,9 +574,9 @@ CONFIG_FONTS=y
582CONFIG_FONT_8x8=y 574CONFIG_FONT_8x8=y
583CONFIG_FONT_8x16=y 575CONFIG_FONT_8x16=y
584CONFIG_PRINTK_TIME=y 576CONFIG_PRINTK_TIME=y
585CONFIG_DEBUG_FS=y 577# CONFIG_DEBUG_BUGVERBOSE is not set
586CONFIG_MAGIC_SYSRQ=y 578CONFIG_MAGIC_SYSRQ=y
579CONFIG_DEBUG_FS=y
587# CONFIG_SCHED_DEBUG is not set 580# CONFIG_SCHED_DEBUG is not set
588# CONFIG_DEBUG_PREEMPT is not set 581# CONFIG_DEBUG_PREEMPT is not set
589# CONFIG_DEBUG_BUGVERBOSE is not set
590# CONFIG_FTRACE is not set 582# CONFIG_FTRACE is not set
diff --git a/recipes-kernel/linux/linux-imx/mx8/defconfig b/recipes-kernel/linux/linux-imx/mx8/defconfig
index 1de0c724..65c676a9 100644
--- a/recipes-kernel/linux/linux-imx/mx8/defconfig
+++ b/recipes-kernel/linux/linux-imx/mx8/defconfig
@@ -7,15 +7,12 @@ CONFIG_PREEMPT=y
7CONFIG_IRQ_TIME_ACCOUNTING=y 7CONFIG_IRQ_TIME_ACCOUNTING=y
8CONFIG_BSD_PROCESS_ACCT=y 8CONFIG_BSD_PROCESS_ACCT=y
9CONFIG_BSD_PROCESS_ACCT_V3=y 9CONFIG_BSD_PROCESS_ACCT_V3=y
10CONFIG_TASKSTATS=y
11CONFIG_TASK_DELAY_ACCT=y
12CONFIG_TASK_XACCT=y 10CONFIG_TASK_XACCT=y
13CONFIG_TASK_IO_ACCOUNTING=y 11CONFIG_TASK_IO_ACCOUNTING=y
14CONFIG_IKCONFIG=y 12CONFIG_IKCONFIG=y
15CONFIG_IKCONFIG_PROC=y 13CONFIG_IKCONFIG_PROC=y
16CONFIG_NUMA_BALANCING=y 14CONFIG_NUMA_BALANCING=y
17CONFIG_MEMCG=y 15CONFIG_MEMCG=y
18CONFIG_MEMCG_SWAP=y
19CONFIG_BLK_CGROUP=y 16CONFIG_BLK_CGROUP=y
20CONFIG_CGROUP_PIDS=y 17CONFIG_CGROUP_PIDS=y
21CONFIG_CGROUP_HUGETLB=y 18CONFIG_CGROUP_HUGETLB=y
@@ -36,9 +33,10 @@ CONFIG_ARCH_S32=y
36CONFIG_SOC_S32V234=y 33CONFIG_SOC_S32V234=y
37CONFIG_ARM64_VA_BITS_48=y 34CONFIG_ARM64_VA_BITS_48=y
38CONFIG_SCHED_MC=y 35CONFIG_SCHED_MC=y
36CONFIG_SCHED_SMT=y
39CONFIG_NUMA=y 37CONFIG_NUMA=y
40CONFIG_SECCOMP=y
41CONFIG_KEXEC=y 38CONFIG_KEXEC=y
39CONFIG_KEXEC_FILE=y
42CONFIG_CRASH_DUMP=y 40CONFIG_CRASH_DUMP=y
43CONFIG_XEN=y 41CONFIG_XEN=y
44CONFIG_FORCE_MAX_ZONEORDER=14 42CONFIG_FORCE_MAX_ZONEORDER=14
@@ -47,6 +45,7 @@ CONFIG_RANDOMIZE_BASE=y
47CONFIG_PM_DEBUG=y 45CONFIG_PM_DEBUG=y
48CONFIG_PM_TEST_SUSPEND=y 46CONFIG_PM_TEST_SUSPEND=y
49CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y 47CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
48CONFIG_ENERGY_MODEL=y
50CONFIG_ARM_CPUIDLE=y 49CONFIG_ARM_CPUIDLE=y
51CONFIG_ARM_PSCI_CPUIDLE=y 50CONFIG_ARM_PSCI_CPUIDLE=y
52CONFIG_CPU_FREQ=y 51CONFIG_CPU_FREQ=y
@@ -66,11 +65,9 @@ CONFIG_EFI_CAPSULE_LOADER=y
66CONFIG_IMX_DSP=y 65CONFIG_IMX_DSP=y
67CONFIG_IMX_SCU=y 66CONFIG_IMX_SCU=y
68CONFIG_IMX_SCU_PD=y 67CONFIG_IMX_SCU_PD=y
69CONFIG_IMX_SECO_MU=y
70CONFIG_ACPI=y 68CONFIG_ACPI=y
71CONFIG_ACPI_APEI=y 69CONFIG_ACPI_APEI=y
72CONFIG_ACPI_APEI_GHES=y 70CONFIG_ACPI_APEI_GHES=y
73CONFIG_ACPI_APEI_PCIEAER=y
74CONFIG_ACPI_APEI_MEMORY_FAILURE=y 71CONFIG_ACPI_APEI_MEMORY_FAILURE=y
75CONFIG_ACPI_APEI_EINJ=y 72CONFIG_ACPI_APEI_EINJ=y
76CONFIG_VIRTUALIZATION=y 73CONFIG_VIRTUALIZATION=y
@@ -125,20 +122,30 @@ CONFIG_IP6_NF_NAT=m
125CONFIG_IP6_NF_TARGET_MASQUERADE=m 122CONFIG_IP6_NF_TARGET_MASQUERADE=m
126CONFIG_BRIDGE=m 123CONFIG_BRIDGE=m
127CONFIG_BRIDGE_VLAN_FILTERING=y 124CONFIG_BRIDGE_VLAN_FILTERING=y
125CONFIG_NET_DSA=m
128CONFIG_VLAN_8021Q_GVRP=y 126CONFIG_VLAN_8021Q_GVRP=y
129CONFIG_VLAN_8021Q_MVRP=y 127CONFIG_VLAN_8021Q_MVRP=y
130CONFIG_LLC2=y 128CONFIG_LLC2=y
131CONFIG_NET_SCHED=y 129CONFIG_NET_SCHED=y
132CONFIG_NET_SCH_MULTIQ=y 130CONFIG_NET_SCH_MULTIQ=m
133CONFIG_NET_SCH_CBS=y 131CONFIG_NET_SCH_CBS=m
134CONFIG_NET_SCH_TAPRIO=y 132CONFIG_NET_SCH_ETF=m
135CONFIG_NET_SCH_MQPRIO=y 133CONFIG_NET_SCH_TAPRIO=m
136CONFIG_NET_CLS_BASIC=y 134CONFIG_NET_SCH_MQPRIO=m
137CONFIG_NET_CLS_TCINDEX=y 135CONFIG_NET_SCH_INGRESS=m
136CONFIG_NET_CLS_BASIC=m
137CONFIG_NET_CLS_TCINDEX=m
138CONFIG_NET_CLS_FLOWER=m
139CONFIG_NET_CLS_ACT=y
140CONFIG_NET_ACT_GACT=m
141CONFIG_NET_ACT_MIRRED=m
142CONFIG_NET_ACT_GATE=m
138CONFIG_TSN=y 143CONFIG_TSN=y
139CONFIG_NET_SWITCHDEV=y 144CONFIG_QRTR=m
145CONFIG_QRTR_SMD=m
146CONFIG_QRTR_TUN=m
140CONFIG_BPF_JIT=y 147CONFIG_BPF_JIT=y
141CONFIG_NET_PKTGEN=y 148CONFIG_NET_PKTGEN=m
142CONFIG_CAN=m 149CONFIG_CAN=m
143CONFIG_CAN_FLEXCAN=m 150CONFIG_CAN_FLEXCAN=m
144CONFIG_BT=y 151CONFIG_BT=y
@@ -148,8 +155,6 @@ CONFIG_BT_BNEP=y
148CONFIG_BT_BNEP_MC_FILTER=y 155CONFIG_BT_BNEP_MC_FILTER=y
149CONFIG_BT_BNEP_PROTO_FILTER=y 156CONFIG_BT_BNEP_PROTO_FILTER=y
150CONFIG_BT_HIDP=y 157CONFIG_BT_HIDP=y
151# CONFIG_BT_HS is not set
152# CONFIG_BT_LE is not set
153CONFIG_BT_LEDS=y 158CONFIG_BT_LEDS=y
154# CONFIG_BT_DEBUGFS is not set 159# CONFIG_BT_DEBUGFS is not set
155CONFIG_BT_HCIBTUSB=m 160CONFIG_BT_HCIBTUSB=m
@@ -168,9 +173,13 @@ CONFIG_MAC80211=y
168CONFIG_MAC80211_LEDS=y 173CONFIG_MAC80211_LEDS=y
169CONFIG_NET_9P=y 174CONFIG_NET_9P=y
170CONFIG_NET_9P_VIRTIO=y 175CONFIG_NET_9P_VIRTIO=y
176CONFIG_NFC=m
177CONFIG_NFC_NCI=m
178CONFIG_NFC_S3FWRN5_I2C=m
171CONFIG_PCI=y 179CONFIG_PCI=y
172CONFIG_PCIEPORTBUS=y 180CONFIG_PCIEPORTBUS=y
173CONFIG_PCI_IOV=y 181CONFIG_PCI_IOV=y
182CONFIG_PCI_PASID=y
174CONFIG_HOTPLUG_PCI=y 183CONFIG_HOTPLUG_PCI=y
175CONFIG_HOTPLUG_PCI_ACPI=y 184CONFIG_HOTPLUG_PCI_ACPI=y
176CONFIG_PCI_HOST_GENERIC=y 185CONFIG_PCI_HOST_GENERIC=y
@@ -184,11 +193,11 @@ CONFIG_PCI_IMX6_EP=y
184CONFIG_PCI_LAYERSCAPE=y 193CONFIG_PCI_LAYERSCAPE=y
185CONFIG_PCI_HISI=y 194CONFIG_PCI_HISI=y
186CONFIG_PCIE_KIRIN=y 195CONFIG_PCIE_KIRIN=y
196CONFIG_PCI_MESON=m
187CONFIG_PCIE_LAYERSCAPE_GEN4=y 197CONFIG_PCIE_LAYERSCAPE_GEN4=y
188CONFIG_PCI_ENDPOINT=y 198CONFIG_PCI_ENDPOINT=y
189CONFIG_PCI_ENDPOINT_CONFIGFS=y 199CONFIG_PCI_ENDPOINT_CONFIGFS=y
190CONFIG_PCI_EPF_TEST=y 200CONFIG_PCI_EPF_TEST=y
191CONFIG_IMX_MIC_EPF=m
192CONFIG_DEVTMPFS=y 201CONFIG_DEVTMPFS=y
193CONFIG_DEVTMPFS_MOUNT=y 202CONFIG_DEVTMPFS_MOUNT=y
194CONFIG_FW_LOADER_USER_HELPER=y 203CONFIG_FW_LOADER_USER_HELPER=y
@@ -196,7 +205,6 @@ CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
196CONFIG_BRCMSTB_GISB_ARB=y 205CONFIG_BRCMSTB_GISB_ARB=y
197CONFIG_SIMPLE_PM_BUS=y 206CONFIG_SIMPLE_PM_BUS=y
198CONFIG_VEXPRESS_CONFIG=y 207CONFIG_VEXPRESS_CONFIG=y
199CONFIG_FSL_MC_BUS=y
200CONFIG_FSL_MC_UAPI_SUPPORT=y 208CONFIG_FSL_MC_UAPI_SUPPORT=y
201CONFIG_MTD=y 209CONFIG_MTD=y
202CONFIG_MTD_CMDLINE_PARTS=y 210CONFIG_MTD_CMDLINE_PARTS=y
@@ -226,20 +234,15 @@ CONFIG_SENSORS_FXOS8700=y
226CONFIG_SENSORS_FXAS2100X=y 234CONFIG_SENSORS_FXAS2100X=y
227CONFIG_SRAM=y 235CONFIG_SRAM=y
228CONFIG_PCI_ENDPOINT_TEST=y 236CONFIG_PCI_ENDPOINT_TEST=y
229CONFIG_EEPROM_AT24=y 237CONFIG_EEPROM_AT24=m
230CONFIG_EEPROM_AT25=m 238CONFIG_EEPROM_AT25=m
231CONFIG_SCIF_BUS=m 239CONFIG_UACCE=m
232CONFIG_VOP_BUS=m
233CONFIG_IMX_MIC_HOST=m
234CONFIG_IMX_MIC_CARD=m
235CONFIG_SCIF=m
236CONFIG_MIC_COSM=m
237CONFIG_VOP=m
238# CONFIG_SCSI_PROC_FS is not set 240# CONFIG_SCSI_PROC_FS is not set
239CONFIG_BLK_DEV_SD=y 241CONFIG_BLK_DEV_SD=y
240CONFIG_SCSI_SAS_ATA=y 242CONFIG_SCSI_SAS_ATA=y
241CONFIG_SCSI_HISI_SAS=y 243CONFIG_SCSI_HISI_SAS=y
242CONFIG_SCSI_HISI_SAS_PCI=y 244CONFIG_SCSI_HISI_SAS_PCI=y
245CONFIG_MEGARAID_SAS=y
243CONFIG_SCSI_MPT3SAS=m 246CONFIG_SCSI_MPT3SAS=m
244CONFIG_SCSI_UFSHCD=y 247CONFIG_SCSI_UFSHCD=y
245CONFIG_SCSI_UFSHCD_PLATFORM=y 248CONFIG_SCSI_UFSHCD_PLATFORM=y
@@ -265,16 +268,22 @@ CONFIG_MACVTAP=m
265CONFIG_TUN=y 268CONFIG_TUN=y
266CONFIG_VETH=m 269CONFIG_VETH=m
267CONFIG_VIRTIO_NET=y 270CONFIG_VIRTIO_NET=y
271CONFIG_NET_DSA_MSCC_FELIX=m
268CONFIG_AMD_XGBE=y 272CONFIG_AMD_XGBE=y
269CONFIG_ATL1C=m 273CONFIG_ATL1C=m
274CONFIG_BCMGENET=m
270CONFIG_BNX2X=m 275CONFIG_BNX2X=m
271CONFIG_MACB=y 276CONFIG_MACB=y
272CONFIG_THUNDER_NIC_PF=y 277CONFIG_THUNDER_NIC_PF=y
273CONFIG_FEC=y 278CONFIG_FEC=y
274CONFIG_FSL_SDK_DPAA_ETH=y 279CONFIG_FSL_FMAN=y
280CONFIG_FSL_DPAA_ETH=y
275CONFIG_FSL_DPAA2_ETH=y 281CONFIG_FSL_DPAA2_ETH=y
282CONFIG_FSL_DPAA2_MAC=y
276CONFIG_FSL_ENETC=y 283CONFIG_FSL_ENETC=y
277CONFIG_FSL_ENETC_VF=y 284CONFIG_FSL_ENETC_VF=y
285CONFIG_FSL_ENETC_QOS=y
286CONFIG_ENETC_TSN=y
278CONFIG_HIX5HD2_GMAC=y 287CONFIG_HIX5HD2_GMAC=y
279CONFIG_HNS_DSAF=y 288CONFIG_HNS_DSAF=y
280CONFIG_HNS_ENET=y 289CONFIG_HNS_ENET=y
@@ -292,22 +301,26 @@ CONFIG_MLX5_CORE=m
292CONFIG_MLX5_CORE_EN=y 301CONFIG_MLX5_CORE_EN=y
293CONFIG_MSCC_OCELOT_SWITCH=y 302CONFIG_MSCC_OCELOT_SWITCH=y
294CONFIG_QCOM_EMAC=m 303CONFIG_QCOM_EMAC=m
304CONFIG_RMNET=m
295CONFIG_SMC91X=y 305CONFIG_SMC91X=y
296CONFIG_SMSC911X=y 306CONFIG_SMSC911X=y
297CONFIG_STMMAC_ETH=y 307CONFIG_STMMAC_ETH=y
298CONFIG_MDIO_BITBANG=y 308CONFIG_DWMAC_GENERIC=m
299CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
300CONFIG_AQUANTIA_PHY=y 309CONFIG_AQUANTIA_PHY=y
301CONFIG_AT803X_PHY=y 310CONFIG_BROADCOM_PHY=m
302CONFIG_INPHI_PHY=y 311CONFIG_INPHI_PHY=y
303CONFIG_MARVELL_PHY=m 312CONFIG_MARVELL_PHY=m
304CONFIG_MARVELL_10G_PHY=m 313CONFIG_MARVELL_10G_PHY=m
305CONFIG_MICREL_PHY=y 314CONFIG_MICREL_PHY=y
306CONFIG_MICROSEMI_PHY=y 315CONFIG_MICROSEMI_PHY=y
307CONFIG_NXP_TJA11XX_PHY=y 316CONFIG_NXP_TJA11XX_PHY=y
317CONFIG_AT803X_PHY=y
308CONFIG_REALTEK_PHY=y 318CONFIG_REALTEK_PHY=y
309CONFIG_ROCKCHIP_PHY=y 319CONFIG_ROCKCHIP_PHY=y
310CONFIG_VITESSE_PHY=y 320CONFIG_VITESSE_PHY=y
321CONFIG_MDIO_BITBANG=y
322CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
323CONFIG_MDIO_BUS_MUX_MMIOREG=y
311CONFIG_USB_PEGASUS=m 324CONFIG_USB_PEGASUS=m
312CONFIG_USB_RTL8150=m 325CONFIG_USB_RTL8150=m
313CONFIG_USB_RTL8152=m 326CONFIG_USB_RTL8152=m
@@ -319,10 +332,7 @@ CONFIG_USB_NET_SMSC75XX=m
319CONFIG_USB_NET_SMSC95XX=m 332CONFIG_USB_NET_SMSC95XX=m
320CONFIG_USB_NET_PLUSB=m 333CONFIG_USB_NET_PLUSB=m
321CONFIG_USB_NET_MCS7830=m 334CONFIG_USB_NET_MCS7830=m
322CONFIG_BRCMFMAC=m
323CONFIG_BRCMFMAC_PCIE=y
324CONFIG_HOSTAP=y 335CONFIG_HOSTAP=y
325CONFIG_MXMWIFIEX=m
326CONFIG_WL18XX=m 336CONFIG_WL18XX=m
327CONFIG_WLCORE_SDIO=m 337CONFIG_WLCORE_SDIO=m
328CONFIG_XEN_NETDEV_BACKEND=m 338CONFIG_XEN_NETDEV_BACKEND=m
@@ -379,6 +389,7 @@ CONFIG_I2C_CROS_EC_TUNNEL=y
379CONFIG_XEN_I2C_BACKEND=y 389CONFIG_XEN_I2C_BACKEND=y
380CONFIG_I2C_SLAVE=y 390CONFIG_I2C_SLAVE=y
381CONFIG_SPI=y 391CONFIG_SPI=y
392CONFIG_SPI_CADENCE_QUADSPI=y
382CONFIG_SPI_FSL_LPSPI=y 393CONFIG_SPI_FSL_LPSPI=y
383CONFIG_SPI_FSL_QUADSPI=y 394CONFIG_SPI_FSL_QUADSPI=y
384CONFIG_SPI_NXP_FLEXSPI=y 395CONFIG_SPI_NXP_FLEXSPI=y
@@ -401,20 +412,21 @@ CONFIG_PINCTRL_IMX8QM=y
401CONFIG_PINCTRL_IMX8QXP=y 412CONFIG_PINCTRL_IMX8QXP=y
402CONFIG_PINCTRL_IMX8DXL=y 413CONFIG_PINCTRL_IMX8DXL=y
403CONFIG_PINCTRL_S32V234=y 414CONFIG_PINCTRL_S32V234=y
404CONFIG_GPIOLIB=y
405CONFIG_GPIO_SYSFS=y 415CONFIG_GPIO_SYSFS=y
416CONFIG_GPIO_ALTERA=m
406CONFIG_GPIO_DWAPB=y 417CONFIG_GPIO_DWAPB=y
407CONFIG_GPIO_MB86S7X=y 418CONFIG_GPIO_MB86S7X=y
408CONFIG_GPIO_MPC8XXX=y 419CONFIG_GPIO_MPC8XXX=y
409CONFIG_GPIO_PL061=y 420CONFIG_GPIO_PL061=y
421CONFIG_GPIO_WCD934X=m
410CONFIG_GPIO_XGENE=y 422CONFIG_GPIO_XGENE=y
411CONFIG_GPIO_MAX732X=y 423CONFIG_GPIO_MAX732X=y
412CONFIG_GPIO_PCA953X=y 424CONFIG_GPIO_PCA953X=y
413CONFIG_GPIO_PCA953X_IRQ=y 425CONFIG_GPIO_PCA953X_IRQ=y
426CONFIG_GPIO_BD9571MWV=m
414CONFIG_GPIO_MAX77620=y 427CONFIG_GPIO_MAX77620=y
415CONFIG_POWER_AVS=y 428CONFIG_GPIO_SL28CPLD=m
416CONFIG_POWER_RESET_BRCMSTB=y 429CONFIG_POWER_RESET_BRCMSTB=y
417CONFIG_POWER_RESET_VEXPRESS=y
418CONFIG_POWER_RESET_XGENE=y 430CONFIG_POWER_RESET_XGENE=y
419CONFIG_POWER_RESET_SYSCON=y 431CONFIG_POWER_RESET_SYSCON=y
420CONFIG_SYSCON_REBOOT_MODE=y 432CONFIG_SYSCON_REBOOT_MODE=y
@@ -423,6 +435,7 @@ CONFIG_BATTERY_BQ27XXX=y
423CONFIG_SENSORS_ARM_SCPI=y 435CONFIG_SENSORS_ARM_SCPI=y
424CONFIG_SENSORS_LM90=m 436CONFIG_SENSORS_LM90=m
425CONFIG_SENSORS_PWM_FAN=m 437CONFIG_SENSORS_PWM_FAN=m
438CONFIG_SENSORS_SL28CPLD=m
426CONFIG_SENSORS_INA2XX=m 439CONFIG_SENSORS_INA2XX=m
427CONFIG_SENSORS_INA3221=m 440CONFIG_SENSORS_INA3221=m
428CONFIG_THERMAL_WRITABLE_TRIPS=y 441CONFIG_THERMAL_WRITABLE_TRIPS=y
@@ -430,25 +443,28 @@ CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
430CONFIG_CPU_THERMAL=y 443CONFIG_CPU_THERMAL=y
431CONFIG_THERMAL_EMULATION=y 444CONFIG_THERMAL_EMULATION=y
432CONFIG_IMX_SC_THERMAL=y 445CONFIG_IMX_SC_THERMAL=y
433CONFIG_DEVICE_THERMAL=y
434CONFIG_IMX8MM_THERMAL=y 446CONFIG_IMX8MM_THERMAL=y
447CONFIG_DEVICE_THERMAL=y
435CONFIG_QORIQ_THERMAL=y 448CONFIG_QORIQ_THERMAL=y
436CONFIG_WATCHDOG=y 449CONFIG_WATCHDOG=y
450CONFIG_SL28CPLD_WATCHDOG=m
437CONFIG_ARM_SP805_WATCHDOG=y 451CONFIG_ARM_SP805_WATCHDOG=y
438CONFIG_ARM_SBSA_WATCHDOG=y 452CONFIG_ARM_SBSA_WATCHDOG=y
439CONFIG_DW_WATCHDOG=y 453CONFIG_DW_WATCHDOG=y
440CONFIG_IMX2_WDT=y 454CONFIG_IMX2_WDT=y
441CONFIG_IMX_SC_WDT=y 455CONFIG_IMX_SC_WDT=y
456CONFIG_ARM_SMC_WATCHDOG=y
442CONFIG_XEN_WDT=y 457CONFIG_XEN_WDT=y
443CONFIG_MFD_BD9571MWV=y 458CONFIG_MFD_BD9571MWV=y
444CONFIG_MFD_AXP20X_I2C=y 459CONFIG_MFD_AXP20X_I2C=y
445CONFIG_MFD_IMX_AUDIOMIX=y 460CONFIG_MFD_IMX_MIX=y
446CONFIG_MFD_HI6421_PMIC=y 461CONFIG_MFD_HI6421_PMIC=y
447CONFIG_MFD_MAX77620=y 462CONFIG_MFD_MAX77620=y
448CONFIG_MFD_RK808=y 463CONFIG_MFD_RK808=y
449CONFIG_MFD_SEC_CORE=y 464CONFIG_MFD_SEC_CORE=y
465CONFIG_MFD_SL28CPLD=y
450CONFIG_MFD_ROHM_BD718XX=y 466CONFIG_MFD_ROHM_BD718XX=y
451CONFIG_MFD_PCA9450=y 467CONFIG_MFD_WCD934X=m
452CONFIG_REGULATOR=y 468CONFIG_REGULATOR=y
453CONFIG_REGULATOR_FIXED_VOLTAGE=y 469CONFIG_REGULATOR_FIXED_VOLTAGE=y
454CONFIG_REGULATOR_AXP20X=y 470CONFIG_REGULATOR_AXP20X=y
@@ -485,19 +501,22 @@ CONFIG_MEDIA_SUPPORT=y
485CONFIG_MEDIA_CAMERA_SUPPORT=y 501CONFIG_MEDIA_CAMERA_SUPPORT=y
486CONFIG_MEDIA_ANALOG_TV_SUPPORT=y 502CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
487CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y 503CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
488CONFIG_MEDIA_CONTROLLER=y 504CONFIG_MEDIA_SDR_SUPPORT=y
489CONFIG_VIDEO_V4L2_SUBDEV_API=y 505CONFIG_MEDIA_PLATFORM_SUPPORT=y
490# CONFIG_DVB_NET is not set 506# CONFIG_DVB_NET is not set
491CONFIG_MEDIA_USB_SUPPORT=y 507CONFIG_MEDIA_USB_SUPPORT=y
492CONFIG_USB_VIDEO_CLASS=m 508CONFIG_USB_VIDEO_CLASS=m
493CONFIG_V4L_PLATFORM_DRIVERS=y 509CONFIG_V4L_PLATFORM_DRIVERS=y
494CONFIG_VIDEO_MX8_CAPTURE=y
495CONFIG_VIDEO_MXC_CAPTURE=y 510CONFIG_VIDEO_MXC_CAPTURE=y
511CONFIG_VIDEO_MX8_CAPTURE=y
496CONFIG_VIDEO_MXC_CSI_CAMERA=y 512CONFIG_VIDEO_MXC_CSI_CAMERA=y
497CONFIG_MXC_MIPI_CSI=y 513CONFIG_MXC_MIPI_CSI=y
498CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y 514CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y
499CONFIG_V4L_MEM2MEM_DRIVERS=y 515CONFIG_V4L_MEM2MEM_DRIVERS=y
516CONFIG_SDR_PLATFORM_DRIVERS=y
517CONFIG_VIDEO_IMX219=m
500CONFIG_VIDEO_OV5640=y 518CONFIG_VIDEO_OV5640=y
519CONFIG_VIDEO_OV5645=m
501CONFIG_IMX_DPU_CORE=y 520CONFIG_IMX_DPU_CORE=y
502CONFIG_IMX_LCDIF_CORE=y 521CONFIG_IMX_LCDIF_CORE=y
503CONFIG_IMX_LCDIFV3_CORE=y 522CONFIG_IMX_LCDIFV3_CORE=y
@@ -505,17 +524,28 @@ CONFIG_DRM=y
505CONFIG_DRM_I2C_NXP_TDA998X=m 524CONFIG_DRM_I2C_NXP_TDA998X=m
506CONFIG_DRM_MALI_DISPLAY=m 525CONFIG_DRM_MALI_DISPLAY=m
507CONFIG_DRM_NOUVEAU=m 526CONFIG_DRM_NOUVEAU=m
527CONFIG_DRM_RCAR_DW_HDMI=m
508CONFIG_DRM_RCAR_LVDS=m 528CONFIG_DRM_RCAR_LVDS=m
529CONFIG_DRM_PANEL_LVDS=m
509CONFIG_DRM_PANEL_SIMPLE=y 530CONFIG_DRM_PANEL_SIMPLE=y
510CONFIG_DRM_PANEL_RAYDIUM_RM67191=y 531CONFIG_DRM_PANEL_RAYDIUM_RM67191=y
511CONFIG_DRM_PANEL_SEIKO_43WVF1G=y 532CONFIG_DRM_PANEL_SEIKO_43WVF1G=y
533CONFIG_DRM_PANEL_SITRONIX_ST7703=m
534CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
512CONFIG_DRM_PANEL_WKS_101WX001=y 535CONFIG_DRM_PANEL_WKS_101WX001=y
536CONFIG_DRM_DISPLAY_CONNECTOR=m
537CONFIG_DRM_LONTIUM_LT9611=m
513CONFIG_DRM_FSL_IMX_LVDS_BRIDGE=y 538CONFIG_DRM_FSL_IMX_LVDS_BRIDGE=y
539CONFIG_DRM_NWL_MIPI_DSI=y
514CONFIG_DRM_NXP_SEIKO_43WVFIG=y 540CONFIG_DRM_NXP_SEIKO_43WVFIG=y
515CONFIG_DRM_SII902X=m 541CONFIG_DRM_SII902X=m
542CONFIG_DRM_SIMPLE_BRIDGE=m
543CONFIG_DRM_THINE_THC63LVD1024=m
544CONFIG_DRM_TI_SN65DSI86=m
516CONFIG_DRM_I2C_ADV7511=y 545CONFIG_DRM_I2C_ADV7511=y
517CONFIG_DRM_NWL_MIPI_DSI=y 546CONFIG_DRM_I2C_ADV7511_AUDIO=y
518CONFIG_DRM_CDNS_HDMI_CEC=y 547CONFIG_DRM_CDNS_HDMI_CEC=y
548CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
519CONFIG_DRM_DW_HDMI_I2S_AUDIO=m 549CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
520CONFIG_DRM_DW_HDMI_GP_AUDIO=y 550CONFIG_DRM_DW_HDMI_GP_AUDIO=y
521CONFIG_DRM_DW_HDMI_CEC=y 551CONFIG_DRM_DW_HDMI_CEC=y
@@ -541,7 +571,6 @@ CONFIG_DRM_LIMA=m
541CONFIG_DRM_PANFROST=m 571CONFIG_DRM_PANFROST=m
542CONFIG_FB_ARMCLCD=y 572CONFIG_FB_ARMCLCD=y
543CONFIG_FB_EFI=y 573CONFIG_FB_EFI=y
544CONFIG_BACKLIGHT_GENERIC=m
545CONFIG_BACKLIGHT_PWM=y 574CONFIG_BACKLIGHT_PWM=y
546CONFIG_BACKLIGHT_LP855X=m 575CONFIG_BACKLIGHT_LP855X=m
547CONFIG_LOGO=y 576CONFIG_LOGO=y
@@ -552,45 +581,55 @@ CONFIG_SND=y
552CONFIG_SND_DYNAMIC_MINORS=y 581CONFIG_SND_DYNAMIC_MINORS=y
553CONFIG_SND_USB_AUDIO=m 582CONFIG_SND_USB_AUDIO=m
554CONFIG_SND_SOC=y 583CONFIG_SND_SOC=y
584CONFIG_SND_SOC_FSL_ASRC=y
585CONFIG_SND_SOC_FSL_MQS=y
555CONFIG_SND_SOC_FSL_EASRC=y 586CONFIG_SND_SOC_FSL_EASRC=y
587CONFIG_SND_SOC_FSL_ESAI_CLIENT=y
556CONFIG_SND_IMX_SOC=y 588CONFIG_SND_IMX_SOC=y
557CONFIG_SND_SOC_IMX_AK4458=y 589CONFIG_SND_SOC_IMX_AK4458=y
558CONFIG_SND_SOC_IMX_AK5558=y 590CONFIG_SND_SOC_IMX_AK5558=y
559CONFIG_SND_SOC_IMX_AK4497=y 591CONFIG_SND_SOC_IMX_AK4497=y
560CONFIG_SND_SOC_IMX_WM8960=y
561CONFIG_SND_SOC_IMX_WM8524=y
562CONFIG_SND_SOC_IMX_CS42888=y
563CONFIG_SND_SOC_IMX_MICFIL=y 592CONFIG_SND_SOC_IMX_MICFIL=y
564CONFIG_SND_SOC_IMX_RPMSG=y 593CONFIG_SND_SOC_IMX_RPMSG=y
565CONFIG_SND_SOC_IMX_MQS=y
566CONFIG_SND_SOC_IMX_SPDIF=y 594CONFIG_SND_SOC_IMX_SPDIF=y
595CONFIG_SND_SOC_FSL_ASOC_CARD=y
567CONFIG_SND_SOC_IMX_AUDMIX=y 596CONFIG_SND_SOC_IMX_AUDMIX=y
597CONFIG_SND_SOC_IMX_XCVR=y
598CONFIG_SND_SOC_IMX_PCM512X=y
568CONFIG_SND_SOC_IMX_PDM_MIC=y 599CONFIG_SND_SOC_IMX_PDM_MIC=y
569CONFIG_SND_SOC_IMX_DSP=y 600CONFIG_SND_SOC_IMX_DSP=y
570CONFIG_SND_SOC_IMX_CDNHDMI=y 601CONFIG_SND_SOC_IMX_CDNHDMI=y
571CONFIG_SND_SOC_IMX_XCVR=y
572CONFIG_SND_SOC_IMX_PCM512X=y
573CONFIG_SND_SOC_SOF_TOPLEVEL=y 602CONFIG_SND_SOC_SOF_TOPLEVEL=y
574CONFIG_SND_SOC_SOF_OF=m 603CONFIG_SND_SOC_SOF_OF=m
604CONFIG_SND_SOC_SOF_COMPRESS=y
575CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y 605CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y
576CONFIG_SND_SOC_SOF_IMX8_SUPPORT=m 606CONFIG_SND_SOC_SOF_IMX8_SUPPORT=y
577CONFIG_SND_SOC_SOF_IMX8M_SUPPORT=m 607CONFIG_SND_SOC_SOF_IMX8M_SUPPORT=y
578CONFIG_SND_SOC_AK4613=m 608CONFIG_SND_SOC_AK4613=m
579CONFIG_SND_SOC_BT_SCO=y 609CONFIG_SND_SOC_BT_SCO=y
610CONFIG_SND_SOC_CROS_EC_CODEC=m
611CONFIG_SND_SOC_CS42XX8_I2C=y
580CONFIG_SND_SOC_DMIC=m 612CONFIG_SND_SOC_DMIC=m
581CONFIG_SND_SOC_ES7134=m 613CONFIG_SND_SOC_ES7134=m
582CONFIG_SND_SOC_ES7241=m 614CONFIG_SND_SOC_ES7241=m
583CONFIG_SND_SOC_MAX98357A=m 615CONFIG_SND_SOC_MAX98357A=m
616CONFIG_SND_SOC_MAX98927=m
584CONFIG_SND_SOC_PCM3168A_I2C=m 617CONFIG_SND_SOC_PCM3168A_I2C=m
585CONFIG_SND_SOC_SGTL5000=m 618CONFIG_SND_SOC_SGTL5000=m
619CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
586CONFIG_SND_SOC_SPDIF=m 620CONFIG_SND_SOC_SPDIF=m
587CONFIG_SND_SOC_TAS571X=m 621CONFIG_SND_SOC_TAS571X=m
622CONFIG_SND_SOC_WCD934X=m
623CONFIG_SND_SOC_WM8524=y
624CONFIG_SND_SOC_WM8904=m
625CONFIG_SND_SOC_WM8960=y
626CONFIG_SND_SOC_WSA881X=m
588CONFIG_SND_SIMPLE_CARD=y 627CONFIG_SND_SIMPLE_CARD=y
589CONFIG_SND_AUDIO_GRAPH_CARD=y 628CONFIG_SND_AUDIO_GRAPH_CARD=y
590CONFIG_I2C_HID=m 629CONFIG_I2C_HID=m
630CONFIG_USB_CONN_GPIO=y
591CONFIG_USB=y 631CONFIG_USB=y
592CONFIG_USB_OTG=y 632CONFIG_USB_OTG=y
593CONFIG_USB_OTG_WHITELIST=y
594CONFIG_USB_XHCI_HCD=y 633CONFIG_USB_XHCI_HCD=y
595CONFIG_USB_EHCI_HCD=y 634CONFIG_USB_EHCI_HCD=y
596CONFIG_USB_EHCI_HCD_PLATFORM=y 635CONFIG_USB_EHCI_HCD_PLATFORM=y
@@ -650,6 +689,8 @@ CONFIG_USB_G_SERIAL=m
650CONFIG_TYPEC=y 689CONFIG_TYPEC=y
651CONFIG_TYPEC_TCPM=y 690CONFIG_TYPEC_TCPM=y
652CONFIG_TYPEC_TCPCI=y 691CONFIG_TYPEC_TCPCI=y
692CONFIG_TYPEC_FUSB302=m
693CONFIG_TYPEC_HD3SS3220=m
653CONFIG_TYPEC_SWITCH_GPIO=y 694CONFIG_TYPEC_SWITCH_GPIO=y
654CONFIG_MMC=y 695CONFIG_MMC=y
655CONFIG_MMC_BLOCK_MINORS=32 696CONFIG_MMC_BLOCK_MINORS=32
@@ -668,11 +709,13 @@ CONFIG_MMC_DW_EXYNOS=y
668CONFIG_MMC_DW_HI3798CV200=y 709CONFIG_MMC_DW_HI3798CV200=y
669CONFIG_MMC_DW_K3=y 710CONFIG_MMC_DW_K3=y
670CONFIG_MMC_SDHCI_XENON=y 711CONFIG_MMC_SDHCI_XENON=y
712CONFIG_MMC_SDHCI_AM654=y
671CONFIG_NEW_LEDS=y 713CONFIG_NEW_LEDS=y
672CONFIG_LEDS_CLASS=y 714CONFIG_LEDS_CLASS=y
673CONFIG_LEDS_GPIO=y 715CONFIG_LEDS_GPIO=y
674CONFIG_LEDS_PWM=y 716CONFIG_LEDS_PWM=y
675CONFIG_LEDS_SYSCON=y 717CONFIG_LEDS_SYSCON=y
718CONFIG_LEDS_TRIGGER_TIMER=y
676CONFIG_LEDS_TRIGGER_DISK=y 719CONFIG_LEDS_TRIGGER_DISK=y
677CONFIG_LEDS_TRIGGER_HEARTBEAT=y 720CONFIG_LEDS_TRIGGER_HEARTBEAT=y
678CONFIG_LEDS_TRIGGER_CPU=y 721CONFIG_LEDS_TRIGGER_CPU=y
@@ -682,22 +725,25 @@ CONFIG_EDAC=y
682CONFIG_EDAC_GHES=y 725CONFIG_EDAC_GHES=y
683CONFIG_EDAC_SYNOPSYS=y 726CONFIG_EDAC_SYNOPSYS=y
684CONFIG_RTC_CLASS=y 727CONFIG_RTC_CLASS=y
685CONFIG_RTC_DRV_DS1307=y 728CONFIG_RTC_DRV_DS1307=m
686CONFIG_RTC_DRV_MAX77686=y 729CONFIG_RTC_DRV_MAX77686=y
687CONFIG_RTC_DRV_RK808=m 730CONFIG_RTC_DRV_RK808=m
688CONFIG_RTC_DRV_PCF85363=y 731CONFIG_RTC_DRV_PCF85363=m
689CONFIG_RTC_DRV_RX8581=m 732CONFIG_RTC_DRV_RX8581=m
733CONFIG_RTC_DRV_RV8803=m
690CONFIG_RTC_DRV_S5M=y 734CONFIG_RTC_DRV_S5M=y
691CONFIG_RTC_DRV_DS3232=y 735CONFIG_RTC_DRV_DS3232=y
692CONFIG_RTC_DRV_PCF2127=y 736CONFIG_RTC_DRV_PCF2127=m
693CONFIG_RTC_DRV_EFI=y 737CONFIG_RTC_DRV_EFI=y
694CONFIG_RTC_DRV_CROS_EC=y 738CONFIG_RTC_DRV_CROS_EC=y
739CONFIG_RTC_DRV_FSL_FTM_ALARM=y
695CONFIG_RTC_DRV_PL031=y 740CONFIG_RTC_DRV_PL031=y
696CONFIG_RTC_DRV_SNVS=y 741CONFIG_RTC_DRV_SNVS=y
697CONFIG_RTC_DRV_IMX_SC=y 742CONFIG_RTC_DRV_IMX_SC=y
698CONFIG_DMADEVICES=y 743CONFIG_DMADEVICES=y
699CONFIG_BCM_SBA_RAID=m 744CONFIG_BCM_SBA_RAID=m
700CONFIG_FSL_EDMA=y 745CONFIG_FSL_EDMA=y
746CONFIG_FSL_QDMA=m
701CONFIG_FSL_EDMA_V3=y 747CONFIG_FSL_EDMA_V3=y
702CONFIG_IMX_SDMA=y 748CONFIG_IMX_SDMA=y
703CONFIG_MV_XOR_V2=y 749CONFIG_MV_XOR_V2=y
@@ -705,7 +751,11 @@ CONFIG_MXS_DMA=y
705CONFIG_PL330_DMA=y 751CONFIG_PL330_DMA=y
706CONFIG_QCOM_HIDMA_MGMT=y 752CONFIG_QCOM_HIDMA_MGMT=y
707CONFIG_QCOM_HIDMA=y 753CONFIG_QCOM_HIDMA=y
754CONFIG_FSL_DPAA2_QDMA=m
708CONFIG_DMATEST=y 755CONFIG_DMATEST=y
756CONFIG_DMABUF_HEAPS=y
757CONFIG_DMABUF_HEAPS_SYSTEM=y
758CONFIG_DMABUF_HEAPS_CMA=y
709CONFIG_UIO=y 759CONFIG_UIO=y
710CONFIG_UIO_PCI_GENERIC=y 760CONFIG_UIO_PCI_GENERIC=y
711CONFIG_UIO_IVSHMEM=y 761CONFIG_UIO_IVSHMEM=y
@@ -715,6 +765,7 @@ CONFIG_VFIO_FSL_MC=y
715CONFIG_VIRTIO_PCI=y 765CONFIG_VIRTIO_PCI=y
716CONFIG_VIRTIO_BALLOON=y 766CONFIG_VIRTIO_BALLOON=y
717CONFIG_VIRTIO_MMIO=y 767CONFIG_VIRTIO_MMIO=y
768CONFIG_VIRTIO_IVSHMEM=y
718CONFIG_XEN_GNTDEV=y 769CONFIG_XEN_GNTDEV=y
719CONFIG_XEN_GRANT_DEV_ALLOC=y 770CONFIG_XEN_GRANT_DEV_ALLOC=y
720CONFIG_STAGING=y 771CONFIG_STAGING=y
@@ -726,22 +777,21 @@ CONFIG_ION_SYSTEM_HEAP=y
726CONFIG_ION_CMA_HEAP=y 777CONFIG_ION_CMA_HEAP=y
727CONFIG_FSL_DPAA2=y 778CONFIG_FSL_DPAA2=y
728CONFIG_FSL_DPAA2_ETHSW=y 779CONFIG_FSL_DPAA2_ETHSW=y
729CONFIG_FSL_DPAA2_MAC=y
730CONFIG_FSL_SDK_DPA=y
731CONFIG_FSL_PPFE=y 780CONFIG_FSL_PPFE=y
732CONFIG_FSL_PPFE_UTIL_DISABLED=y 781CONFIG_FSL_PPFE_UTIL_DISABLED=y
733CONFIG_MFD_CROS_EC=y 782CONFIG_CHROME_PLATFORMS=y
783CONFIG_CROS_EC=y
734CONFIG_CROS_EC_I2C=y 784CONFIG_CROS_EC_I2C=y
735CONFIG_CROS_EC_SPI=y 785CONFIG_CROS_EC_SPI=y
736CONFIG_COMMON_CLK_VERSATILE=y 786CONFIG_CROS_EC_CHARDEV=m
737CONFIG_CLK_SP810=y
738CONFIG_CLK_VEXPRESS_OSC=y
739CONFIG_COMMON_CLK_RK808=y 787CONFIG_COMMON_CLK_RK808=y
740CONFIG_COMMON_CLK_SCPI=y 788CONFIG_COMMON_CLK_SCPI=y
741CONFIG_COMMON_CLK_CS2000_CP=y 789CONFIG_COMMON_CLK_CS2000_CP=y
790CONFIG_COMMON_CLK_FSL_SAI=y
742CONFIG_COMMON_CLK_S2MPS11=y 791CONFIG_COMMON_CLK_S2MPS11=y
743CONFIG_COMMON_CLK_XGENE=y 792CONFIG_COMMON_CLK_XGENE=y
744CONFIG_COMMON_CLK_PWM=y 793CONFIG_COMMON_CLK_PWM=y
794CONFIG_COMMON_CLK_VC5=y
745CONFIG_CLK_IMX8MM=y 795CONFIG_CLK_IMX8MM=y
746CONFIG_CLK_IMX8MN=y 796CONFIG_CLK_IMX8MN=y
747CONFIG_CLK_IMX8MP=y 797CONFIG_CLK_IMX8MP=y
@@ -756,31 +806,44 @@ CONFIG_ARM_SMMU_V3=y
756CONFIG_REMOTEPROC=y 806CONFIG_REMOTEPROC=y
757CONFIG_IMX_REMOTEPROC=y 807CONFIG_IMX_REMOTEPROC=y
758CONFIG_RPMSG_QCOM_GLINK_RPM=y 808CONFIG_RPMSG_QCOM_GLINK_RPM=y
809CONFIG_SOUNDWIRE=m
810CONFIG_SOUNDWIRE_QCOM=m
759CONFIG_SOC_BRCMSTB=y 811CONFIG_SOC_BRCMSTB=y
812CONFIG_FSL_DPAA=y
760CONFIG_FSL_MC_DPIO=y 813CONFIG_FSL_MC_DPIO=y
814CONFIG_FSL_RCPM=y
761CONFIG_FSL_QIXIS=y 815CONFIG_FSL_QIXIS=y
762CONFIG_IMX_SCU_SOC=y
763CONFIG_SECVIO_SC=y
764CONFIG_SOC_TI=y 816CONFIG_SOC_TI=y
817CONFIG_EXTCON_PTN5150=m
765CONFIG_EXTCON_USB_GPIO=y 818CONFIG_EXTCON_USB_GPIO=y
766CONFIG_EXTCON_USBC_CROS_EC=y 819CONFIG_EXTCON_USBC_CROS_EC=y
767CONFIG_IIO=y 820CONFIG_IIO=y
768CONFIG_IMX8QXP_ADC=y 821CONFIG_IMX8QXP_ADC=y
822CONFIG_MAX9611=m
823CONFIG_QCOM_SPMI_ADC5=m
769CONFIG_IIO_CROS_EC_SENSORS_CORE=m 824CONFIG_IIO_CROS_EC_SENSORS_CORE=m
770CONFIG_IIO_CROS_EC_SENSORS=m 825CONFIG_IIO_CROS_EC_SENSORS=m
771CONFIG_IIO_CROS_EC_LIGHT_PROX=m 826CONFIG_IIO_CROS_EC_LIGHT_PROX=m
772CONFIG_IIO_CROS_EC_BARO=m 827CONFIG_IIO_CROS_EC_BARO=m
773CONFIG_PWM=y 828CONFIG_PWM=y
774CONFIG_PWM_CROS_EC=m 829CONFIG_PWM_CROS_EC=m
830CONFIG_PWM_FSL_FTM=m
775CONFIG_PWM_IMX27=y 831CONFIG_PWM_IMX27=y
832CONFIG_PWM_SL28CPLD=m
833CONFIG_SL28CPLD_INTC=y
834CONFIG_MST_IRQ=y
835CONFIG_RESET_BRCMSTB_RESCAL=y
836CONFIG_RESET_IMX7=y
776CONFIG_PHY_XGENE=y 837CONFIG_PHY_XGENE=y
777CONFIG_PHY_MIXEL_LVDS=y 838CONFIG_PHY_MIXEL_LVDS=y
778CONFIG_PHY_MIXEL_LVDS_COMBO=y 839CONFIG_PHY_MIXEL_LVDS_COMBO=y
840CONFIG_PHY_CADENCE_SALVO=y
779CONFIG_PHY_FSL_IMX8MP_LVDS=y 841CONFIG_PHY_FSL_IMX8MP_LVDS=y
780CONFIG_PHY_MIXEL_MIPI_DPHY=y 842CONFIG_PHY_MIXEL_MIPI_DPHY=y
781CONFIG_PHY_SAMSUNG_HDMI_PHY=y 843CONFIG_PHY_SAMSUNG_HDMI_PHY=y
782CONFIG_PHY_QCOM_USB_HS=y 844CONFIG_PHY_QCOM_USB_HS=y
783CONFIG_PHY_SAMSUNG_USB2=y 845CONFIG_PHY_SAMSUNG_USB2=y
846CONFIG_ARM_SMMU_V3_PMU=m
784CONFIG_FSL_IMX8_DDR_PMU=y 847CONFIG_FSL_IMX8_DDR_PMU=y
785CONFIG_HISI_PMU=y 848CONFIG_HISI_PMU=y
786CONFIG_NVMEM_IMX_OCOTP=y 849CONFIG_NVMEM_IMX_OCOTP=y
@@ -793,9 +856,10 @@ CONFIG_OF_FPGA_REGION=m
793CONFIG_TEE=y 856CONFIG_TEE=y
794CONFIG_OPTEE=y 857CONFIG_OPTEE=y
795CONFIG_MUX_MMIO=y 858CONFIG_MUX_MMIO=y
859CONFIG_SLIM_QCOM_CTRL=m
860CONFIG_INTERCONNECT=y
796CONFIG_MXC_SIM=y 861CONFIG_MXC_SIM=y
797CONFIG_MXC_EMVSIM=y 862CONFIG_MXC_EMVSIM=y
798CONFIG_MXC_MLB150=y
799CONFIG_EXT2_FS=y 863CONFIG_EXT2_FS=y
800CONFIG_EXT3_FS=y 864CONFIG_EXT3_FS=y
801CONFIG_EXT4_FS_POSIX_ACL=y 865CONFIG_EXT4_FS_POSIX_ACL=y
@@ -833,20 +897,18 @@ CONFIG_CRYPTO_CTS=m
833CONFIG_CRYPTO_LRW=m 897CONFIG_CRYPTO_LRW=m
834CONFIG_CRYPTO_OFB=m 898CONFIG_CRYPTO_OFB=m
835CONFIG_CRYPTO_PCBC=m 899CONFIG_CRYPTO_PCBC=m
836CONFIG_CRYPTO_XTS=m
837CONFIG_CRYPTO_XCBC=m 900CONFIG_CRYPTO_XCBC=m
838CONFIG_CRYPTO_VMAC=m 901CONFIG_CRYPTO_VMAC=m
839CONFIG_CRYPTO_MD4=m 902CONFIG_CRYPTO_MD4=m
840CONFIG_CRYPTO_MD5=m
841CONFIG_CRYPTO_RMD128=m 903CONFIG_CRYPTO_RMD128=m
842CONFIG_CRYPTO_RMD160=m 904CONFIG_CRYPTO_RMD160=m
843CONFIG_CRYPTO_RMD256=m 905CONFIG_CRYPTO_RMD256=m
844CONFIG_CRYPTO_RMD320=m 906CONFIG_CRYPTO_RMD320=m
845CONFIG_CRYPTO_SHA512=m
846CONFIG_CRYPTO_STREEBOG=m 907CONFIG_CRYPTO_STREEBOG=m
847CONFIG_CRYPTO_TGR192=m 908CONFIG_CRYPTO_TGR192=m
848CONFIG_CRYPTO_WP512=m 909CONFIG_CRYPTO_WP512=m
849CONFIG_CRYPTO_ANUBIS=m 910CONFIG_CRYPTO_ANUBIS=m
911CONFIG_CRYPTO_ARC4=m
850CONFIG_CRYPTO_BLOWFISH=m 912CONFIG_CRYPTO_BLOWFISH=m
851CONFIG_CRYPTO_CAMELLIA=m 913CONFIG_CRYPTO_CAMELLIA=m
852CONFIG_CRYPTO_CAST5=m 914CONFIG_CRYPTO_CAST5=m
@@ -856,26 +918,31 @@ CONFIG_CRYPTO_KHAZAD=m
856CONFIG_CRYPTO_SALSA20=m 918CONFIG_CRYPTO_SALSA20=m
857CONFIG_CRYPTO_SEED=m 919CONFIG_CRYPTO_SEED=m
858CONFIG_CRYPTO_SERPENT=m 920CONFIG_CRYPTO_SERPENT=m
859CONFIG_CRYPTO_SM4=m
860CONFIG_CRYPTO_TEA=m 921CONFIG_CRYPTO_TEA=m
861CONFIG_CRYPTO_TWOFISH=m 922CONFIG_CRYPTO_TWOFISH=m
862CONFIG_CRYPTO_ANSI_CPRNG=y 923CONFIG_CRYPTO_ANSI_CPRNG=y
863CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y 924CONFIG_CRYPTO_USER_API_RNG=m
864CONFIG_CRYPTO_DEV_FSL_CAAM=y 925CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=m
865CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y 926CONFIG_CRYPTO_DEV_FSL_CAAM=m
866CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m 927CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
867CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=y 928CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
929CONFIG_CRYPTO_DEV_CCREE=m
930CONFIG_CRYPTO_DEV_HISI_SEC2=m
931CONFIG_CRYPTO_DEV_HISI_ZIP=m
932CONFIG_CRYPTO_DEV_HISI_HPRE=m
933CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
868CONFIG_INDIRECT_PIO=y 934CONFIG_INDIRECT_PIO=y
869CONFIG_CMA_SIZE_MBYTES=320 935CONFIG_CRC_CCITT=m
936CONFIG_CMA_SIZE_MBYTES=32
870CONFIG_PRINTK_TIME=y 937CONFIG_PRINTK_TIME=y
871CONFIG_DEBUG_INFO=y 938CONFIG_DEBUG_INFO=y
872CONFIG_DEBUG_FS=y
873CONFIG_MAGIC_SYSRQ=y 939CONFIG_MAGIC_SYSRQ=y
940CONFIG_DEBUG_FS=y
874CONFIG_DEBUG_KERNEL=y 941CONFIG_DEBUG_KERNEL=y
875# CONFIG_SCHED_DEBUG is not set 942# CONFIG_SCHED_DEBUG is not set
876# CONFIG_DEBUG_PREEMPT is not set 943# CONFIG_DEBUG_PREEMPT is not set
877# CONFIG_FTRACE is not set 944# CONFIG_FTRACE is not set
878CONFIG_MEMTEST=y
879CONFIG_CORESIGHT=y 945CONFIG_CORESIGHT=y
880CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y 946CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y
881CONFIG_CORESIGHT_SOURCE_ETM4X=y 947CONFIG_CORESIGHT_SOURCE_ETM4X=y
948CONFIG_MEMTEST=y
diff --git a/recipes-kernel/linux/linux-imx_5.4.bb b/recipes-kernel/linux/linux-imx_5.10.bb
index ad8e5957..68344e4e 100644
--- a/recipes-kernel/linux/linux-imx_5.4.bb
+++ b/recipes-kernel/linux/linux-imx_5.10.bb
@@ -13,20 +13,20 @@ i.MX Family Reference Boards. It includes support for many IPs such as GPU, VPU
13require recipes-kernel/linux/linux-imx.inc 13require recipes-kernel/linux/linux-imx.inc
14 14
15LICENSE = "GPLv2" 15LICENSE = "GPLv2"
16LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" 16LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
17 17
18DEPENDS += "lzop-native bc-native" 18DEPENDS += "lzop-native bc-native"
19 19
20SRCBRANCH = "imx_5.4.70_2.3.0" 20SRCBRANCH = "lf-5.10.y"
21LOCALVERSION = "-2.3.2" 21LOCALVERSION = "-5.10.35-2.0.0"
22SRCREV = "5f2220e87dd8a8fb86f524ea7945ab1d4155bc73" 22SRCREV = "ef3f2cfc6010c13feb40cfb7fd7490832cf86f45"
23 23
24# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition 24# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition
25# required by kernel-yocto.bbclass. 25# required by kernel-yocto.bbclass.
26# 26#
27# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and 27# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and
28# should be updated once patchlevel is merged. 28# should be updated once patchlevel is merged.
29LINUX_VERSION = "5.4.70" 29LINUX_VERSION = "5.10.35"
30 30
31DEFAULT_PREFERENCE = "1" 31DEFAULT_PREFERENCE = "1"
32 32
diff --git a/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch b/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch
index 747b62c5..6894deae 100644
--- a/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch
+++ b/recipes-multimedia/alsa/alsa-lib/0001-add-conf-for-multichannel-support-in-imx.patch
@@ -1,4 +1,4 @@
1From cc06048dcd722049f92ab17958760bd798fb4781 Mon Sep 17 00:00:00 2001 1From e6cea74cad98963d3b0b1c267d4988be4263215c Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <b02247@freescale.com> 2From: Shengjiu Wang <b02247@freescale.com>
3Date: Thu, 5 Jun 2014 17:37:47 +0800 3Date: Thu, 5 Jun 2014 17:37:47 +0800
4Subject: [PATCH] add conf for multichannel support in imx 4Subject: [PATCH] add conf for multichannel support in imx
@@ -6,9 +6,10 @@ Subject: [PATCH] add conf for multichannel support in imx
6Upstream Status: Inappropriate [platform specific] 6Upstream Status: Inappropriate [platform specific]
7 7
8Signed-off-by: Shengjiu Wang <b02247@freescale.com> 8Signed-off-by: Shengjiu Wang <b02247@freescale.com>
9
9--- 10---
10 src/conf/cards/CS42888.conf | 94 ++++++++++++++++++++++++++++++++++++++++++++ 11 src/conf/cards/CS42888.conf | 94 ++++++++++++++++++++++++++++++++++++
11 src/conf/cards/IMX-HDMI.conf | 67 +++++++++++++++++++++++++++++++ 12 src/conf/cards/IMX-HDMI.conf | 67 +++++++++++++++++++++++++
12 src/conf/cards/Makefile.am | 4 +- 13 src/conf/cards/Makefile.am | 4 +-
13 src/conf/cards/aliases.conf | 2 + 14 src/conf/cards/aliases.conf | 2 +
14 4 files changed, 166 insertions(+), 1 deletion(-) 15 4 files changed, 166 insertions(+), 1 deletion(-)
@@ -204,18 +205,15 @@ index 00999f0..fbf0697 100644
204 if BUILD_ALISP 205 if BUILD_ALISP
205 cfg_files += aliases.alisp 206 cfg_files += aliases.alisp
206diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf 207diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf
207index 18a920f..2c422ee 100644 208index 18a920f..7a4f444 100644
208--- a/src/conf/cards/aliases.conf 209--- a/src/conf/cards/aliases.conf
209+++ b/src/conf/cards/aliases.conf 210+++ b/src/conf/cards/aliases.conf
210@@ -57,6 +57,8 @@ CMI8786 cards.CMI8788 211@@ -57,6 +57,8 @@ CMI8786 cards.CMI8788
211 CMI8787 cards.CMI8788 212 CMI8787 cards.CMI8788
212 pistachio cards.pistachio-card 213 pistachio cards.pistachio-card
213 VC4-HDMI cards.vc4-hdmi 214 VC4-HDMI cards.vc4-hdmi
214+cs42888-audio cards.CS42888 215+imx-cs42888 cards.CS42888
215+imx-hdmi-soc cards.IMX-HDMI 216+imx-hdmi-soc cards.IMX-HDMI
216 217
217 <confdir:pcm/default.conf> 218 <confdir:pcm/default.conf>
218 <confdir:pcm/dmix.conf> 219 <confdir:pcm/dmix.conf>
219--
2202.7.4
221
diff --git a/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch b/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch
index 4d28a77f..1d58aeba 100755..100644
--- a/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch
+++ b/recipes-multimedia/alsa/alsa-lib/0004-pcm-Don-t-store-the-state-for-SND_PCM_STATE_SUSPENDE.patch
@@ -1,7 +1,7 @@
1From 93607819d90ddf9bbdad8bbbe4af5d917ca572dc Mon Sep 17 00:00:00 2001 1From 754e0c6112a181b30bd46aa13812f37db01c3387 Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <shengjiu.wang@freescale.com> 2From: Shengjiu Wang <shengjiu.wang@freescale.com>
3Date: Tue, 10 May 2016 15:09:26 +0800 3Date: Tue, 10 May 2016 15:09:26 +0800
4Subject: [PATCH 2/2] pcm: Don't store the state for SND_PCM_STATE_SUSPENDED 4Subject: [PATCH] pcm: Don't store the state for SND_PCM_STATE_SUSPENDED
5 5
6The resume function don't update the dmix->state, if store SUSPENDED 6The resume function don't update the dmix->state, if store SUSPENDED
7state in snd_pcm_dmix_state, the write function after resume will 7state in snd_pcm_dmix_state, the write function after resume will
@@ -13,6 +13,7 @@ for dmix,dshare,dsnoop.
13Upstream-Status: Pending 13Upstream-Status: Pending
14 14
15Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com> 15Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
16
16--- 17---
17 src/pcm/pcm_dmix.c | 2 +- 18 src/pcm/pcm_dmix.c | 2 +-
18 src/pcm/pcm_dshare.c | 2 +- 19 src/pcm/pcm_dshare.c | 2 +-
@@ -20,10 +21,10 @@ Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
20 3 files changed, 3 insertions(+), 3 deletions(-) 21 3 files changed, 3 insertions(+), 3 deletions(-)
21 22
22diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c 23diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
23index a6a8f3a..89c07d1 100644 24index 5b7472d..e08e46f 100644
24--- a/src/pcm/pcm_dmix.c 25--- a/src/pcm/pcm_dmix.c
25+++ b/src/pcm/pcm_dmix.c 26+++ b/src/pcm/pcm_dmix.c
26@@ -466,9 +466,9 @@ static snd_pcm_state_t snd_pcm_dmix_state(snd_pcm_t *pcm) 27@@ -460,9 +460,9 @@ static snd_pcm_state_t snd_pcm_dmix_state(snd_pcm_t *pcm)
27 snd_pcm_state_t state; 28 snd_pcm_state_t state;
28 state = snd_pcm_state(dmix->spcm); 29 state = snd_pcm_state(dmix->spcm);
29 switch (state) { 30 switch (state) {
@@ -35,10 +36,10 @@ index a6a8f3a..89c07d1 100644
35 case SND_PCM_STATE_XRUN: 36 case SND_PCM_STATE_XRUN:
36 if ((err = snd_pcm_direct_slave_recover(dmix)) < 0) 37 if ((err = snd_pcm_direct_slave_recover(dmix)) < 0)
37diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c 38diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
38index 7cdfea2..e0b4ea7 100644 39index 8a67257..8ba61b4 100644
39--- a/src/pcm/pcm_dshare.c 40--- a/src/pcm/pcm_dshare.c
40+++ b/src/pcm/pcm_dshare.c 41+++ b/src/pcm/pcm_dshare.c
41@@ -261,9 +261,9 @@ static snd_pcm_state_t snd_pcm_dshare_state(snd_pcm_t *pcm) 42@@ -258,9 +258,9 @@ static snd_pcm_state_t snd_pcm_dshare_state(snd_pcm_t *pcm)
42 snd_pcm_state_t state; 43 snd_pcm_state_t state;
43 state = snd_pcm_state(dshare->spcm); 44 state = snd_pcm_state(dshare->spcm);
44 switch (state) { 45 switch (state) {
@@ -50,10 +51,10 @@ index 7cdfea2..e0b4ea7 100644
50 case SND_PCM_STATE_XRUN: 51 case SND_PCM_STATE_XRUN:
51 if ((err = snd_pcm_direct_slave_recover(dshare)) < 0) 52 if ((err = snd_pcm_direct_slave_recover(dshare)) < 0)
52diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c 53diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
53index 539b671..03df6ff 100644 54index c6e8cd2..9610482 100644
54--- a/src/pcm/pcm_dsnoop.c 55--- a/src/pcm/pcm_dsnoop.c
55+++ b/src/pcm/pcm_dsnoop.c 56+++ b/src/pcm/pcm_dsnoop.c
56@@ -212,9 +212,9 @@ static snd_pcm_state_t snd_pcm_dsnoop_state(snd_pcm_t *pcm) 57@@ -208,9 +208,9 @@ static snd_pcm_state_t snd_pcm_dsnoop_state(snd_pcm_t *pcm)
57 snd_pcm_state_t state; 58 snd_pcm_state_t state;
58 state = snd_pcm_state(dsnoop->spcm); 59 state = snd_pcm_state(dsnoop->spcm);
59 switch (state) { 60 switch (state) {
@@ -64,6 +65,3 @@ index 539b671..03df6ff 100644
64 return state; 65 return state;
65 case SND_PCM_STATE_XRUN: 66 case SND_PCM_STATE_XRUN:
66 if ((err = snd_pcm_direct_slave_recover(dsnoop)) < 0) 67 if ((err = snd_pcm_direct_slave_recover(dsnoop)) < 0)
67--
682.7.4
69
diff --git a/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch b/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch
index a07f60d6..63af83f7 100644
--- a/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch
+++ b/recipes-multimedia/alsa/alsa-lib/0005-add-ak4458-conf-for-multichannel-support.patch
@@ -1,7 +1,14 @@
1From 1641ce8c724018365d7fa598f9a70c6492e7c271 Mon Sep 17 00:00:00 2001 1From bbfa5f555f8d2c448c9f36fbea11ea3e32dcdcc6 Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <shengjiu.wang@nxp.com> 2From: Shengjiu Wang <shengjiu.wang@nxp.com>
3Date: Wed, 31 Jan 2018 15:06:53 +0800 3Date: Wed, 31 Jan 2018 15:06:53 +0800
4Subject: [PATCH] add ak4458 conf for multichannel support 4Subject: [PATCH] add ak4458 conf for multichannel support
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9MIME-Version: 1.0
10Content-Type: text/plain; charset=UTF-8
11Content-Transfer-Encoding: 8bit
5 12
6one limitation is that ALSA and pulseaudio only support 13one limitation is that ALSA and pulseaudio only support
7maximum 8 channels, but ak4458 may support 16 channels 14maximum 8 channels, but ak4458 may support 16 channels
@@ -9,17 +16,19 @@ maximum 8 channels, but ak4458 may support 16 channels
9Upstream-Status: Inappropriate [i.MX specific] 16Upstream-Status: Inappropriate [i.MX specific]
10 17
11Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> 18Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
19
12--- 20---
13 src/conf/cards/AK4458.conf | 74 +++++++++++++++++++++++++++++++++++++++++++++ 21 src/conf/cards/AK4458.conf | 74 +++++++++++++++++++++++++++++++++++++
14 src/conf/cards/Makefile.am | 3 +- 22 src/conf/cards/Makefile.am | 3 +-
15 src/conf/cards/aliases.conf | 1 + 23 src/conf/cards/aliases.conf | 1 +
16 3 files changed, 77 insertions(+), 1 deletion(-) 24 3 files changed, 77 insertions(+), 1 deletion(-)
17 create mode 100644 src/conf/cards/AK4458.conf 25 create mode 100644 src/conf/cards/AK4458.conf
18 26
19Index: alsa-lib-1.1.6/src/conf/cards/AK4458.conf 27diff --git a/src/conf/cards/AK4458.conf b/src/conf/cards/AK4458.conf
20=================================================================== 28new file mode 100644
29index 0000000..3b5b195
21--- /dev/null 30--- /dev/null
22+++ alsa-lib-1.1.6/src/conf/cards/AK4458.conf 31+++ b/src/conf/cards/AK4458.conf
23@@ -0,0 +1,74 @@ 32@@ -0,0 +1,74 @@
24+# 33+#
25+# Configuration for the AK4458 chip 34+# Configuration for the AK4458 chip
@@ -95,10 +104,10 @@ Index: alsa-lib-1.1.6/src/conf/cards/AK4458.conf
95+ } 104+ }
96+ slave.channels 8 105+ slave.channels 8
97+} 106+}
98Index: alsa-lib-1.1.6/src/conf/cards/Makefile.am 107diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am
99=================================================================== 108index fbf0697..34fa5a3 100644
100--- alsa-lib-1.1.6.orig/src/conf/cards/Makefile.am 109--- a/src/conf/cards/Makefile.am
101+++ alsa-lib-1.1.6/src/conf/cards/Makefile.am 110+++ b/src/conf/cards/Makefile.am
102@@ -60,7 +60,8 @@ cfg_files = aliases.conf \ 111@@ -60,7 +60,8 @@ cfg_files = aliases.conf \
103 VXPocket.conf \ 112 VXPocket.conf \
104 VXPocket440.conf \ 113 VXPocket440.conf \
@@ -109,13 +118,13 @@ Index: alsa-lib-1.1.6/src/conf/cards/Makefile.am
109 118
110 if BUILD_ALISP 119 if BUILD_ALISP
111 cfg_files += aliases.alisp 120 cfg_files += aliases.alisp
112Index: alsa-lib-1.1.6/src/conf/cards/aliases.conf 121diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf
113=================================================================== 122index 7a4f444..e41f89e 100644
114--- alsa-lib-1.1.6.orig/src/conf/cards/aliases.conf 123--- a/src/conf/cards/aliases.conf
115+++ alsa-lib-1.1.6/src/conf/cards/aliases.conf 124+++ b/src/conf/cards/aliases.conf
116@@ -59,6 +59,7 @@ pistachio cards.pistachio-card 125@@ -59,6 +59,7 @@ pistachio cards.pistachio-card
117 VC4-HDMI cards.vc4-hdmi 126 VC4-HDMI cards.vc4-hdmi
118 cs42888-audio cards.CS42888 127 imx-cs42888 cards.CS42888
119 imx-hdmi-soc cards.IMX-HDMI 128 imx-hdmi-soc cards.IMX-HDMI
120+ak4458-audio cards.AK4458 129+ak4458-audio cards.AK4458
121 130
diff --git a/recipes-multimedia/alsa/alsa-lib/0006-add-conf-for-iMX-XCVR-sound-card.patch b/recipes-multimedia/alsa/alsa-lib/0006-add-conf-for-iMX-XCVR-sound-card.patch
index d72fb02c..3b5f90ec 100755..100644
--- a/recipes-multimedia/alsa/alsa-lib/0006-add-conf-for-iMX-XCVR-sound-card.patch
+++ b/recipes-multimedia/alsa/alsa-lib/0006-add-conf-for-iMX-XCVR-sound-card.patch
@@ -1,4 +1,4 @@
1From 2fd2737a1a0553e164d1b4f78687edf573f8e621 Mon Sep 17 00:00:00 2001 1From dec68918e07d6a7f4397b55b35dd5bed9c114ea9 Mon Sep 17 00:00:00 2001
2From: Viorel Suman <viorel.suman@nxp.com> 2From: Viorel Suman <viorel.suman@nxp.com>
3Date: Mon, 9 Mar 2020 14:25:46 +0200 3Date: Mon, 9 Mar 2020 14:25:46 +0200
4Subject: [PATCH] add conf for iMX XCVR sound card 4Subject: [PATCH] add conf for iMX XCVR sound card
@@ -6,8 +6,9 @@ Subject: [PATCH] add conf for iMX XCVR sound card
6Upstream Status: Pending 6Upstream Status: Pending
7 7
8Signed-off-by: Viorel Suman <viorel.suman@nxp.com> 8Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
9
9--- 10---
10 src/conf/cards/IMX-XCVR.conf | 69 ++++++++++++++++++++++++++++++++++++++++++++ 11 src/conf/cards/IMX-XCVR.conf | 69 ++++++++++++++++++++++++++++++++++++
11 src/conf/cards/Makefile.am | 3 +- 12 src/conf/cards/Makefile.am | 3 +-
12 src/conf/cards/aliases.conf | 1 + 13 src/conf/cards/aliases.conf | 1 +
13 3 files changed, 72 insertions(+), 1 deletion(-) 14 3 files changed, 72 insertions(+), 1 deletion(-)
@@ -103,17 +104,14 @@ index 34fa5a3..70b9bab 100644
103 if BUILD_ALISP 104 if BUILD_ALISP
104 cfg_files += aliases.alisp 105 cfg_files += aliases.alisp
105diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf 106diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf
106index 5d92ac7..c195848 100644 107index e41f89e..d9bfcd6 100644
107--- a/src/conf/cards/aliases.conf 108--- a/src/conf/cards/aliases.conf
108+++ b/src/conf/cards/aliases.conf 109+++ b/src/conf/cards/aliases.conf
109@@ -60,6 +60,7 @@ VC4-HDMI cards.vc4-hdmi 110@@ -60,6 +60,7 @@ VC4-HDMI cards.vc4-hdmi
110 cs42888-audio cards.CS42888 111 imx-cs42888 cards.CS42888
111 imx-hdmi-soc cards.IMX-HDMI 112 imx-hdmi-soc cards.IMX-HDMI
112 ak4458-audio cards.AK4458 113 ak4458-audio cards.AK4458
113+imx-audio-xcvr cards.IMX-XCVR 114+imx-audio-xcvr cards.IMX-XCVR
114 115
115 <confdir:pcm/default.conf> 116 <confdir:pcm/default.conf>
116 <confdir:pcm/dmix.conf> 117 <confdir:pcm/dmix.conf>
117--
1182.7.4
119
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
deleted file mode 100644
index 3f1ec99d..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
+++ /dev/null
@@ -1,70 +0,0 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2HOMEPAGE = "http://gstreamer.freedesktop.org/"
3SECTION = "multimedia"
4
5LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
6LICENSE_FLAGS = "commercial"
7LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
9 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
10 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
11 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
12 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
13 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
14
15SRC_URI = "http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
16 file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
17 file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
18 file://mips64_cpu_detection.patch \
19 file://0001-configure-check-for-armv7ve-variant.patch \
20 file://0001-fix-host-contamination.patch \
21 "
22SRC_URI[md5sum] = "e3a201a45985ddc1327cd496046ca818"
23SRC_URI[sha256sum] = "dfac119043a9cfdcacd7acde77f674ab172cf2537b5812be52f49e9cddc53d9a"
24
25S = "${WORKDIR}/gst-libav-${PV}"
26
27DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz"
28
29inherit autotools pkgconfig upstream-version-is-even gtk-doc
30
31# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
32# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
33# libav copy included in the gst-libav package.
34PACKAGECONFIG ??= "orc yasm"
35
36PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl,"
37PACKAGECONFIG[libav] = "--with-system-libav,,libav"
38PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
39PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,nasm-native"
40PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
41
42GSTREAMER_1_0_DEBUG ?= "--disable-debug"
43
44LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure"
45
46LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
47 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
48 --ranlib='${RANLIB}' \
49 ${GSTREAMER_1_0_DEBUG} \
50 --cross-prefix='${HOST_PREFIX}'"
51
52# Disable assembly optimizations for X32, as this libav lacks the support
53PACKAGECONFIG_remove_linux-gnux32 = "yasm"
54LIBAV_EXTRA_CONFIGURE_COMMON_ARG_append_linux-gnux32 = " --disable-asm"
55
56LIBAV_EXTRA_CONFIGURE_COMMON = \
57'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"'
58
59EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}"
60
61FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
62FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
63FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
64
65# http://errors.yoctoproject.org/Errors/Details/20493/
66ARM_INSTRUCTION_SET_armv4 = "arm"
67ARM_INSTRUCTION_SET_armv5 = "arm"
68
69# ffmpeg/libav disables PIC on some platforms (e.g. x86-32)
70INSANE_SKIP_${PN} = "textrel"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb
new file mode 100644
index 00000000..d67313a6
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb
@@ -0,0 +1,24 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2DESCRIPTION = "Contains a GStreamer plugin for using the encoders, decoders, \
3muxers, and demuxers provided by FFmpeg."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5SECTION = "multimedia"
6
7# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency
8LICENSE_FLAGS = "commercial"
9LICENSE = "LGPLv2+"
10LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
11 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
12 "
13
14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
15SRC_URI[sha256sum] = "42f93f5ce9a3fc22051e5f783a4574b56ebf213f331f75dcbc3552459bd3a06a"
16
17S = "${WORKDIR}/gst-libav-${PV}"
18
19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
20
21inherit meson pkgconfig upstream-version-is-even
22
23FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
24FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb
index 6925611a..5d93176b 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb
@@ -3,7 +3,7 @@ require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
3DEPENDS_append_imxgpu2d = " virtual/libg2d" 3DEPENDS_append_imxgpu2d = " virtual/libg2d"
4DEPENDS_append_mx8 = " libdrm" 4DEPENDS_append_mx8 = " libdrm"
5 5
6PACKAGECONFIG_append_mx8 = " kms" 6PACKAGECONFIG_append_mx8 = " kms tinycompress"
7 7
8DEFAULT_PREFERENCE = "-1" 8DEFAULT_PREFERENCE = "-1"
9 9
@@ -11,20 +11,12 @@ PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}"
11PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" 11PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}"
12 12
13GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" 13GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https"
14SRCBRANCH = "MM_04.05.07_2011_L5.4.70" 14SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
15 15
16SRC_URI = " \ 16SRC_URI = " \
17 ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \ 17 ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \
18 file://0001-ext-wayland-fix-meson-build-in-nxp-fork.patch \
19 file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
20 file://opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
21 file://0001-opencv-allow-compilation-against-4.4.x.patch \
22 file://0001-vulkan-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch \
23 file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
24 file://avoid-including-sys-poll.h-directly.patch \
25 file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
26" 18"
27SRCREV = "cf7f2d0125424ce0d63ddc7f1eadc9ef71d10db1" 19SRCREV = "227af57d23cb6b3564fc94446ab2c9fe8c8cff22"
28 20
29S = "${WORKDIR}/git" 21S = "${WORKDIR}/git"
30 22
@@ -42,7 +34,7 @@ PACKAGECONFIG_GL_imxpxp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl
42PACKAGECONFIG ??= " \ 34PACKAGECONFIG ??= " \
43 ${GSTREAMER_ORC} \ 35 ${GSTREAMER_ORC} \
44 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ 36 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
45 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ 37 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
46 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ 38 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
47 ${PACKAGECONFIG_GL} \ 39 ${PACKAGECONFIG_GL} \
48 bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \ 40 bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \
@@ -91,6 +83,7 @@ PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=di
91PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" 83PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
92PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp" 84PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp"
93PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" 85PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa"
86PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress"
94PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" 87PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo"
95PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" 88PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev"
96PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" 89PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc"
@@ -102,9 +95,6 @@ PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
102PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" 95PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing"
103PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" 96PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
104 97
105# Following package config in not available in NXP fork:
106#PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
107
108# these plugins currently have no corresponding library in OE-core or meta-openembedded: 98# these plugins currently have no corresponding library in OE-core or meta-openembedded:
109# aom androidmedia applemedia bs2b chromaprint d3dvideosink 99# aom androidmedia applemedia bs2b chromaprint d3dvideosink
110# directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc 100# directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc
@@ -139,8 +129,6 @@ EXTRA_OEMESON += " \
139 -Dmplex=disabled \ 129 -Dmplex=disabled \
140 -Dmsdk=disabled \ 130 -Dmsdk=disabled \
141 -Dmusepack=disabled \ 131 -Dmusepack=disabled \
142 -Dnvdec=disabled \
143 -Dnvenc=disabled \
144 -Dofa=disabled \ 132 -Dofa=disabled \
145 -Dopenexr=disabled \ 133 -Dopenexr=disabled \
146 -Dopenmpt=disabled \ 134 -Dopenmpt=disabled \
@@ -150,7 +138,6 @@ EXTRA_OEMESON += " \
150 -Dspandsp=disabled \ 138 -Dspandsp=disabled \
151 -Dsrt=disabled \ 139 -Dsrt=disabled \
152 -Dteletext=disabled \ 140 -Dteletext=disabled \
153 -Dvdpau=disabled \
154 -Dwasapi=disabled \ 141 -Dwasapi=disabled \
155 -Dwildmidi=disabled \ 142 -Dwildmidi=disabled \
156 -Dwinks=disabled \ 143 -Dwinks=disabled \
@@ -168,6 +155,7 @@ ARM_INSTRUCTION_SET_armv5 = "arm"
168 155
169FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" 156FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
170FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" 157FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
158FILES_${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
171FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" 159FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
172# include fragment shaders 160# include fragment shaders
173FILES_${PN}-opengl += "/usr/share/*.fs" 161FILES_${PN}-opengl += "/usr/share/*.fs"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch
deleted file mode 100644
index 61baf2f9..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From a145a129a8122f21c1e243b3dc2e5708f4c13bef Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
3Date: Thu, 23 Jan 2020 12:54:10 +0000
4Subject: [PATCH] gst-libs gst gl wayland: fix meson build
5
6Since introduction of meson build system, modifications introduced in
7NXP fork are breaking the build, where xdg-shell-client-protocol.h
8is searched via relative path. This code is only present in NXP fork and
9should be removed.
10
11This reverts commit [48bde732b00fb42df636ebbaf3b06e5e7971c206]
12("wayland: fix build break in yocto") from upstream.
13
14Upstream-Status: Pending
15
16Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
17---
18 gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
22index d1795591f..89dedd9b5 100644
23--- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
24+++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
25@@ -22,7 +22,7 @@
26 #define __GST_GL_WINDOW_WAYLAND_EGL_H__
27
28 #include <wayland-client.h>
29-#include <gst/gl/wayland/xdg-shell-client-protocol.h>
30+#include "xdg-shell-client-protocol.h"
31 #include <wayland-egl.h>
32 #include <wayland-cursor.h>
33
34--
352.17.1
36
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch
deleted file mode 100644
index da152531..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch
+++ /dev/null
@@ -1,220 +0,0 @@
1From def285f623bc30b9d1acede00393188e693cc741 Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
3Date: Sat, 22 Feb 2020 13:22:57 +0000
4Subject: [PATCH] gstreamer-plugins-base: fix meson build in nxp fork
5
6- Add missing IMX header file into istall target;
7- Allocator's meta data files are missing in meson.build, bring them back;
8- Add ION NXP-specific allocator to meson.build;
9- Introduce additional configuration option to pass extra include paths,
10 which are required to build ION allocator;
11- Some video sources are missing, bring them also into the build;
12
13Upstream-Status: Pending
14
15Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
16---
17 gst-libs/gst/allocators/meson.build | 30 +++++++++++++++++++++++++++--
18 gst-libs/gst/gl/gstglconfig.h.meson | 2 ++
19 gst-libs/gst/gl/meson.build | 20 +++++++++++++++++++
20 gst-libs/gst/meson.build | 6 ++++++
21 gst-libs/gst/video/meson.build | 11 +++++++++++
22 meson.build | 3 +++
23 meson_options.txt | 4 ++++
24 7 files changed, 74 insertions(+), 2 deletions(-)
25
26diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build
27index 364baeebf..30b1495c9 100644
28--- a/gst-libs/gst/allocators/meson.build
29+++ b/gst-libs/gst/allocators/meson.build
30@@ -5,18 +5,44 @@ gst_allocators_headers = [
31 'gstphysmemory.h',
32 'gstdmabuf.h',
33 ]
34+
35+imx_gst_allocators_headers = [
36+ 'gstphymemmeta.h',
37+ 'gstdmabufmeta.h',
38+ 'gstallocatorphymem.h',
39+]
40+
41+if cc.has_header('linux/ion.h', include_directories : imx_includes)
42+ imx_gst_allocators_headers += [
43+ 'gstionmemory.h',
44+ ]
45+endif
46+
47+gst_allocators_headers += imx_gst_allocators_headers
48+
49 install_headers(gst_allocators_headers, subdir : 'gstreamer-1.0/gst/allocators/')
50
51 gst_allocators_sources = [ 'gstdmabuf.c', 'gstfdmemory.c', 'gstphysmemory.c']
52+
53+imx_gst_allocators_sources = ['gstdmabufmeta.c', 'gstphymemmeta.c', 'gstallocatorphymem.c']
54+
55+if cc.has_header('linux/ion.h', include_directories : imx_includes)
56+ imx_gst_allocators_sources += [
57+ 'gstionmemory.c',
58+ ]
59+endif
60+
61+gst_allocators_sources += imx_gst_allocators_sources
62+
63 gstallocators = library('gstallocators-@0@'.format(api_version),
64 gst_allocators_sources,
65 c_args : gst_plugins_base_args + ['-DBUILDING_GST_ALLOCATORS'],
66- include_directories: [configinc, libsinc],
67+ include_directories: [configinc, libsinc, imx_includes],
68 version : libversion,
69 soversion : soversion,
70 darwin_versions : osxversion,
71 install : true,
72- dependencies : [gst_dep],
73+ dependencies : [video_dep, gst_dep],
74 )
75
76 allocators_gen_sources = []
77diff --git a/gst-libs/gst/gl/gstglconfig.h.meson b/gst-libs/gst/gl/gstglconfig.h.meson
78index 11795c16c..66cd54a7e 100644
79--- a/gst-libs/gst/gl/gstglconfig.h.meson
80+++ b/gst-libs/gst/gl/gstglconfig.h.meson
81@@ -32,8 +32,10 @@ G_BEGIN_DECLS
82 #mesondefine GST_GL_HAVE_PLATFORM_CGL
83 #mesondefine GST_GL_HAVE_PLATFORM_EAGL
84
85+#mesondefine GST_GL_HAVE_IONDMA
86 #mesondefine GST_GL_HAVE_DMABUF
87 #mesondefine GST_GL_HAVE_VIV_DIRECTVIV
88+#mesondefine GST_GL_HAVE_PHYMEM
89
90 #mesondefine GST_GL_HAVE_GLEGLIMAGEOES
91 #mesondefine GST_GL_HAVE_GLCHAR
92diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
93index 0e0ba1b7d..6f6c6866d 100644
94--- a/gst-libs/gst/gl/meson.build
95+++ b/gst-libs/gst/gl/meson.build
96@@ -123,8 +123,10 @@ glconf_options = [
97 'GST_GL_HAVE_PLATFORM_CGL',
98 'GST_GL_HAVE_PLATFORM_EAGL',
99
100+ 'GST_GL_HAVE_IONDMA',
101 'GST_GL_HAVE_DMABUF',
102 'GST_GL_HAVE_VIV_DIRECTVIV',
103+ 'GST_GL_HAVE_PHYMEM',
104
105 'GST_GL_HAVE_GLEGLIMAGEOES',
106 'GST_GL_HAVE_GLCHAR',
107@@ -146,6 +148,18 @@ if unneeded_dep.found()
108 error ('Found unfindable dependency')
109 endif
110
111+if cc.has_header('linux/ion.h', include_directories : imx_includes)
112+ glconf.set10('GST_GL_HAVE_IONDMA', 1)
113+ gl_sources += [
114+ 'gstglmemorydma.c',
115+ ]
116+ gl_headers += [
117+ 'gstglmemorydma.h',
118+ ]
119+else
120+ error('i.MX platform requires ION support to be enabled!')
121+endif
122+
123 # OpenGL/GLES2 libraries
124 gl_lib_deps = []
125 # GL platform - EGL, GLX, CGL, WGL, etc
126@@ -501,6 +515,7 @@ if need_platform_egl != 'no'
127 glconf.set10('GST_GL_HAVE_DMABUF', 1)
128 endif
129
130+
131 egl_includes = '''
132 #include <EGL/egl.h>
133 #include <EGL/eglext.h>
134@@ -808,9 +823,14 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no'
135 enabled_gl_winsys += 'viv-fb'
136 glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1)
137 glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1)
138+ glconf.set10('GST_GL_HAVE_PHYMEM', 1)
139 gl_sources += [
140 'viv-fb/gstgldisplay_viv_fb.c',
141 'viv-fb/gstglwindow_viv_fb_egl.c',
142+ 'gstglphymemory.c',
143+ ]
144+ gl_headers += [
145+ 'gstglphymemory.h',
146 ]
147 gl_cpp_args += ['-DEGL_API_FB']
148 endif
149diff --git a/gst-libs/gst/meson.build b/gst-libs/gst/meson.build
150index cd3b5b043..1935f46e5 100644
151--- a/gst-libs/gst/meson.build
152+++ b/gst-libs/gst/meson.build
153@@ -11,3 +11,9 @@ subdir('app')
154 subdir('allocators')
155 # FIXME: gl deps are automagic
156 subdir('gl')
157+
158+# Install dangling imx header, required by other plugins
159+gst_imx_header = [
160+ 'gstimxcommon.h',
161+]
162+install_headers(gst_imx_header, subdir : 'gstreamer-1.0/')
163diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build
164index b4dfcdf65..d8531f199 100644
165--- a/gst-libs/gst/video/meson.build
166+++ b/gst-libs/gst/video/meson.build
167@@ -35,6 +35,11 @@ video_sources = [
168 'videooverlay.c',
169 ]
170
171+imx_video_sources = [
172+ 'gstvideohdr10meta.c',
173+]
174+video_sources += imx_video_sources
175+
176 video_headers = [
177 'colorbalance.h',
178 'colorbalancechannel.h',
179@@ -70,6 +75,12 @@ video_headers = [
180 'video-overlay-composition.h',
181 'video-multiview.h',
182 ]
183+
184+imx_video_headers = [
185+ 'gstvideohdr10meta.h',
186+]
187+video_headers += imx_video_headers
188+
189 install_headers(video_headers, subdir : 'gstreamer-1.0/gst/video/')
190
191 video_mkenum_headers = [
192diff --git a/meson.build b/meson.build
193index 2fca28205..7781934cd 100644
194--- a/meson.build
195+++ b/meson.build
196@@ -103,6 +103,9 @@ if glib_checks.disabled() or (glib_checks.auto() and not gst_version_is_dev)
197 add_project_arguments('-DG_DISABLE_CHECKS', language: 'c')
198 endif
199
200+# Define i.MX-specific include path as variable from options
201+imx_includes = include_directories(get_option('extra_imx_incdir'))
202+
203 check_headers = [
204 ['HAVE_DLFCN_H', 'dlfcn.h'],
205 ['HAVE_EMMINTRIN_H', 'emmintrin.h'],
206diff --git a/meson_options.txt b/meson_options.txt
207index e7af4dd45..d44401ca6 100644
208--- a/meson_options.txt
209+++ b/meson_options.txt
210@@ -85,3 +85,7 @@ option('package-name', type : 'string', yield : true,
211 description : 'package name to use in plugins')
212 option('package-origin', type : 'string', value : 'Unknown package origin', yield : true,
213 description : 'package origin URL to use in plugins')
214+
215+# NXP specific options
216+option('extra_imx_incdir', type : 'string', yield : true, description : 'i.MX specific header include path')
217+
218--
2192.17.1
220
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
deleted file mode 100644
index 55871883..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From f82db8496df8ffb8352248e895258c19f8f4776b Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Thu, 17 Oct 2019 20:06:24 +0100
4Subject: [PATCH] meson: build gir even when cross-compiling if introspection
5 was enabled explicitly
6
7This can be made to work in certain circumstances when
8cross-compiling, so default to not building g-i stuff
9when cross-compiling, but allow it if introspection was
10enabled explicitly via -Dintrospection=enabled.
11
12See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.
13
14Upstream-Status: Backport [30672ba7d134553e59935ddc875104adba26f25c]
15
16Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
17
18---
19 meson.build | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/meson.build b/meson.build
23index 2fca28205..2714af718 100644
24--- a/meson.build
25+++ b/meson.build
26@@ -355,7 +355,7 @@ endif
27
28 gir = find_program('g-ir-scanner', required : get_option('introspection'))
29 gnome = import('gnome')
30-build_gir = gir.found() and not meson.is_cross_build()
31+build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
32 gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
33 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
34 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch
deleted file mode 100644
index c761619f..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 8153e86dac04076fb80fc272c8374d4ba019fa3c Mon Sep 17 00:00:00 2001
2From: Zan Dobersek <zdobersek@igalia.com>
3Date: Wed, 4 Nov 2020 14:02:10 +0100
4Subject: [PATCH] meson: viv-fb code must link against libg2d
5
6Find the libg2d library and link against it, if necessary, avoiding
7linking errors for couple of libg2d symbols.
8
9Upstream-Status: Pending
10
11Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
12---
13 gst-libs/gst/gl/meson.build | 6 +++++-
14 1 file changed, 5 insertions(+), 1 deletion(-)
15
16diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
17index 6f6c6866d..fb6a9aabf 100644
18--- a/gst-libs/gst/gl/meson.build
19+++ b/gst-libs/gst/gl/meson.build
20@@ -818,9 +818,11 @@ if need_win_gbm != 'no'
21 endif
22
23 if need_platform_egl != 'no' and need_win_viv_fb != 'no'
24- if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep)
25+ g2d_dep = cc.find_library('g2d', required : false)
26+ if egl_dep.found() and g2d_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep)
27 if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep)
28 enabled_gl_winsys += 'viv-fb'
29+ gl_winsys_deps += [g2d_dep]
30 glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1)
31 glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1)
32 glconf.set10('GST_GL_HAVE_PHYMEM', 1)
33@@ -834,6 +836,8 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no'
34 ]
35 gl_cpp_args += ['-DEGL_API_FB']
36 endif
37+ else
38+ g2d_dep = unneeded_dep
39 endif
40 endif
41
42--
432.28.0
44
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch
deleted file mode 100644
index 9494f622..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch
+++ /dev/null
@@ -1,233 +0,0 @@
1From 7a21c86a3facfc7fe8285e764324839b2e55df8a Mon Sep 17 00:00:00 2001
2From: Thibault Saunier <tsaunier@igalia.com>
3Date: Mon, 22 Oct 2018 11:44:37 +0200
4Subject: [PATCH] meson: Add variables for gir files
5
6And flatten list of sources for dependencies
7
8Upstream-Status: Backport [685731e989dc074a4b0d48b6c8062e2738f09719]
9
10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
11
12---
13 gst-libs/gst/allocators/meson.build | 5 +++--
14 gst-libs/gst/app/meson.build | 6 ++++--
15 gst-libs/gst/audio/meson.build | 5 +++--
16 gst-libs/gst/pbutils/meson.build | 5 +++--
17 gst-libs/gst/rtp/meson.build | 6 ++++--
18 gst-libs/gst/rtsp/meson.build | 5 +++--
19 gst-libs/gst/sdp/meson.build | 6 ++++--
20 gst-libs/gst/tag/meson.build | 5 +++--
21 gst-libs/gst/video/meson.build | 5 +++--
22 9 files changed, 30 insertions(+), 18 deletions(-)
23
24diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build
25index 364baeebf..56f156dc3 100644
26--- a/gst-libs/gst/allocators/meson.build
27+++ b/gst-libs/gst/allocators/meson.build
28@@ -22,7 +22,7 @@ gstallocators = library('gstallocators-@0@'.format(api_version),
29 allocators_gen_sources = []
30 if build_gir
31 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/allocators/allocators.h' ]
32- allocators_gen_sources += [gnome.generate_gir(gstallocators,
33+ allocators_gir = gnome.generate_gir(gstallocators,
34 sources : gst_allocators_sources + gst_allocators_headers,
35 namespace : 'GstAllocators',
36 nsversion : api_version,
37@@ -33,7 +33,8 @@ if build_gir
38 install : true,
39 extra_args : gst_gir_extra_args,
40 dependencies : [gst_dep]
41- )]
42+ )
43+ allocators_gen_sources += allocators_gir
44 endif
45
46 allocators_dep = declare_dependency(link_with: gstallocators,
47diff --git a/gst-libs/gst/app/meson.build b/gst-libs/gst/app/meson.build
48index 81dd0f42c..7a90f5e10 100644
49--- a/gst-libs/gst/app/meson.build
50+++ b/gst-libs/gst/app/meson.build
51@@ -32,7 +32,7 @@ gstapp = library('gstapp-@0@'.format(api_version),
52
53 if build_gir
54 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/app/app.h' ]
55- app_gen_sources += [gnome.generate_gir(gstapp,
56+ app_gir = gnome.generate_gir(gstapp,
57 sources : app_sources + app_headers + [gstapp_c] + [gstapp_h],
58 namespace : 'GstApp',
59 nsversion : api_version,
60@@ -43,7 +43,9 @@ if build_gir
61 install : true,
62 extra_args : gst_gir_extra_args,
63 dependencies : [gst_dep, gst_base_dep]
64- )]
65+ )
66+
67+ app_gen_sources += app_gir
68 endif
69
70 app_dep = declare_dependency(link_with: gstapp,
71diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build
72index 0e4efab2e..2a449d4bf 100644
73--- a/gst-libs/gst/audio/meson.build
74+++ b/gst-libs/gst/audio/meson.build
75@@ -153,7 +153,7 @@ gstaudio = library('gstaudio-@0@'.format(api_version),
76
77 if build_gir
78 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/audio/audio.h' ]
79- audio_gen_sources += [gnome.generate_gir(gstaudio,
80+ audio_gir = gnome.generate_gir(gstaudio,
81 sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h],
82 namespace : 'GstAudio',
83 nsversion : api_version,
84@@ -164,7 +164,8 @@ if build_gir
85 install : true,
86 extra_args : gst_gir_extra_args,
87 dependencies : gstaudio_deps
88- )]
89+ )
90+ audio_gen_sources += [audio_gir]
91 endif
92
93 audio_dep = declare_dependency(link_with : gstaudio,
94diff --git a/gst-libs/gst/pbutils/meson.build b/gst-libs/gst/pbutils/meson.build
95index 2faf62622..0e96722fd 100644
96--- a/gst-libs/gst/pbutils/meson.build
97+++ b/gst-libs/gst/pbutils/meson.build
98@@ -63,7 +63,7 @@ pbutils = library('gstpbutils-@0@'.format(api_version),
99 pbutils_gen_sources = [gstpbutils_h, gst_pbutils_version_h]
100 if build_gir
101 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/pbutils/pbutils.h' ]
102- pbutils_gen_sources += [gnome.generate_gir(pbutils,
103+ pbutils_gir = gnome.generate_gir(pbutils,
104 sources : pbutils_sources + pbutils_headers + [gstpbutils_h, gst_pbutils_version_h],
105 namespace : 'GstPbutils',
106 nsversion : api_version,
107@@ -74,7 +74,8 @@ if build_gir
108 install : true,
109 extra_args : gst_gir_extra_args,
110 dependencies : gstpbutils_deps
111- )]
112+ )
113+ pbutils_gen_sources += [pbutils_gir]
114 endif
115
116 pbutils_dep = declare_dependency(link_with : pbutils,
117diff --git a/gst-libs/gst/rtp/meson.build b/gst-libs/gst/rtp/meson.build
118index f47ec6592..7ea6658d5 100644
119--- a/gst-libs/gst/rtp/meson.build
120+++ b/gst-libs/gst/rtp/meson.build
121@@ -49,7 +49,7 @@ gst_rtp = library('gstrtp-@0@'.format(api_version),
122 rtp_gen_sources = [gstrtp_enum_h]
123 if build_gir
124 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtp/rtp.h' ]
125- rtp_gen_sources += [gnome.generate_gir(gst_rtp,
126+ rtp_gir = gnome.generate_gir(gst_rtp,
127 sources : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h],
128 namespace : 'GstRtp',
129 nsversion : api_version,
130@@ -60,7 +60,9 @@ if build_gir
131 install : true,
132 extra_args : gst_gir_extra_args,
133 dependencies : gstrtp_deps
134- )]
135+ )
136+
137+ rtp_gen_sources += [rtp_gir]
138 endif
139
140
141diff --git a/gst-libs/gst/rtsp/meson.build b/gst-libs/gst/rtsp/meson.build
142index 27e309d5a..3632adceb 100644
143--- a/gst-libs/gst/rtsp/meson.build
144+++ b/gst-libs/gst/rtsp/meson.build
145@@ -54,7 +54,7 @@ gst_rtsp = library('gstrtsp-@0@'.format(api_version),
146 rtsp_gen_sources = [gstrtsp_h]
147 if build_gir
148 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtsp/rtsp.h' ]
149- rtsp_gen_sources += [gnome.generate_gir(gst_rtsp,
150+ rtsp_gir = gnome.generate_gir(gst_rtsp,
151 sources : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h],
152 namespace : 'GstRtsp',
153 nsversion : api_version,
154@@ -65,7 +65,8 @@ if build_gir
155 install : true,
156 extra_args : gst_gir_extra_args,
157 dependencies : gstrtsp_deps + [sdp_dep]
158- )]
159+ )
160+ rtsp_gen_sources += [rtsp_gir]
161 endif
162
163 rtsp_dep = declare_dependency(link_with : gst_rtsp,
164diff --git a/gst-libs/gst/sdp/meson.build b/gst-libs/gst/sdp/meson.build
165index 62c18b732..24cdb5293 100644
166--- a/gst-libs/gst/sdp/meson.build
167+++ b/gst-libs/gst/sdp/meson.build
168@@ -23,7 +23,7 @@ gstsdp = library('gstsdp-@0@'.format(api_version),
169 sdp_gen_sources = []
170 if build_gir
171 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/sdp/sdp.h' ]
172- sdp_gen_sources += [gnome.generate_gir(gstsdp,
173+ sdp_gir = gnome.generate_gir(gstsdp,
174 sources : gst_sdp_sources + gst_sdp_headers,
175 namespace : 'GstSdp',
176 nsversion : api_version,
177@@ -34,7 +34,9 @@ if build_gir
178 install : true,
179 extra_args : gst_gir_extra_args,
180 dependencies : rtsp_deps
181- )]
182+ )
183+
184+ sdp_gen_sources += [sdp_gir]
185 endif
186
187 sdp_dep = declare_dependency(link_with: gstsdp,
188diff --git a/gst-libs/gst/tag/meson.build b/gst-libs/gst/tag/meson.build
189index 27e66fd63..5ec37392a 100644
190--- a/gst-libs/gst/tag/meson.build
191+++ b/gst-libs/gst/tag/meson.build
192@@ -93,7 +93,7 @@ gsttag = library('gsttag-@0@'.format(api_version),
193
194 if build_gir
195 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/tag/tag.h' ]
196- tag_gen_sources += [gnome.generate_gir(gsttag,
197+ tag_gir = gnome.generate_gir(gsttag,
198 sources : tag_sources + tag_headers + [gsttag_h] + [gsttag_c],
199 namespace : 'GstTag',
200 nsversion : api_version,
201@@ -104,7 +104,8 @@ if build_gir
202 install : true,
203 extra_args : gst_gir_extra_args,
204 dependencies : tag_deps
205- )]
206+ )
207+ tag_gen_sources += [tag_gir]
208 endif
209
210 tag_dep = declare_dependency(link_with: gsttag,
211diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build
212index b4dfcdf65..036c3a6a7 100644
213--- a/gst-libs/gst/video/meson.build
214+++ b/gst-libs/gst/video/meson.build
215@@ -135,7 +135,7 @@ gstvideo = library('gstvideo-@0@'.format(api_version),
216
217 if build_gir
218 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ]
219- video_gen_sources += [gnome.generate_gir(gstvideo,
220+ video_gir = gnome.generate_gir(gstvideo,
221 sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h],
222 namespace : 'GstVideo',
223 nsversion : api_version,
224@@ -146,7 +146,8 @@ if build_gir
225 install : true,
226 extra_args : gst_gir_extra_args,
227 dependencies : gstvideo_deps
228- )]
229+ )
230+ video_gen_sources += [video_gir]
231 endif
232
233 video_dep = declare_dependency(link_with : gstvideo,
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
index 731ba873..b8fc8827 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
@@ -1,4 +1,4 @@
1From 616cf194dfd26818ed7b776321582b8e0ff9b3f1 Mon Sep 17 00:00:00 2001 1From 70a702af3a3a4afcadbc53d61c4c45f31f96b2cc Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org> 2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Tue, 21 May 2019 14:01:11 +0200 3Date: Tue, 21 May 2019 14:01:11 +0200
4Subject: [PATCH] viv-fb: Make sure config.h is included 4Subject: [PATCH] viv-fb: Make sure config.h is included
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch
index fc67a486..94a61465 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch
@@ -1,4 +1,4 @@
1From f18f1206ec44f4154e60546ecb82823f7a6569d7 Mon Sep 17 00:00:00 2001 1From b975be9c4630536ec1315773be29900371d21930 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 24 Sep 2015 19:47:32 +0300 3Date: Thu, 24 Sep 2015 19:47:32 +0300
4Subject: [PATCH] glimagesink: Downrank to marginal 4Subject: [PATCH] glimagesink: Downrank to marginal
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
new file mode 100644
index 00000000..0fa3dd30
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
@@ -0,0 +1,48 @@
1From 1718197bf6ebf3d8784a55126609aa8770fff682 Mon Sep 17 00:00:00 2001
2From: Xavier Claessens <xavier.claessens@collabora.com>
3Date: Mon, 26 Apr 2021 14:25:03 -0400
4Subject: [PATCH] gstgl: Fix build when Meson >= 0.58.0rc1
5
6"implicit_include_directories: false" now also means that current build
7directory is not added to include paths by default any more. We have to
8add it manually because we have some custom_target() that generate
9headers in current build directory.
10
11See https://github.com/mesonbuild/meson/issues/8700.
12
13Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1125>
14Upstream-Status: Backport
15Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
16
17---
18 gst-libs/gst/gl/meson.build | 15 ++++++++++++---
19 1 file changed, 12 insertions(+), 3 deletions(-)
20
21diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
22index ae19d7aca..3ad7ddcf6 100644
23--- a/gst-libs/gst/gl/meson.build
24+++ b/gst-libs/gst/gl/meson.build
25@@ -1023,11 +1023,20 @@ if build_gstgl
26 command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
27 gen_sources = [gl_enumtypes_h]
28
29+ common_args = gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL']
30+
31+ # We have custom_target() that generate headers in the current build dir,
32+ # but with implicit_include_directories: false, meson >= 0.58.0 won't include
33+ # it by default. We cannot use include_directories('.') here because it would
34+ # also include current source dir which is what we want to avoid because
35+ # case-insensitive FS would include gst-libs/gl/egl/egl.h as EGL/egl.h.
36+ common_args += '-I@0@'.format(meson.current_build_dir())
37+
38 gstgl = library('gstgl-' + api_version,
39 gl_sources, gl_egl_sources, gl_x11_sources, gl_wayland_sources, gl_priv_sources, gl_enumtypes_c, gl_enumtypes_h,
40- c_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
41- cpp_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
42- objc_args : gst_plugins_base_args + gl_cpp_args + gl_objc_args + ['-DBUILDING_GST_GL'],
43+ c_args : common_args,
44+ cpp_args : common_args,
45+ objc_args : common_args + gl_objc_args,
46 include_directories : [configinc, libsinc, gl_includes],
47 version : libversion,
48 soversion : soversion,
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend
index d92bdf3c..d92bdf3c 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb
index db0b740f..5e69e42b 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb
@@ -1,28 +1,26 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3DESCRIPTION = "'Base' GStreamer plugins and helper libraries"
4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues"
3LICENSE = "GPLv2+ & LGPLv2+" 6LICENSE = "GPLv2+ & LGPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
5 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
6 8
7GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" 9GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https"
8SRCBRANCH = "MM_04.05.06_2008_L5.4.47" 10SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
9SRCREV = "3c4aa2a58576d68f6e684efa58609665679c9969"
10SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \ 11SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \
11 file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \ 12 file://0003-viv-fb-Make-sure-config.h-is-included.patch \
12 file://0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch \ 13 file://0004-glimagesink-Downrank-to-marginal.patch \
13 file://0002-meson-Add-variables-for-gir-files.patch \ 14 file://4ef5c91697a141fea7317aff7f0f28e5a861db99.patch \
14 file://0005-viv-fb-Make-sure-config.h-is-included.patch \
15 file://0009-glimagesink-Downrank-to-marginal.patch \
16 file://0001-gst-libs-gst-gl-wayland-fix-meson-build.patch \
17 file://0001-meson-viv-fb-code-must-link-against-libg2d.patch \
18 " 15 "
16SRCREV = "69554a26c932481acb7c5691038c367eca60e5bc"
19 17
20S = "${WORKDIR}/git" 18S = "${WORKDIR}/git"
21 19
22DEPENDS += "iso-codes util-linux zlib" 20DEPENDS += "iso-codes util-linux zlib"
23DEPENDS_append_imxgpu2d = " virtual/libg2d" 21DEPENDS_append_imxgpu2d = " virtual/libg2d"
24 22
25inherit use-imx-headers gobject-introspection gtk-doc 23inherit gobject-introspection use-imx-headers
26 24
27DEFAULT_PREFERENCE = "-1" 25DEFAULT_PREFERENCE = "-1"
28 26
@@ -36,7 +34,7 @@ PACKAGECONFIG ??= " \
36 ${GSTREAMER_ORC} \ 34 ${GSTREAMER_ORC} \
37 ${PACKAGECONFIG_GL} \ 35 ${PACKAGECONFIG_GL} \
38 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ 36 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \
39 ogg pango png theora vorbis \ 37 jpeg ogg pango png theora vorbis \
40 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ 38 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
41" 39"
42 40
@@ -71,25 +69,24 @@ PACKAGECONFIG[egl] = ",,virtual/egl"
71# OpenGL window systems (except for X11) 69# OpenGL window systems (except for X11)
72PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" 70PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm"
73PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" 71PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm"
72PACKAGECONFIG[dispmanx] = ",,virtual/libomxil"
74PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d" 73PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d"
75 74
75OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}"
76
76EXTRA_OEMESON += " \ 77EXTRA_OEMESON += " \
78 -Ddoc=disabled \
77 -Dgl-graphene=disabled \ 79 -Dgl-graphene=disabled \
78 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ 80 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \
79 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ 81 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \
80 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ 82 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \
81 -Dextra_imx_incdir=${STAGING_INCDIR_IMX} \ 83 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \
82" 84"
83 85
84GTKDOC_MESON_OPTION = "gtk_doc"
85GTKDOC_MESON_ENABLE_FLAG = "enabled"
86GTKDOC_MESON_DISABLE_FLAG = "disabled"
87
88FILES_${PN} += "${libdir}/gstreamer-1.0/include" 86FILES_${PN} += "${libdir}/gstreamer-1.0/include"
87FILES_${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h"
89FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict" 88FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
90 89
91COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
92
93def get_opengl_cmdline_list(switch_name, options, d): 90def get_opengl_cmdline_list(switch_name, options, d):
94 selected_options = [] 91 selected_options = []
95 if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d): 92 if bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d):
@@ -100,3 +97,7 @@ def get_opengl_cmdline_list(switch_name, options, d):
100 return '-D' + switch_name + '=' + ','.join(selected_options) 97 return '-D' + switch_name + '=' + ','.join(selected_options)
101 else: 98 else:
102 return '' 99 return ''
100
101CVE_PRODUCT += "gst-plugins-base"
102
103COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend
deleted file mode 100644
index 8565c6a5..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
1PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)}"
2PACKAGECONFIG_GL_imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
3PACKAGECONFIG_GL_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb
index 8413bf10..29e25f7d 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb
@@ -1,13 +1,12 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3
4GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https" 3GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https"
5SRCBRANCH = "MM_04.05.07_2011_L5.4.70" 4SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
6 5
7SRC_URI = " \ 6SRC_URI = " \
8 ${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \ 7 ${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \
9" 8"
10SRCREV = "6005e8199ea19878f269b058ffbbbcaa314472d8" 9SRCREV = "3160acd37304f67238b8ceae2a95ee4951f9c718"
11 10
12DEFAULT_PREFERENCE = "-1" 11DEFAULT_PREFERENCE = "-1"
13 12
@@ -15,7 +14,6 @@ S = "${WORKDIR}/git"
15 14
16LICENSE = "GPLv2+ & LGPLv2.1+" 15LICENSE = "GPLv2+ & LGPLv2.1+"
17LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 16LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
18 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
19 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" 17 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
20 18
21DEPENDS += "gstreamer1.0-plugins-base libcap zlib" 19DEPENDS += "gstreamer1.0-plugins-base libcap zlib"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb
index 2a1cc3fd..8668ccfd 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb
@@ -1,5 +1,9 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3DESCRIPTION = "'Ugly GStreamer plugins"
4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues"
6
3LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
4 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" 8 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
5 9
@@ -7,10 +11,9 @@ LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
7LICENSE_FLAGS = "commercial" 11LICENSE_FLAGS = "commercial"
8 12
9SRC_URI = " \ 13SRC_URI = " \
10 http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ 14 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
11 " 15 "
12SRC_URI[md5sum] = "1ec343c58d4b17d682f7befa8453c11c" 16SRC_URI[sha256sum] = "686644e45e08258ae240c4519376668ad8d34ea6d0f6ab556473c317bfb7e082"
13SRC_URI[sha256sum] = "e30964c5f031c32289e0b25e176c3c95a5737f2052dfc81d0f7427ef0233a4c2"
14 17
15S = "${WORKDIR}/gst-plugins-ugly-${PV}" 18S = "${WORKDIR}/gst-plugins-ugly-${PV}"
16 19
@@ -32,6 +35,7 @@ PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
32PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" 35PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264"
33 36
34EXTRA_OEMESON += " \ 37EXTRA_OEMESON += " \
38 -Ddoc=disabled \
35 -Dsidplay=disabled \ 39 -Dsidplay=disabled \
36" 40"
37 41
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.0.bb
index 0a3c35ff..4ac30c28 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.0.bb
@@ -8,12 +8,11 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
8 8
9PNREAL = "gst-rtsp-server" 9PNREAL = "gst-rtsp-server"
10 10
11SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \ 11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
12 file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
13 " 12 "
14 13
15SRC_URI[md5sum] = "adc4460239ec2eccf58ad9752ce53bfd" 14SRC_URI[md5sum] = "77fe28c702a83566811ab5c7bbe99ab2"
16SRC_URI[sha256sum] = "198e9eec1a3e32dc810d3fbf3a714850a22c6288d4a5c8e802c5ff984af03f19" 15SRC_URI[sha256sum] = "2ad19311054cbf2df0d0622936bc703dedc06ced706df46a3d3a3ea5a4b7c70f"
17 16
18S = "${WORKDIR}/${PNREAL}-${PV}" 17S = "${WORKDIR}/${PNREAL}-${PV}"
19 18
@@ -28,5 +27,4 @@ GIR_MESON_ENABLE_FLAG = "enabled"
28GIR_MESON_DISABLE_FLAG = "disabled" 27GIR_MESON_DISABLE_FLAG = "disabled"
29 28
30# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well 29# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
31LIBV = "1.0"
32require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc 30require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
index 67a872cd..23ebd5c6 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
@@ -1,25 +1,44 @@
1From a1d7c582392c8bc87fa9411af77b20e011944357 Mon Sep 17 00:00:00 2001 1From fd8f49dba8c09d47425da80f5faab3bfa4a7c962 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Thu, 25 Jan 2018 17:55:02 +0200 3Date: Sat, 10 Oct 2020 19:09:03 +0000
4Subject: [PATCH] gst/gstpluginloader.c: when env var is set do not fall 4Subject: [PATCH 1/3] gstpluginloader: when env var is set do not fall through
5 through to system plugin scanner 5 to system plugin scanner
6 6
7If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that. 7If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that.
8 8
9Falling through to the one installed on the system is problamatic in cross-compilation 9Falling through to the one installed on the system is problamatic in cross-compilation
10environemnts, regardless of whether one pointed to by the env var succeeded or failed. 10environemnts, regardless of whether one pointed to by the env var succeeded or failed.
11 11
12Upstream-Status: Pending 12taken from:
13Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 13http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch?id=0db7ba34ca41b107042306d13a6f0162885c123b
14
15Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669>
16
17Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/9f958058697e6fbf5bde325228034572331d1a3a]
18
19Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
14--- 20---
15 gst/gstpluginloader.c | 4 +--- 21 gst/gstpluginloader.c | 15 +++++++--------
16 1 file changed, 1 insertion(+), 3 deletions(-) 22 1 file changed, 7 insertions(+), 8 deletions(-)
17 23
18diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c 24diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
19index 430829d..3a75731 100644 25index d1e404d98..c626bf263 100644
20--- a/gst/gstpluginloader.c 26--- a/gst/gstpluginloader.c
21+++ b/gst/gstpluginloader.c 27+++ b/gst/gstpluginloader.c
22@@ -471,9 +471,7 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) 28@@ -464,20 +464,19 @@ gst_plugin_loader_spawn (GstPluginLoader * loader)
29 if (loader->child_running)
30 return TRUE;
31
32- /* Find the gst-plugin-scanner: first try the env-var if it is set,
33- * otherwise use the installed version */
34+ /* Find the gst-plugin-scanner */
35 env = g_getenv ("GST_PLUGIN_SCANNER_1_0");
36 if (env == NULL)
37 env = g_getenv ("GST_PLUGIN_SCANNER");
38
39 if (env != NULL && *env != '\0') {
40+ /* use the env-var if it is set */
41 GST_LOG ("Trying GST_PLUGIN_SCANNER env var: %s", env);
23 helper_bin = g_strdup (env); 42 helper_bin = g_strdup (env);
24 res = gst_plugin_loader_try_helper (loader, helper_bin); 43 res = gst_plugin_loader_try_helper (loader, helper_bin);
25 g_free (helper_bin); 44 g_free (helper_bin);
@@ -27,9 +46,24 @@ index 430829d..3a75731 100644
27- 46-
28- if (!res) { 47- if (!res) {
29+ } else { 48+ } else {
49+ /* use the installed version */
30 GST_LOG ("Trying installed plugin scanner"); 50 GST_LOG ("Trying installed plugin scanner");
31 51
32 #ifdef G_OS_WIN32 52 #ifdef G_OS_WIN32
53@@ -497,10 +496,10 @@ gst_plugin_loader_spawn (GstPluginLoader * loader)
54 #endif
55 res = gst_plugin_loader_try_helper (loader, helper_bin);
56 g_free (helper_bin);
57+ }
58
59- if (!res) {
60- GST_INFO ("No gst-plugin-scanner available, or not working");
61- }
62+ if (!res) {
63+ GST_INFO ("No gst-plugin-scanner available, or not working");
64 }
65
66 return loader->child_running;
33-- 67--
342.15.1 682.29.2
35 69
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch
new file mode 100644
index 00000000..96abef17
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch
@@ -0,0 +1,112 @@
1From 598d108e2c438d8f2ecd3bf948fa3ebbd3681490 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Fri, 14 Aug 2020 16:38:26 +0100
4Subject: [PATCH 2/3] Remove unused valgrind detection
5
6Having this just to log a debug message in case we're
7running inside valgrind doesn't seem very useful, and
8the code that used to use this no longer exists it seems.
9
10Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/595>
11
12Upstream-Status: Backport [a2cbf75523cdf8a4df1baa7007d86ef455972245]
13
14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
15---
16 gst/gst_private.h | 2 --
17 gst/gstinfo.c | 39 ---------------------------------------
18 meson.build | 1 -
19 3 files changed, 42 deletions(-)
20
21diff --git a/gst/gst_private.h b/gst/gst_private.h
22index eefd044d9..8252ede51 100644
23--- a/gst/gst_private.h
24+++ b/gst/gst_private.h
25@@ -116,8 +116,6 @@ G_GNUC_INTERNAL gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin
26
27 G_GNUC_INTERNAL gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin);
28
29-G_GNUC_INTERNAL gboolean _priv_gst_in_valgrind (void);
30-
31 /* init functions called from gst_init(). */
32 G_GNUC_INTERNAL void _priv_gst_quarks_initialize (void);
33 G_GNUC_INTERNAL void _priv_gst_mini_object_initialize (void);
34diff --git a/gst/gstinfo.c b/gst/gstinfo.c
35index 5d317877b..097f8b20d 100644
36--- a/gst/gstinfo.c
37+++ b/gst/gstinfo.c
38@@ -305,36 +305,6 @@ static gboolean pretty_tags = PRETTY_TAGS_DEFAULT;
39 static volatile gint G_GNUC_MAY_ALIAS __default_level = GST_LEVEL_DEFAULT;
40 static volatile gint G_GNUC_MAY_ALIAS __use_color = GST_DEBUG_COLOR_MODE_ON;
41
42-/* FIXME: export this? */
43-gboolean
44-_priv_gst_in_valgrind (void)
45-{
46- static enum
47- {
48- GST_VG_UNCHECKED,
49- GST_VG_NO_VALGRIND,
50- GST_VG_INSIDE
51- }
52- in_valgrind = GST_VG_UNCHECKED;
53-
54- if (in_valgrind == GST_VG_UNCHECKED) {
55-#ifdef HAVE_VALGRIND_VALGRIND_H
56- if (RUNNING_ON_VALGRIND) {
57- GST_CAT_INFO (GST_CAT_GST_INIT, "we're running inside valgrind");
58- in_valgrind = GST_VG_INSIDE;
59- } else {
60- GST_CAT_LOG (GST_CAT_GST_INIT, "not doing extra valgrind stuff");
61- in_valgrind = GST_VG_NO_VALGRIND;
62- }
63-#else
64- in_valgrind = GST_VG_NO_VALGRIND;
65-#endif
66- g_assert (in_valgrind == GST_VG_NO_VALGRIND ||
67- in_valgrind == GST_VG_INSIDE);
68- }
69- return (in_valgrind == GST_VG_INSIDE);
70-}
71-
72 static gchar *
73 _replace_pattern_in_gst_debug_file_name (gchar * name, const char *token,
74 guint val)
75@@ -463,9 +433,6 @@ _priv_gst_debug_init (void)
76 _priv_GST_CAT_PROTECTION =
77 _gst_debug_category_new ("GST_PROTECTION", 0, "protection");
78
79- /* print out the valgrind message if we're in valgrind */
80- _priv_gst_in_valgrind ();
81-
82 env = g_getenv ("GST_DEBUG_OPTIONS");
83 if (env != NULL) {
84 if (strstr (env, "full_tags") || strstr (env, "full-tags"))
85@@ -2503,12 +2470,6 @@ gst_debug_construct_win_color (guint colorinfo)
86 return 0;
87 }
88
89-gboolean
90-_priv_gst_in_valgrind (void)
91-{
92- return FALSE;
93-}
94-
95 void
96 _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file,
97 const gchar * func, gint line, GObject * obj, const gchar * msg,
98diff --git a/meson.build b/meson.build
99index ce1921aa4..7a84d0981 100644
100--- a/meson.build
101+++ b/meson.build
102@@ -200,7 +200,6 @@ check_headers = [
103 'sys/wait.h',
104 'ucontext.h',
105 'unistd.h',
106- 'valgrind/valgrind.h',
107 'sys/resource.h',
108 'sys/uio.h',
109 ]
110--
1112.29.2
112
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch
deleted file mode 100644
index 1ed7198a..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 35db4a2433fbdf8612cf98b5aab5b14aeb5372f8 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Thu, 17 Oct 2019 12:13:35 +0100
4Subject: [PATCH] meson: build gir even when cross-compiling if introspection
5 was enabled explicitly
6
7This can be made to work in certain circumstances when
8cross-compiling, so default to not building g-i stuff
9when cross-compiling, but allow it if introspection was
10enabled explicitly via -Dintrospection=enabled.
11
12Fixes #454 and #381.
13
14Upstream-Status: Backport [35db4a2433fbdf8612cf98b5aab5b14aeb5372f8]
15
16Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
17---
18 meson.build | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/meson.build b/meson.build
22index 90d98d8eb..a47e7f34e 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -466,7 +466,7 @@ rt_lib = cc.find_library('rt', required : false)
26 gir = find_program('g-ir-scanner', required : get_option('introspection'))
27 gnome = import('gnome')
28
29-build_gir = gir.found() and not meson.is_cross_build()
30+build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
31
32 gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
33 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
34--
352.17.1
36
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch
deleted file mode 100644
index f553340f..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From f6c7973c03d9ba7dab60c496e768c5e6c4ee824c Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Sun, 20 Oct 2019 10:36:44 +0200
4Subject: [PATCH] meson: Add valgrind feature
5
6This allows for enabling/disabling Valgrind support. Since Valgrind is
7an external dependency, such a feature is needed by build environemnts
8such as Yocto to make sure builds are deterministic. These changes also
9add more Valgrind specific configure log output.
10
11Upstream-Status: Pending
12
13Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
14---
15 meson.build | 23 ++++++++++++++++++++++-
16 meson_options.txt | 1 +
17 2 files changed, 23 insertions(+), 1 deletion(-)
18
19diff --git a/meson.build b/meson.build
20index b55ecc5..4751761 100644
21--- a/meson.build
22+++ b/meson.build
23@@ -199,7 +199,6 @@ check_headers = [
24 'sys/wait.h',
25 'ucontext.h',
26 'unistd.h',
27- 'valgrind/valgrind.h',
28 'sys/resource.h',
29 ]
30
31@@ -214,6 +213,28 @@ foreach h : check_headers
32 endif
33 endforeach
34
35+valgrind_option = get_option('valgrind')
36+if valgrind_option.disabled()
37+ message('Valgrind support not requested; disabled.')
38+else
39+ valgrind_header = 'valgrind/valgrind.h'
40+ has_valgrind_header = cc.has_header(valgrind_header)
41+ if has_valgrind_header
42+ message('Valgrind support requested, and header ' + valgrind_header + \
43+ ' found. Enabled Valgrind support.')
44+ define = 'HAVE_' + valgrind_header.underscorify().to_upper()
45+ cdata.set(define, 1)
46+ else
47+ if valgrind_option.enabled()
48+ error('Valgrind support requested and set as required, but header ' + \
49+ valgrind_header + ' not found.')
50+ else
51+ message('Valgrind support requested, but header ' + valgrind_header + \
52+ ' not found. Disabling Valgrind support.')
53+ endif
54+ endif
55+endif
56+
57 if cc.has_member('struct tm', 'tm_gmtoff', prefix : '#include <time.h>')
58 cdata.set('HAVE_TM_GMTOFF', 1)
59 endif
60diff --git a/meson_options.txt b/meson_options.txt
61index e7ff7ba..8afde39 100644
62--- a/meson_options.txt
63+++ b/meson_options.txt
64@@ -19,6 +19,7 @@ option('memory-alignment', type: 'combo',
65
66 # Feature options
67 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
68+option('valgrind', type : 'feature', value : 'auto', description : 'Enable Valgrind support')
69 option('libunwind', type : 'feature', value : 'auto', description : 'Use libunwind to generate backtraces')
70 option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
71 option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
72--
732.17.1
74
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
new file mode 100644
index 00000000..e0e64e2c
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
@@ -0,0 +1,32 @@
1From 1db36347d05d88835519368442e9aa89c64091ad Mon Sep 17 00:00:00 2001
2From: Seungha Yang <seungha@centricular.com>
3Date: Tue, 15 Sep 2020 00:54:58 +0900
4Subject: [PATCH] tests: seek: Don't use too strict timeout for validation
5
6Expected segment-done message might not be seen within expected
7time if system is not powerful enough.
8
9Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625>
10
11Upstream-Status: Backport [https://cgit.freedesktop.org/gstreamer/gstreamer/commit?id=f44312ae5d831438fcf8041162079c65321c588c]
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13---
14 tests/check/pipelines/seek.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c
18index 28bb8846d..5f7447bc5 100644
19--- a/tests/check/pipelines/seek.c
20+++ b/tests/check/pipelines/seek.c
21@@ -521,7 +521,7 @@ GST_START_TEST (test_loopback_2)
22
23 GST_INFO ("wait for segment done message");
24
25- msg = gst_bus_timed_pop_filtered (bus, (GstClockTime) 2 * GST_SECOND,
26+ msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
27 GST_MESSAGE_SEGMENT_DONE | GST_MESSAGE_ERROR);
28 fail_unless (msg, "no message within the timed window");
29 fail_unless_equals_string (GST_MESSAGE_TYPE_NAME (msg), "segment-done");
30--
312.29.2
32
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
deleted file mode 100644
index 0e6c44ea..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
+++ /dev/null
@@ -1,257 +0,0 @@
1From b843400284751968862751dfe93853f151551c64 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Fri, 25 Oct 2019 00:06:26 +0200
4Subject: [PATCH] meson: Add option for installed tests
5
6This adds an option for producing installed versions of the unit tests.
7These versions don't need meson to run (only a small shell script). This
8makes it easier to run cross compiled tests on a target machine.
9
10Upstream-Status: Pending
11
12Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
13---
14 build-aux/gen-installed-test-desc.py | 18 ++++++
15 build-aux/gen-installed-test-shscript.py | 25 ++++++++
16 meson_options.txt | 2 +
17 tests/check/meson.build | 46 +++++++++++++-
18 tests/files/testfile | 80 ++++++++++++++++++++++++
19 5 files changed, 170 insertions(+), 1 deletion(-)
20 create mode 100644 build-aux/gen-installed-test-desc.py
21 create mode 100644 build-aux/gen-installed-test-shscript.py
22 create mode 100644 tests/files/testfile
23
24diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py
25new file mode 100644
26index 0000000..69e8a0f
27--- /dev/null
28+++ b/build-aux/gen-installed-test-desc.py
29@@ -0,0 +1,18 @@
30+import sys
31+import os
32+import argparse
33+
34+def write_template(filename, data):
35+ with open(filename, 'w') as f:
36+ f.write(data)
37+
38+def build_template(testdir, testname):
39+ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname))
40+
41+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
42+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
43+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
44+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
45+args = argparser.parse_args()
46+
47+write_template(args.output, build_template(args.test_execdir, args.testname))
48diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py
49new file mode 100644
50index 0000000..5da86fb
51--- /dev/null
52+++ b/build-aux/gen-installed-test-shscript.py
53@@ -0,0 +1,25 @@
54+import sys
55+import os
56+import argparse
57+
58+def write_template(filename, data):
59+ with open(filename, 'w') as f:
60+ f.write(data)
61+
62+def build_template(testdir, testname):
63+ return ''.join([
64+ "#!/usr/bin/env sh\n",
65+ "export GST_STATE_IGNORE_ELEMENTS=''\n",
66+ "export CK_DEFAULT_TIMEOUT=20\n",
67+ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n",
68+ "{}\n".format(os.path.join(testdir, testname)),
69+ ])
70+
71+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
72+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
73+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
74+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
75+args = argparser.parse_args()
76+
77+write_template(args.output, build_template(args.test_execdir, args.testname))
78+os.chmod(args.output, 0o755)
79diff --git a/meson_options.txt b/meson_options.txt
80index 8afde39..8884dcc 100644
81--- a/meson_options.txt
82+++ b/meson_options.txt
83@@ -16,6 +16,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
84 option('memory-alignment', type: 'combo',
85 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
86 value: 'malloc')
87+option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests')
88+option('test-files-path', type : 'string', description : 'Path where to find test files')
89
90 # Feature options
91 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
92diff --git a/tests/check/meson.build b/tests/check/meson.build
93index 04da83f..2db7f76 100644
94--- a/tests/check/meson.build
95+++ b/tests/check/meson.build
96@@ -118,11 +118,17 @@ if add_languages('cpp', required : false)
97 ]
98 endif
99
100+test_files_path = get_option('test-files-path')
101+if test_files_path == ''
102+ test_files_path = meson.current_source_dir() + '/../files'
103+endif
104+message('Using path "@0@" as the path to read test files from'.format(test_files_path))
105+
106 test_defines = [
107 '-UG_DISABLE_ASSERT',
108 '-UG_DISABLE_CAST_CHECKS',
109 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
110- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
111+ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'),
112 '-DGST_USE_UNSTABLE_API',
113 '-DGST_DISABLE_DEPRECATED',
114 ]
115@@ -137,6 +143,14 @@ endif
116 glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
117 gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
118
119+installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0')
120+installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0')
121+installed_tests_enabled = get_option('installed-tests')
122+
123+python = import('python').find_installation()
124+gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py')
125+gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py')
126+
127 foreach t : core_tests
128 fname = t[0]
129 test_name = fname.split('.')[0].underscorify()
130@@ -150,8 +164,38 @@ foreach t : core_tests
131 include_directories : [configinc],
132 link_with : link_with_libs,
133 dependencies : test_deps + glib_deps + gst_deps,
134+ install_dir: installed_tests_execdir,
135+ install: installed_tests_enabled
136 )
137
138+ if installed_tests_enabled
139+ installed_test_shscript = test_name + '.sh'
140+ shscript = custom_target (test_name + '_shscript',
141+ output: installed_test_shscript,
142+ command: [
143+ python,
144+ gen_installed_test_shscript,
145+ '--test-execdir=@0@'.format(installed_tests_execdir),
146+ '--testname=@0@'.format(test_name),
147+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)),
148+ ],
149+ install: true,
150+ install_dir: installed_tests_execdir)
151+
152+ installed_test_desc = test_name + '.test'
153+ data = custom_target(test_name + '_desc',
154+ output: installed_test_desc,
155+ command: [
156+ python,
157+ gen_installed_test_desc,
158+ '--test-execdir=@0@'.format(installed_tests_execdir),
159+ '--testname=@0@'.format(installed_test_shscript),
160+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)),
161+ ],
162+ install: true,
163+ install_dir: installed_tests_datadir)
164+ endif
165+
166 env = environment()
167 env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
168 env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
169diff --git a/tests/files/testfile b/tests/files/testfile
170new file mode 100644
171index 0000000..89954e0
172--- /dev/null
173+++ b/tests/files/testfile
174@@ -0,0 +1,80 @@
175+................................................................................
176+................................................................................
177+................................................................................
178+................................................................................
179+................................................................................
180+................................................................................
181+................................................................................
182+................................................................................
183+................................................................................
184+................................................................................
185+................................................................................
186+................................................................................
187+................................................................................
188+................................................................................
189+................................................................................
190+................................................................................
191+................................................................................
192+................................................................................
193+................................................................................
194+................................................................................
195+................................................................................
196+................................................................................
197+................................................................................
198+................................................................................
199+................................................................................
200+................................................................................
201+................................................................................
202+................................................................................
203+................................................................................
204+................................................................................
205+................................................................................
206+................................................................................
207+................................................................................
208+................................................................................
209+................................................................................
210+................................................................................
211+................................................................................
212+................................................................................
213+................................................................................
214+................................................................................
215+................................................................................
216+................................................................................
217+................................................................................
218+................................................................................
219+................................................................................
220+................................................................................
221+................................................................................
222+................................................................................
223+................................................................................
224+................................................................................
225+................................................................................
226+................................................................................
227+................................................................................
228+................................................................................
229+................................................................................
230+................................................................................
231+................................................................................
232+................................................................................
233+................................................................................
234+................................................................................
235+................................................................................
236+................................................................................
237+................................................................................
238+................................................................................
239+................................................................................
240+................................................................................
241+................................................................................
242+................................................................................
243+................................................................................
244+................................................................................
245+................................................................................
246+................................................................................
247+................................................................................
248+................................................................................
249+................................................................................
250+................................................................................
251+................................................................................
252+................................................................................
253+................................................................................
254+................................................................................
255--
2562.17.1
257
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
new file mode 100644
index 00000000..6f571a12
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
@@ -0,0 +1,36 @@
1From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH 1/4] tests: respect the idententaion used in meson
5
6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
7
8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
9---
10 tests/check/meson.build | 10 +++++-----
11 1 file changed, 5 insertions(+), 5 deletions(-)
12
13diff --git a/tests/check/meson.build b/tests/check/meson.build
14index a617cf159..b2636714b 100644
15--- a/tests/check/meson.build
16+++ b/tests/check/meson.build
17@@ -146,11 +146,11 @@ foreach t : core_tests
18
19 if not skip_test
20 exe = executable(test_name, fname,
21- c_args : gst_c_args + test_defines,
22- cpp_args : gst_c_args + test_defines,
23- include_directories : [configinc],
24- link_with : link_with_libs,
25- dependencies : test_deps + glib_deps + gst_deps,
26+ c_args : gst_c_args + test_defines,
27+ cpp_args : gst_c_args + test_defines,
28+ include_directories : [configinc],
29+ link_with : link_with_libs,
30+ dependencies : test_deps + glib_deps + gst_deps,
31 )
32
33 env = environment()
34--
352.31.1
36
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
new file mode 100644
index 00000000..b77fb579
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
@@ -0,0 +1,110 @@
1From c9e93c7a3e4d2773abef4f5e1464af24f36700b3 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH 2/4] tests: add support for install the tests
5
6This will provide to run the tests using the gnome-desktop-testing [1]
7
8[1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
9
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13---
14 meson.build | 5 +++++
15 meson_options.txt | 1 +
16 template.test.in | 3 +++
17 tests/check/meson.build | 22 +++++++++++++++++++++-
18 4 files changed, 30 insertions(+), 1 deletion(-)
19 create mode 100644 template.test.in
20
21diff --git a/meson.build b/meson.build
22index c4e8774f5..1abf4eb26 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -562,6 +562,11 @@ if bashcomp_dep.found()
26 endif
27 endif
28
29+installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name())
30+installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name())
31+installed_tests_enabled = get_option('installed-tests')
32+installed_tests_template = files('template.test.in')
33+
34 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
35
36 pkgconfig = import('pkgconfig')
37diff --git a/meson_options.txt b/meson_options.txt
38index c8cee3762..b5da40eaa 100644
39--- a/meson_options.txt
40+++ b/meson_options.txt
41@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
42 option('memory-alignment', type: 'combo',
43 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
44 value: 'malloc')
45+option('installed-tests', type : 'boolean', value : false, description : 'Enable installed tests')
46
47 # Feature options
48 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
49diff --git a/template.test.in b/template.test.in
50new file mode 100644
51index 000000000..f701627f8
52--- /dev/null
53+++ b/template.test.in
54@@ -0,0 +1,3 @@
55+[Test]
56+Type=session
57+Exec=@installed_tests_dir@/@program@
58diff --git a/tests/check/meson.build b/tests/check/meson.build
59index b2636714b..a697a7b06 100644
60--- a/tests/check/meson.build
61+++ b/tests/check/meson.build
62@@ -124,10 +124,16 @@ test_defines = [
63 '-UG_DISABLE_ASSERT',
64 '-UG_DISABLE_CAST_CHECKS',
65 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
66- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
67 '-DGST_DISABLE_DEPRECATED',
68 ]
69
70+testfile = meson.current_source_dir() + '/meson.build'
71+if installed_tests_enabled
72+ install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile')
73+ testfile = installed_tests_metadir + '/testfile'
74+endif
75+test_defines += '-DTESTFILE="@0@"'.format(testfile)
76+
77 # sanity checking
78 if get_option('check').disabled()
79 if get_option('tests').enabled()
80@@ -151,6 +157,8 @@ foreach t : core_tests
81 include_directories : [configinc],
82 link_with : link_with_libs,
83 dependencies : test_deps + glib_deps + gst_deps,
84+ install_dir: installed_tests_execdir,
85+ install: installed_tests_enabled,
86 )
87
88 env = environment()
89@@ -162,6 +170,18 @@ foreach t : core_tests
90 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
91 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
92
93+ if installed_tests_enabled
94+ test_conf = configuration_data()
95+ test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
96+ test_conf.set('program', test_name)
97+ configure_file(
98+ input: installed_tests_template,
99+ output: test_name + '.test',
100+ install_dir: installed_tests_metadir,
101+ configuration: test_conf
102+ )
103+ endif
104+
105 test(test_name, exe, env: env, timeout : 3 * 60)
106 endif
107 endforeach
108--
1092.31.1
110
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
new file mode 100644
index 00000000..46813cec
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
@@ -0,0 +1,48 @@
1From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sat, 24 Apr 2021 10:34:47 +0100
4Subject: [PATCH 3/4] tests: use a dictionaries for environment
5
6meson environment() can't be passed to configure_file and it is needed for installed_tests,
7use a dictionary as this is simplest solution to install the environment.
8
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
10
11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
12---
13 tests/check/meson.build | 19 +++++++++++--------
14 1 file changed, 11 insertions(+), 8 deletions(-)
15
16diff --git a/tests/check/meson.build b/tests/check/meson.build
17index a697a7b06..f64524904 100644
18--- a/tests/check/meson.build
19+++ b/tests/check/meson.build
20@@ -161,14 +161,17 @@ foreach t : core_tests
21 install: installed_tests_enabled,
22 )
23
24- env = environment()
25- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
26- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
27- env.set('GST_STATE_IGNORE_ELEMENTS', '')
28- env.set('CK_DEFAULT_TIMEOUT', '20')
29- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
30- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
31- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
32+ # environment() can't be passed to configure_file and it is needed for installed_tests
33+ # use a dictionary as this is simplest solution to install the environment
34+ env = {
35+ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
36+ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
37+ 'GST_STATE_IGNORE_ELEMENTS': '',
38+ 'CK_DEFAULT_TIMEOUT': '20',
39+ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
40+ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
41+ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
42+ }
43
44 if installed_tests_enabled
45 test_conf = configuration_data()
46--
472.31.1
48
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
new file mode 100644
index 00000000..eabe7bcb
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
@@ -0,0 +1,58 @@
1From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 2 May 2021 01:58:01 +0100
4Subject: [PATCH 4/4] tests: install the environment for installed_tests
5
6- adapt the test environment for installed_tests
7- install the test environment for installed_tests
8- run the tests using the installed environment
9
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13---
14 template.test.in | 2 +-
15 tests/check/meson.build | 18 ++++++++++++++++++
16 2 files changed, 19 insertions(+), 1 deletion(-)
17
18diff --git a/template.test.in b/template.test.in
19index f701627f8..9a3fbdd09 100644
20--- a/template.test.in
21+++ b/template.test.in
22@@ -1,3 +1,3 @@
23 [Test]
24 Type=session
25-Exec=@installed_tests_dir@/@program@
26+Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
27diff --git a/tests/check/meson.build b/tests/check/meson.build
28index f64524904..a67e0f8dd 100644
29--- a/tests/check/meson.build
30+++ b/tests/check/meson.build
31@@ -183,6 +183,24 @@ foreach t : core_tests
32 install_dir: installed_tests_metadir,
33 configuration: test_conf
34 )
35+
36+ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
37+ configure_file(
38+ output: test_name + '.env',
39+ install_dir: installed_tests_execdir,
40+ configuration : env,
41+ )
42+ # helper to convert a meson environment dictionay object exported with configure_file
43+ # this also remove not needed variables for the installed tests
44+ meson.add_postconf_script('sed', '-i',
45+ '-e', '/^#define/!d',
46+ '-e', 's/^#define //g',
47+ '-e', '/^GST_PLUGIN_PATH_1_0/d',
48+ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
49+ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
50+ '-e', 's/ /=/',
51+ join_paths(meson.current_build_dir(), test_name + '.env')
52+ )
53 endif
54
55 test(test_name, exe, env: env, timeout : 3 * 60)
56--
572.31.1
58
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch b/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
deleted file mode 100644
index 7ca3d5ad..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Currently gstreamer configuration depends on whether setcap is found on the host
2system. Turn this into a configure option to make builds deterinistic.
3
4RP 2020/2/19
5Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6Upstream-Status: Pending
7
8Index: gstreamer-1.16.1/libs/gst/helpers/meson.build
9===================================================================
10--- gstreamer-1.16.1.orig/libs/gst/helpers/meson.build
11+++ gstreamer-1.16.1/libs/gst/helpers/meson.build
12@@ -73,7 +73,12 @@ if have_ptp
13 endif
14 endif
15
16- setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
17+ setcap_feature = get_option('setcap')
18+ if setcap_feature.disabled()
19+ setcap = find_program('dontexist', required : false)
20+ else
21+ setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
22+ endif
23
24 # user/group to change to in gst-ptp-helper
25 ptp_helper_setuid_user = get_option('ptp-helper-setuid-user')
26Index: gstreamer-1.16.1/meson_options.txt
27===================================================================
28--- gstreamer-1.16.1.orig/meson_options.txt
29+++ gstreamer-1.16.1/meson_options.txt
30@@ -26,6 +26,7 @@ option('libunwind', type : 'feature', va
31 option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
32 option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
33 option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
34+option('setcap', type : 'feature', value : 'auto', description : 'Use setcap')
35
36 # Common feature options
37 option('examples', type : 'feature', value : 'auto', yield : true)
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
new file mode 100755
index 00000000..0cfa955f
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -0,0 +1,2 @@
1#!/usr/bin/env sh
2gnome-desktop-testing-runner gstreamer
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb
index 8bbc16c8..cbbcf9b4 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb
@@ -6,28 +6,29 @@ BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia" 6SECTION = "multimedia"
7LICENSE = "LGPLv2+" 7LICENSE = "LGPLv2+"
8 8
9DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" 9DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
10 10
11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc 11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
12 12
13LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" 14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
15 15
16S = "${WORKDIR}/git"
17
16# Use i.MX fork of GST for customizations 18# Use i.MX fork of GST for customizations
17GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https" 19GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https"
18SRCBRANCH = "MM_04.05.06_2008_L5.4.47" 20SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
19 21SRC_URI = "${GST1.0_SRC};branch=${SRCBRANCH} \
20SRC_URI = " \ 22 file://run-ptest \
21 ${GST1.0_SRC};branch=${SRCBRANCH} \ 23 file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
22 file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ 24 file://0002-Remove-unused-valgrind-detection.patch \
23 file://0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch \ 25 file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
24 file://0003-meson-Add-valgrind-feature.patch \ 26 file://0004-tests-respect-the-idententaion-used-in-meson.patch \
25 file://0004-meson-Add-option-for-installed-tests.patch \ 27 file://0005-tests-add-support-for-install-the-tests.patch \
26 file://capfix.patch \ 28 file://0006-tests-use-a-dictionaries-for-environment.patch \
27" 29 file://0007-tests-install-the-environment-for-installed_tests.patch \
28SRCREV = "8514bc61ccab208a65e387eab9347276a8e770e7" 30 "
29 31SRCREV = "2f20fd10eaf8629b3e8c134424c38412c4d3bd86"
30S = "${WORKDIR}/git"
31 32
32DEFAULT_PREFERENCE = "-1" 33DEFAULT_PREFERENCE = "-1"
33 34
@@ -38,14 +39,14 @@ PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
38 39
39PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" 40PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false"
40PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" 41PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false"
42PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled"
41PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" 43PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled"
42PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false" 44PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false"
43PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind,"
44PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" 45PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
45PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" 46PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils"
46PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" 47PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion"
47PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled" 48PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled"
48PACKAGECONFIG[setcap] = "-Dsetcap=enabled,-Dsetcap=disabled,libcap libcap-native" 49PACKAGECONFIG[setcap] = "-Dptp-helper-permissions=capabilities,,libcap libcap-native"
49 50
50# TODO: put this in a gettext.bbclass patch 51# TODO: put this in a gettext.bbclass patch
51def gettext_oemeson(d): 52def gettext_oemeson(d):
@@ -57,15 +58,12 @@ def gettext_oemeson(d):
57 return '-Dnls=enabled' 58 return '-Dnls=enabled'
58 59
59EXTRA_OEMESON += " \ 60EXTRA_OEMESON += " \
61 -Ddoc=disabled \
60 -Dexamples=disabled \ 62 -Dexamples=disabled \
61 -Ddbghelp=disabled \ 63 -Ddbghelp=disabled \
62 ${@gettext_oemeson(d)} \ 64 ${@gettext_oemeson(d)} \
63" 65"
64 66
65GTKDOC_MESON_OPTION = "gtk_doc"
66GTKDOC_MESON_ENABLE_FLAG = "enabled"
67GTKDOC_MESON_DISABLE_FLAG = "disabled"
68
69GIR_MESON_ENABLE_FLAG = "enabled" 67GIR_MESON_ENABLE_FLAG = "enabled"
70GIR_MESON_DISABLE_FLAG = "disabled" 68GIR_MESON_DISABLE_FLAG = "disabled"
71 69
@@ -75,10 +73,10 @@ PACKAGES += "${PN}-bash-completion"
75FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" 73FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
76FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" 74FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
77FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" 75FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
78FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb ${datadir}/glib-2.0/gdb" 76FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
79 77
80CVE_PRODUCT = "gstreamer" 78CVE_PRODUCT = "gstreamer"
81 79
82require recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc 80PTEST_BUILD_HOST_FILES = ""
83 81
84COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 82COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb
index c8bb6cd8..ea059cd8 100644
--- a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb
+++ b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb
@@ -1,5 +1,5 @@
1# Copyright (C) 2014,2016 Freescale Semiconductor 1# Copyright (C) 2014,2016 Freescale Semiconductor
2# Copyright 2017-2019 NXP 2# Copyright 2017-2021 NXP
3# Copyright (C) 2012-2015 O.S. Systems Software LTDA. 3# Copyright (C) 2012-2015 O.S. Systems Software LTDA.
4# Released under the MIT license (see COPYING.MIT for the terms) 4# Released under the MIT license (see COPYING.MIT for the terms)
5 5
@@ -20,16 +20,15 @@ RCONFLICTS_${PN} = "gst1.0-fsl-plugin"
20LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ 20LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
21 file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24" 21 file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
22 22
23SRCBRANCH = "MM_04.05.07_2011_L5.4.70" 23SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
24 24
25SRC_URI = " \ 25
26 git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH} \ 26SRC_URI = "git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH}"
27" 27SRCREV = "057e6bfbc208ce31e8ed0af0264dd1e86de05808"
28SRCREV = "659ec4947d6b1903d26e4ec9e40ae251a659935d"
29 28
30S = "${WORKDIR}/git" 29S = "${WORKDIR}/git"
31 30
32inherit autotools pkgconfig use-imx-headers 31inherit meson pkgconfig use-imx-headers
33 32
34PLATFORM_mx6 = "MX6" 33PLATFORM_mx6 = "MX6"
35PLATFORM_mx6sl = "MX6SL" 34PLATFORM_mx6sl = "MX6SL"
@@ -41,10 +40,9 @@ PLATFORM_mx7ulp= "MX7ULP"
41PLATFORM_mx8 = "MX8" 40PLATFORM_mx8 = "MX8"
42 41
43# Todo add a mechanism to map possible build targets 42# Todo add a mechanism to map possible build targets
44EXTRA_OECONF = "PLATFORM=${PLATFORM} \ 43EXTRA_OEMESON = "-Dplatform=${PLATFORM} \
45 CPPFLAGS="-I${STAGING_INCDIR_IMX}" \ 44 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \
46 CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR} \ 45"
47 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', bb.utils.contains('DISTRO_FEATURES', 'x11', '--disable-x11', '', d), '', d)}"
48 46
49PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN}-librecorder-engine ${PN}-libplayengine" 47PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN}-librecorder-engine ${PN}-libplayengine"
50 48
@@ -60,14 +58,13 @@ PACKAGECONFIG_imxgpu2d = "overlaysink"
60 58
61# FIXME: Add all features 59# FIXME: Add all features
62# feature from excluded mm packages 60# feature from excluded mm packages
63PACKAGECONFIG[ac3] += ",,imx-ac3codec,imx-ac3codec" 61PACKAGECONFIG[ac3] = ",,imx-ac3codec,imx-ac3codec"
64# feature from special mm packages 62# feature from special mm packages
65PACKAGECONFIG[aacp] += ",,imx-aacpcodec,imx-aacpcodec" 63PACKAGECONFIG[aacp] = ",,imx-aacpcodec,imx-aacpcodec"
66MSDEPENDS = "imx-msparser imx-mscodec" 64MSDEPENDS = "imx-msparser imx-mscodec"
67PACKAGECONFIG[wma10dec] += ",,${MSDEPENDS},${MSDEPENDS}" 65PACKAGECONFIG[wma10dec] = ",,${MSDEPENDS},${MSDEPENDS}"
68PACKAGECONFIG[wma8enc] += "--enable-wma8enc,--disable-wma8enc,${MSDEPENDS},${MSDEPENDS}" 66PACKAGECONFIG[wma8enc] = ",,${MSDEPENDS},${MSDEPENDS}"
69OVDEPENDS = "virtual/libg2d" 67PACKAGECONFIG[overlaysink] += ",,virtual/libg2d"
70PACKAGECONFIG[overlaysink] += "--enable-overlaysink,--disable-overlaysink, ${OVDEPENDS}"
71 68
72FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}" 69FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}"
73 70
diff --git a/recipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch b/recipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch
new file mode 100755
index 00000000..f578148a
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch
@@ -0,0 +1,1001 @@
1From 16f6b7a5baec41f18fde75fd311fb988e3c31810 Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <shengjiu.wang@nxp.com>
3Date: Fri, 13 Jul 2018 18:13:24 +0800
4Subject: [PATCH] tinycompress: Add id3 decoding
5
6Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
7---
8 include/tinycompress/id3_tag_decode.h | 198 +++++++++++
9 src/utils/Makefile.am | 2 +-
10 src/utils/cplay.c | 88 +++++
11 src/utils/id3_tag_decode.c | 642 ++++++++++++++++++++++++++++++++++
12 4 files changed, 929 insertions(+), 1 deletion(-)
13 create mode 100644 include/tinycompress/id3_tag_decode.h
14 create mode 100644 src/utils/id3_tag_decode.c
15
16diff --git a/include/tinycompress/id3_tag_decode.h b/include/tinycompress/id3_tag_decode.h
17new file mode 100644
18index 0000000..1a911d7
19--- /dev/null
20+++ b/include/tinycompress/id3_tag_decode.h
21@@ -0,0 +1,198 @@
22+/*
23+ * Copyright (c) 2006-2017 Cadence Design Systems, Inc.
24+ * Copyright 2018 NXP
25+ *
26+ * Permission is hereby granted, free of charge, to any person obtaining
27+ * a copy of this software and associated documentation files (the
28+ * "Software"), to deal in the Software without restriction, including
29+ * without limitation the rights to use, copy, modify, merge, publish,
30+ * distribute, sublicense, and/or sell copies of the Software, and to
31+ * permit persons to whom the Software is furnished to do so, subject to
32+ * the following conditions:
33+ *
34+ * The above copyright notice and this permission notice shall be included
35+ * in all copies or substantial portions of the Software.
36+ *
37+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
40+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
41+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
42+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
43+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44+ */
45+
46+/******************************************************************
47+ * file name : id3_tag_decode.h
48+ *
49+ * description : stores typedefs of structures specific to MP3 tag
50+ *
51+ * revision history:
52+ * 29 04 2004 DK creation
53+ *****************************************************************/
54+
55+#ifndef ID3_TAG_DECODE_H
56+#define ID3_TAG_DECODE_H
57+
58+typedef signed char WORD8;
59+typedef signed char * pWORD8;
60+typedef unsigned char UWORD8;
61+typedef unsigned char * pUWORD8;
62+
63+typedef signed short WORD16;
64+typedef signed short * pWORD16;
65+typedef unsigned short UWORD16;
66+typedef unsigned short * pUWORD16;
67+
68+typedef signed int WORD24;
69+typedef signed int * pWORD24;
70+typedef unsigned int UWORD24;
71+typedef unsigned int * pUWORD24;
72+
73+typedef signed int WORD32;
74+typedef signed int * pWORD32;
75+typedef unsigned int UWORD32;
76+typedef unsigned int * pUWORD32;
77+
78+typedef void VOID;
79+typedef void * pVOID;
80+
81+typedef signed int BOOL;
82+typedef unsigned int UBOOL;
83+typedef signed int FLAG;
84+typedef unsigned int UFLAG;
85+typedef signed int LOOPIDX;
86+typedef unsigned int ULOOPIDX;
87+typedef signed int WORD;
88+typedef unsigned int UWORD;
89+
90+#define MAX_TAG_FRAME_SIZE 100
91+
92+#define ID3V1 (0x544147) /* 0x544147 is TAG in WORD8 */
93+
94+#define ID3V2 (0x494433) /* 0x494433 is ID3 in WORD8 */
95+
96+/*
97+ * structure corresponding to ID3 tag v1 header.
98+ * this structure has all the field corresponding to ID3 tag v1 header.
99+ */
100+
101+typedef struct {
102+ WORD32 tag; // 3 bytes
103+
104+ WORD16 version; // 2 bytes
105+
106+ WORD8 flag; //1 byte
107+
108+ WORD32 size; //4 bytes
109+
110+} id3_v2_header_struct;
111+
112+/* structure which will store the frame data and
113+ * also put a limit max data to be stored
114+ */
115+typedef struct {
116+ WORD8 frame_data[MAX_TAG_FRAME_SIZE];
117+
118+ WORD32 max_size; //4 bytes
119+
120+ WORD16 tag_present;
121+
122+ WORD16 exceeds_buffer_size;
123+
124+} id3_v2_frame_struct;
125+
126+/*
127+ * structure corresponding to ID3 tag v2.
128+ * this structure has some of the field corresponding to ID3 tag v2.
129+ * if user wants to read some more tag information from
130+ * the MP3 file, he can add that field in this structure and pass address
131+ * of that element to get_inf function in id3_tag_decode.c under the
132+ * corresponding field frame header. few fields which are needed are already
133+ * populated by reading from the TAG header.
134+ */
135+typedef struct {
136+ id3_v2_frame_struct album_movie_show_title;
137+
138+ id3_v2_frame_struct composer_name;
139+
140+ id3_v2_frame_struct content_type;
141+
142+ id3_v2_frame_struct encoded_by;
143+
144+ id3_v2_frame_struct lyricist_text_writer;
145+
146+ id3_v2_frame_struct content_group_description;
147+
148+ id3_v2_frame_struct title_songname_content_description;
149+
150+ id3_v2_frame_struct medxa_type;
151+
152+ id3_v2_frame_struct original_album_movie_show_title;
153+
154+ id3_v2_frame_struct original_filename;
155+
156+ id3_v2_frame_struct original_lyricist_text_writer;
157+
158+ id3_v2_frame_struct original_artist_performer;
159+
160+ id3_v2_frame_struct file_owner_licensee;
161+
162+ id3_v2_frame_struct lead_performer_soloist;
163+
164+ id3_v2_frame_struct publisher;
165+
166+ id3_v2_frame_struct private_frame;
167+
168+ id3_v2_frame_struct other_info;
169+
170+ id3_v2_header_struct id3_v2_header;
171+
172+ WORD32 header_end;
173+
174+ WORD32 bytes_consumed;
175+
176+} id3v2_struct;
177+
178+/*
179+ * structure corresponding to ID3 tag v1.
180+ * this structure has all the field corresponding to ID3 tag v1.
181+ */
182+typedef struct {
183+ WORD8 song_title[30]; //30 word8acters
184+
185+ WORD8 artist[30]; //30 word8acters
186+
187+ WORD8 album[30]; //30 word8acters
188+
189+ WORD8 year[4]; //4 word8acters
190+
191+ WORD8 comment[30]; //30 word8acters
192+
193+ WORD8 genre[1]; //1 byte
194+
195+} id3v1_struct;
196+
197+WORD32 get_info(const char *inp_buffer,
198+ unsigned int avail_inp,
199+ WORD32 tag_size,
200+ id3_v2_frame_struct *dest);
201+
202+WORD32 search_id3_v2(UWORD8 *buffer);
203+
204+WORD32 decode_id3_v2(const char *const buffer,
205+ id3v2_struct *id3v2,
206+ WORD32 continue_flag,
207+ WORD32 insize);
208+
209+WORD32 get_id3_v2_bytes(UWORD8 *buffer);
210+
211+WORD32 get_v1_info(UWORD8 *buffer, id3v1_struct *id3v1);
212+
213+WORD32 search_id3_v1(UWORD8 *buffer);
214+
215+WORD32 decode_id3_v1(UWORD8 *buffer, id3v1_struct *id3v1);
216+
217+void init_id3v2_field(id3v2_struct *id3v2);
218+
219+#endif
220diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am
221index 1b996d4..e813689 100644
222--- a/src/utils/Makefile.am
223+++ b/src/utils/Makefile.am
224@@ -1,6 +1,6 @@
225 bin_PROGRAMS = cplay crecord
226
227-cplay_SOURCES = cplay.c
228+cplay_SOURCES = cplay.c id3_tag_decode.c
229 crecord_SOURCES = crecord.c
230
231 cplay_CFLAGS = -I$(top_srcdir)/include
232diff --git a/src/utils/cplay.c b/src/utils/cplay.c
233index 87863a3..2a52b52 100644
234--- a/src/utils/cplay.c
235+++ b/src/utils/cplay.c
236@@ -72,6 +72,7 @@
237 #include "sound/compress_params.h"
238 #include "tinycompress/tinycompress.h"
239 #include "tinycompress/tinymp3.h"
240+#include "tinycompress/id3_tag_decode.h"
241
242 static int verbose;
243 static const unsigned int DEFAULT_CODEC_ID = SND_AUDIOCODEC_PCM;
244@@ -245,12 +246,97 @@ int main(int argc, char **argv)
245 exit(EXIT_SUCCESS);
246 }
247
248+void shift_buffer(char *buf, int buf_size, int bytes_consumed)
249+{
250+ int i;
251+
252+ if (bytes_consumed <= 0)
253+ return;
254+
255+ for (i = 0; i < buf_size - bytes_consumed; i++)
256+ buf[i] = buf[i + bytes_consumed];
257+}
258+
259+void parse_id3(FILE *file, int *offset) {
260+ /* ID3 tag specific declarations */
261+ unsigned char id3_buf[128];
262+ unsigned char id3v2_buf[4096];
263+ signed int id3_v1_found = 0, id3_v1_decoded = 0;
264+ signed int id3_v2_found = 0, id3_v2_complete = 0;
265+ signed int i_bytes_consumed = 0;
266+ signed int i_fread_bytes;
267+ id3v1_struct id3v1;
268+ id3v2_struct id3v2;
269+
270+ {
271+ fseek(file, -128, SEEK_END);
272+ fread(id3_buf, 1, 128, file);
273+
274+ /* search for ID3V1 */
275+ id3_v1_found = search_id3_v1(id3_buf + 0);
276+ if (id3_v1_found) {
277+ /* if ID3V1 is found, decode ID3V1 */
278+ decode_id3_v1(id3_buf + 3, &id3v1);
279+ id3_v1_decoded = 1;
280+ }
281+ fseek(file, 0, SEEK_SET);
282+ }
283+
284+ {
285+ signed int flag = 0;
286+ signed int continue_flag = 0;
287+
288+ i_fread_bytes = fread(id3v2_buf,
289+ sizeof(char), 0x1000, file);
290+
291+ /* search for ID3V2 */
292+ id3_v2_found =
293+ search_id3_v2(id3v2_buf);
294+
295+ if (id3_v2_found) {
296+ /* initialise the max fields */
297+ init_id3v2_field(&id3v2);
298+
299+ while (!id3_v2_complete && id3_v2_found) {
300+ /* if ID3V2 is found, decode ID3V2 */
301+ id3_v2_complete = decode_id3_v2((const char *const)id3v2_buf,
302+ &id3v2, continue_flag, i_fread_bytes);
303+
304+ if (!id3_v2_complete) {
305+ continue_flag = 1;
306+ i_bytes_consumed = id3v2.bytes_consumed;
307+
308+ fseek(file, i_bytes_consumed, SEEK_SET);
309+
310+ i_fread_bytes = fread(id3v2_buf,
311+ sizeof(unsigned char), 0x1000, file);
312+ if (i_fread_bytes <= 0) {
313+ return;
314+ }
315+ }
316+ }
317+
318+ if (id3_v2_complete) {
319+ i_bytes_consumed = id3v2.bytes_consumed;
320+ fseek(file, i_bytes_consumed, SEEK_SET);
321+ }
322+ }
323+ }
324+
325+ *offset = i_bytes_consumed;
326+}
327+
328 void get_codec_mp3(FILE *file, struct compr_config *config,
329 struct snd_codec *codec)
330 {
331 size_t read;
332 struct mp3_header header;
333 unsigned int channels, rate, bits;
334+ int offset = 0;
335+
336+ parse_id3(file, &offset);
337+
338+ fseek(file, offset, SEEK_SET);
339
340 read = fread(&header, 1, sizeof(header), file);
341 if (read != sizeof(header)) {
342@@ -279,6 +365,8 @@ void get_codec_mp3(FILE *file, struct compr_config *config,
343 codec->level = 0;
344 codec->ch_mode = 0;
345 codec->format = 0;
346+
347+ fseek(file, offset, SEEK_SET);
348 }
349
350 void get_codec_iec(FILE *file, struct compr_config *config,
351diff --git a/src/utils/id3_tag_decode.c b/src/utils/id3_tag_decode.c
352new file mode 100644
353index 0000000..393967a
354--- /dev/null
355+++ b/src/utils/id3_tag_decode.c
356@@ -0,0 +1,642 @@
357+/*
358+ * Copyright (c) 2006-2017 Cadence Design Systems, Inc.
359+ * Copyright 2018 NXP
360+ *
361+ * Permission is hereby granted, free of charge, to any person obtaining
362+ * a copy of this software and associated documentation files (the
363+ * "Software"), to deal in the Software without restriction, including
364+ * without limitation the rights to use, copy, modify, merge, publish,
365+ * distribute, sublicense, and/or sell copies of the Software, and to
366+ * permit persons to whom the Software is furnished to do so, subject to
367+ * the following conditions:
368+ *
369+ * The above copyright notice and this permission notice shall be included
370+ * in all copies or substantial portions of the Software.
371+ *
372+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
373+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
374+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
375+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
376+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
377+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
378+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
379+ */
380+#include <ctype.h>
381+#include "tinycompress/id3_tag_decode.h"
382+
383+#define CHAR4(c1, c2, c3, c4) \
384+ (int)(((unsigned char)(c1) << 24) | \
385+ ((unsigned char)(c2) << 16) | \
386+ ((unsigned char)(c3) << 8) | \
387+ ((unsigned char)c4))
388+
389+#ifndef MSVC_BUILD
390+unsigned int umin(unsigned int a, unsigned int b)
391+{
392+ return (a < b ? a : b);
393+}
394+
395+#else
396+unsigned int umin(unsigned int a, unsigned int b)
397+{
398+ return (a < b ? a : b);
399+}
400+#endif
401+
402+/***********************************************************
403+ * function name : display
404+ *
405+ * description : display ID3 tag contents.
406+ *
407+ * arguments : input parameters
408+ *
409+ * values returned : 0
410+ ***********************************************************/
411+
412+static void display2(const id3_v2_frame_struct * const src,
413+ int size,
414+ const char * const disp)
415+{
416+ int j;
417+
418+
419+ for (j = 0; j < size; j++) {
420+ int c = src->frame_data[j];
421+
422+ if (c) {
423+ if (!isprint(c))
424+ break;
425+ }
426+ }
427+}
428+
429+static VOID display1(WORD8 src[], WORD32 size, WORD8 disp[])
430+{
431+ WORD32 j;
432+
433+ for (j = 0; j < size ; j++) {
434+ int c = src[j];
435+
436+ if (c) {
437+ if (!isprint(c))
438+ break;
439+ }
440+ }
441+}
442+
443+/*****************************************************************
444+ * function name : init_id3_header
445+ *
446+ * description : initialise the max filed size of teh farem.
447+ *
448+ * arguments : input parameters
449+ *
450+ * values returned : 0
451+ ****************************************************************/
452+
453+VOID init_id3v2_field(id3v2_struct *id3v2)
454+{
455+ id3v2->album_movie_show_title.max_size = MAX_TAG_FRAME_SIZE;
456+ id3v2->composer_name.max_size = MAX_TAG_FRAME_SIZE;
457+ id3v2->content_type.max_size = MAX_TAG_FRAME_SIZE;
458+ id3v2->encoded_by.max_size = MAX_TAG_FRAME_SIZE;
459+ id3v2->lyricist_text_writer.max_size = MAX_TAG_FRAME_SIZE;
460+ id3v2->content_group_description.max_size = MAX_TAG_FRAME_SIZE;
461+ id3v2->title_songname_content_description.max_size = MAX_TAG_FRAME_SIZE;
462+ id3v2->medxa_type.max_size = MAX_TAG_FRAME_SIZE;
463+ id3v2->original_album_movie_show_title.max_size = MAX_TAG_FRAME_SIZE;
464+ id3v2->original_filename.max_size = MAX_TAG_FRAME_SIZE;
465+ id3v2->original_lyricist_text_writer.max_size = MAX_TAG_FRAME_SIZE;
466+ id3v2->original_artist_performer.max_size = MAX_TAG_FRAME_SIZE;
467+ id3v2->file_owner_licensee.max_size = MAX_TAG_FRAME_SIZE;
468+ id3v2->lead_performer_soloist.max_size = MAX_TAG_FRAME_SIZE;
469+ id3v2->publisher.max_size = MAX_TAG_FRAME_SIZE;
470+ id3v2->private_frame.max_size = MAX_TAG_FRAME_SIZE;
471+ id3v2->other_info.max_size = MAX_TAG_FRAME_SIZE;
472+
473+ /* resetting the flag to indicate presese of frame */
474+ id3v2->album_movie_show_title.tag_present = 0;
475+ id3v2->composer_name.tag_present = 0;
476+ id3v2->content_type.tag_present = 0;
477+ id3v2->encoded_by.tag_present = 0;
478+ id3v2->lyricist_text_writer.tag_present = 0;
479+ id3v2->content_group_description.tag_present = 0;
480+ id3v2->title_songname_content_description.tag_present = 0;
481+ id3v2->medxa_type.tag_present = 0;
482+ id3v2->original_album_movie_show_title.tag_present = 0;
483+ id3v2->original_filename.tag_present = 0;
484+ id3v2->original_lyricist_text_writer.tag_present = 0;
485+ id3v2->original_artist_performer.tag_present = 0;
486+ id3v2->file_owner_licensee.tag_present = 0;
487+ id3v2->lead_performer_soloist.tag_present = 0;
488+ id3v2->publisher.tag_present = 0;
489+ id3v2->private_frame.tag_present = 0;
490+ id3v2->other_info.tag_present = 0;
491+
492+ /* resetting the flag which indicates that size of the frame has
493+ * exceeded the max buffer size
494+ */
495+ id3v2->album_movie_show_title.exceeds_buffer_size = 0;
496+ id3v2->composer_name.exceeds_buffer_size = 0;
497+ id3v2->content_type.exceeds_buffer_size = 0;
498+ id3v2->encoded_by.exceeds_buffer_size = 0;
499+ id3v2->lyricist_text_writer.exceeds_buffer_size = 0;
500+ id3v2->content_group_description.exceeds_buffer_size = 0;
501+ id3v2->title_songname_content_description.exceeds_buffer_size = 0;
502+ id3v2->medxa_type.exceeds_buffer_size = 0;
503+ id3v2->original_album_movie_show_title.exceeds_buffer_size = 0;
504+ id3v2->original_filename.exceeds_buffer_size = 0;
505+ id3v2->original_lyricist_text_writer.exceeds_buffer_size = 0;
506+ id3v2->original_artist_performer.exceeds_buffer_size = 0;
507+ id3v2->file_owner_licensee.exceeds_buffer_size = 0;
508+ id3v2->lead_performer_soloist.exceeds_buffer_size = 0;
509+ id3v2->publisher.exceeds_buffer_size = 0;
510+ id3v2->private_frame.exceeds_buffer_size = 0;
511+ id3v2->other_info.exceeds_buffer_size = 0;
512+
513+ id3v2->bytes_consumed = 0;
514+ id3v2->header_end = 0;
515+}
516+
517+/***************************************************************
518+ * function name : search_id3_v2
519+ *
520+ * description : finds if ID3V2 starts at the start of given buffer.
521+ *
522+ * arguments : input parameters
523+ * buffer input buffer
524+ *
525+ * values returned : FLAG 1: ID3 found 0: ID3 not found
526+ ***************************************************************/
527+WORD32 search_id3_v2(UWORD8 *buffer)
528+{
529+ UWORD32 temp;
530+
531+ temp = buffer[0] << 16;
532+ temp |= buffer[1] << 8;
533+ temp |= buffer[2];
534+
535+ if (temp == ID3V2)
536+ return 1; /* ID3 found */
537+
538+ return 0; /* ID3 not found */
539+}
540+
541+/**************************************************************
542+ * function name : search_id3_v1
543+ *
544+ * description : finds if ID3V1 starts at the start of given buffer.
545+ *
546+ * arguments : input parameters
547+ * buffer input buffer
548+ *
549+ * values returned : FLAG 1: ID3 found 0: ID3 not found
550+ **************************************************************/
551+WORD32 search_id3_v1(UWORD8 *buffer)
552+{
553+ UWORD32 temp;
554+
555+ temp = buffer[0] << 16;
556+ temp |= buffer[1] << 8;
557+ temp |= buffer[2];
558+
559+ if (temp == ID3V1)
560+ return 1; /* ID3 found */
561+
562+ return 0; /* ID3 not found */
563+}
564+
565+/***************************************************************
566+ * function name : decode_id3_v1
567+ *
568+ * description : decodes ID3V1 tag.
569+ *
570+ * arguments : input parameters
571+ * buffer input buffer
572+ * id3v1 structure
573+ *
574+ * values returned : bytes consumed
575+ **************************************************************/
576+WORD32 decode_id3_v1(UWORD8 *buffer, id3v1_struct *id3v1)
577+{
578+ WORD32 bytes_consumed = 0;
579+ short tag_type;
580+
581+ /* setting the tag type */
582+ tag_type = 1;
583+
584+ bytes_consumed = get_v1_info(buffer, id3v1);
585+
586+ return bytes_consumed;
587+}
588+
589+/***********************************************************
590+ * function name : get_v1_info
591+ *
592+ * description : gets ID3V1 information fields.
593+ *
594+ * arguments : input parameters
595+ * buffer input buffer
596+ * id3v1 structure
597+ *
598+ * values returned : bytes consumed
599+ ***********************************************************/
600+WORD32 get_v1_info(UWORD8 *buffer, id3v1_struct *id3v1)
601+{
602+ WORD32 i;
603+ WORD32 bytes_consumed = 0;
604+
605+ /* get song_title */
606+ for (i = 0; i < 30; i++)
607+ id3v1->song_title[i] = buffer[i];
608+
609+ buffer += 30;
610+ bytes_consumed += 30;
611+ display1(id3v1->song_title, 30, (WORD8 *)"song_title : ");
612+
613+ /* get artist */
614+ for (i = 0; i < 30; i++)
615+ id3v1->artist[i] = buffer[i];
616+
617+ buffer += 30;
618+ bytes_consumed += 30;
619+ display1(id3v1->artist, 30, (WORD8 *)"artist : ");
620+
621+ /* get album */
622+ for (i = 0; i < 30; i++)
623+ id3v1->album[i] = buffer[i];
624+
625+ buffer += 30;
626+ bytes_consumed += 30;
627+ display1(id3v1->album, 30, (WORD8 *)"album : ");
628+
629+ /* get year */
630+ for (i = 0; i < 4; i++)
631+ id3v1->year[i] = buffer[i];
632+
633+ buffer += 4;
634+ bytes_consumed += 4;
635+ display1(id3v1->year, 4, (WORD8 *)"year : ");
636+
637+ /* get comment */
638+ for (i = 0; i < 30; i++)
639+ id3v1->comment[i] = buffer[i];
640+
641+ buffer += 30;
642+ bytes_consumed += 30;
643+ display1(id3v1->comment, 30, (WORD8 *)"comment : ");
644+
645+ /* get genre */
646+ for (i = 0; i < 1; i++)
647+ id3v1->genre[i] = buffer[i];
648+
649+ buffer += 1;
650+ bytes_consumed += 1;
651+
652+ return bytes_consumed;
653+}
654+
655+/*****************************************************
656+ * function name : decode_id3_v2
657+ *
658+ * description : decodes ID3V2 tag.
659+ *
660+ * arguments : input parameters
661+ * buffer input buffer
662+ * id3v2 structure
663+ * continue_flag FLAG to indicate whether
664+ * it is first call or not
665+ * insize input buffer size
666+ *
667+ * values returned : bytes consumed
668+ ******************************************************/
669+WORD32 decode_id3_v2(const char *const buffer,
670+ id3v2_struct *const id3v2,
671+ WORD32 continue_flag,
672+ WORD32 insize)
673+{
674+ UWORD32 size = 0, flag;
675+ WORD32 i, buf_update_val;
676+ UWORD8 buf[4], frame_header[10], id3_buffer[10];
677+ WORD8 *bitstream_ptr;
678+ short tag_type;
679+
680+ WORD32 bytes_consumed = 0;
681+
682+ if (id3v2->header_end == 1) {
683+ id3v2->bytes_consumed += insize;
684+ if (id3v2->bytes_consumed < id3v2->id3_v2_header.size)
685+ return 0;
686+
687+ id3v2->bytes_consumed = (id3v2->id3_v2_header.size + 10);
688+ return 1;
689+ }
690+
691+ bitstream_ptr = (WORD8 *)id3_buffer;
692+
693+ if (!continue_flag) {
694+ bytes_consumed += 3;
695+ /* setting the tag type */
696+ tag_type = 2;
697+ id3v2->id3_v2_header.version = buffer[bytes_consumed + 0] << 8;
698+ id3v2->id3_v2_header.version |= buffer[bytes_consumed + 1];
699+ id3v2->id3_v2_header.flag = buffer[bytes_consumed + 2];
700+
701+ /* making the msb of each byte zero */
702+ buf[0] = buffer[bytes_consumed + 6] & 0x7f;
703+ buf[1] = buffer[bytes_consumed + 5] & 0x7f;
704+ buf[2] = buffer[bytes_consumed + 4] & 0x7f;
705+ buf[3] = buffer[bytes_consumed + 3] & 0x7f;
706+
707+ bytes_consumed += 7;
708+
709+ /* concatenation the bytes after making
710+ * 7th bit zero to get 28 bits size
711+ */
712+ size = buf[0];
713+ size |= (buf[1] << 7);
714+ size |= (buf[2] << 14);
715+ size |= (buf[3] << 21);
716+ /* storing the size */
717+ id3v2->id3_v2_header.size = size;
718+
719+ /* check for extended header */
720+ if (id3v2->id3_v2_header.flag & 0x20) {
721+ for (i = 0; i < 10; i++)
722+ bitstream_ptr[i] = buffer[bytes_consumed + i];
723+
724+ i = 0;
725+ bytes_consumed += 10;
726+
727+ size = bitstream_ptr[i++] << 24;
728+ size |= bitstream_ptr[i++] << 16;
729+ size |= bitstream_ptr[i++] << 8;
730+ size |= bitstream_ptr[i++];
731+
732+ /* two bytes for flag */
733+ i += 2;
734+ {
735+ UWORD32 padding_size;
736+
737+ padding_size = bitstream_ptr[i++] << 24;
738+ padding_size |= bitstream_ptr[i++] << 16;
739+ padding_size |= bitstream_ptr[i++] << 8;
740+ padding_size |= bitstream_ptr[i++];
741+
742+ /* skipping the padding and frame size
743+ * number of bytes
744+ */
745+ bytes_consumed += (padding_size + size);
746+ }
747+ }
748+ }
749+
750+ while (id3v2->header_end != 1) {
751+ char *key;
752+ id3_v2_frame_struct *value;
753+ unsigned int avail_inp;
754+
755+ /* reading the 10 bytes to get the frame header */
756+
757+ for (i = 0; i < 10; i++)
758+ frame_header[i] = buffer[bytes_consumed + i];
759+ bytes_consumed += 10;
760+
761+ /* getting the size from the header */
762+ size = frame_header[4] << 24;
763+ size |= frame_header[5] << 16;
764+ size |= frame_header[6] << 8;
765+ size |= frame_header[7];
766+
767+ /* decoding the flag, currently not used */
768+ flag = frame_header[8] << 8;
769+ flag |= frame_header[9];
770+
771+ avail_inp = insize - bytes_consumed;
772+
773+ /* switching to the frame type */
774+ switch (CHAR4(frame_header[0],
775+ frame_header[1],
776+ frame_header[2],
777+ frame_header[3])) {
778+ case CHAR4('A', 'E', 'N', 'C'):
779+ case CHAR4('A', 'P', 'I', 'C'):
780+ case CHAR4('C', 'O', 'M', 'M'):
781+ case CHAR4('C', 'O', 'M', 'R'):
782+ case CHAR4('E', 'N', 'C', 'R'):
783+ case CHAR4('E', 'Q', 'U', 'A'):
784+ case CHAR4('E', 'T', 'C', 'O'):
785+ case CHAR4('G', 'E', 'O', 'B'):
786+ case CHAR4('G', 'R', 'I', 'D'):
787+ case CHAR4('I', 'P', 'L', 'S'):
788+ case CHAR4('L', 'I', 'N', 'K'):
789+ case CHAR4('M', 'C', 'D', 'I'):
790+ case CHAR4('M', 'L', 'L', 'T'):
791+ case CHAR4('O', 'W', 'N', 'E'):
792+ case CHAR4('P', 'C', 'N', 'T'):
793+ case CHAR4('P', 'O', 'P', 'M'):
794+ case CHAR4('P', 'O', 'S', 'S'):
795+ case CHAR4('R', 'B', 'U', 'F'):
796+ case CHAR4('R', 'V', 'A', 'D'):
797+ case CHAR4('R', 'V', 'R', 'B'):
798+ case CHAR4('S', 'Y', 'L', 'T'):
799+ case CHAR4('S', 'Y', 'T', 'C'):
800+ case CHAR4('T', 'B', 'P', 'M'):
801+ case CHAR4('T', 'C', 'O', 'P'):
802+ case CHAR4('T', 'D', 'A', 'T'):
803+ case CHAR4('T', 'D', 'L', 'Y'):
804+ case CHAR4('T', 'F', 'L', 'T'):
805+ case CHAR4('T', 'I', 'M', 'E'):
806+ case CHAR4('T', 'K', 'E', 'Y'):
807+ case CHAR4('T', 'L', 'A', 'N'):
808+ case CHAR4('T', 'L', 'E', 'N'):
809+ case CHAR4('T', 'M', 'E', 'D'):
810+ case CHAR4('T', 'O', 'F', 'N'):
811+ case CHAR4('T', 'O', 'L', 'Y'):
812+ case CHAR4('T', 'O', 'R', 'Y'):
813+ case CHAR4('T', 'P', 'E', '2'):
814+ case CHAR4('T', 'P', 'E', '3'):
815+ case CHAR4('T', 'P', 'E', '4'):
816+ case CHAR4('T', 'P', 'O', 'S'):
817+ case CHAR4('T', 'R', 'C', 'K'):
818+ case CHAR4('T', 'R', 'D', 'A'):
819+ case CHAR4('T', 'R', 'S', 'N'):
820+ case CHAR4('T', 'R', 'S', 'O'):
821+ case CHAR4('T', 'S', 'I', 'Z'):
822+ case CHAR4('T', 'S', 'R', 'C'):
823+ case CHAR4('T', 'S', 'S', 'E'):
824+ case CHAR4('T', 'Y', 'E', 'R'):
825+ case CHAR4('T', 'X', 'X', 'X'):
826+ case CHAR4('U', 'F', 'I', 'D'):
827+ case CHAR4('U', 'S', 'E', 'R'):
828+ case CHAR4('U', 'S', 'L', 'T'):
829+ case CHAR4('W', 'C', 'O', 'M'):
830+ case CHAR4('W', 'C', 'O', 'P'):
831+ case CHAR4('W', 'O', 'A', 'F'):
832+ case CHAR4('W', 'O', 'A', 'R'):
833+ case CHAR4('W', 'O', 'A', 'S'):
834+ case CHAR4('W', 'O', 'R', 'S'):
835+ case CHAR4('W', 'P', 'A', 'Y'):
836+ case CHAR4('W', 'P', 'U', 'B'):
837+ case CHAR4('W', 'X', 'X', 'X'):
838+ case CHAR4('T', 'I', 'T', '3'):
839+ key = "other_info : ";
840+ value = &id3v2->other_info;
841+ break;
842+ case CHAR4('P', 'R', 'I', 'V'):
843+ key = "private_frame : ";
844+ value = &id3v2->private_frame;
845+ break;
846+ case CHAR4('T', 'A', 'L', 'B'):
847+ key = "album_movie_show_title : ";
848+ value = &id3v2->album_movie_show_title;
849+ break;
850+ case CHAR4('T', 'C', 'O', 'M'):
851+ key = "composer_name : ";
852+ value = &id3v2->composer_name;
853+ break;
854+ case CHAR4('T', 'C', 'O', 'N'):
855+ key = "content_type : ";
856+ value = &id3v2->content_type;
857+ break;
858+ case CHAR4('T', 'E', 'N', 'C'):
859+ key = "encoded_by : ";
860+ value = &id3v2->encoded_by;
861+ break;
862+ case CHAR4('T', 'E', 'X', 'T'):
863+ key = "lyricist_text_writer : ";
864+ value = &id3v2->lyricist_text_writer;
865+ break;
866+ case CHAR4('T', 'I', 'T', '1'):
867+ key = "content_group_description : ";
868+ value = &id3v2->content_group_description;
869+ break;
870+ case CHAR4('T', 'I', 'T', '2'):
871+ key = "title_songname_content_description : ";
872+ value = &id3v2->title_songname_content_description;
873+ break;
874+ case CHAR4('T', 'O', 'A', 'L'):
875+ key = "original_album_movie_show_title : ";
876+ value = &id3v2->original_album_movie_show_title;
877+ break;
878+ case CHAR4('T', 'O', 'P', 'E'):
879+ key = "original_artist_performer : ";
880+ value = &id3v2->original_artist_performer;
881+ break;
882+ case CHAR4('T', 'O', 'W', 'N'):
883+ key = "file_owner_licensee : ";
884+ value = &id3v2->file_owner_licensee;
885+ break;
886+ case CHAR4('T', 'P', 'E', '1'):
887+ key = "lead_performer_soloist : ";
888+ value = &id3v2->lead_performer_soloist;
889+ break;
890+ case CHAR4('T', 'P', 'U', 'B'):
891+ key = "publisher : ";
892+ value = &id3v2->publisher;
893+ break;
894+ default:
895+ /* skipping the read 10 bytes */
896+ buf_update_val = -10;
897+ id3v2->header_end = 1;
898+ value = 0;
899+ key = 0;
900+ break;
901+ }
902+
903+ if (value != 0)
904+ buf_update_val = get_info(&buffer[bytes_consumed],
905+ avail_inp, size, value);
906+
907+ /* Negative value for buf_update_val means one of two things:
908+ * 1. The default case happened and we're done with ID3V2 tag
909+ * frames, or
910+ * 2. get_info() returned -1 to indicate that more input is
911+ * required to decode this frame of the tag.
912+ */
913+ if (buf_update_val >= 0)
914+ display2(value,
915+ umin(value->max_size, buf_update_val), key);
916+
917+ if (buf_update_val == -1) {
918+ id3v2->bytes_consumed += bytes_consumed;
919+ return 1;
920+ }
921+
922+ bytes_consumed += buf_update_val;
923+
924+ /* Is there enough input left (10 bytes) to begin
925+ * decoding another frame? If not, bag out temporarily
926+ * now. The caller will refill our input buffer and
927+ * call us again with continue_flag == 1.
928+ */
929+ if (insize - bytes_consumed < 10) {
930+ id3v2->bytes_consumed += bytes_consumed;
931+ return 0; /* not completely decoded */
932+ }
933+ }
934+
935+ id3v2->bytes_consumed += bytes_consumed;
936+ if ((id3v2->bytes_consumed + 10) < id3v2->id3_v2_header.size)
937+ return 0; /* not completely decoded */
938+
939+ return 1; /* completely decoded */
940+}
941+
942+/*******************************************************
943+ * function name : get_id3_v2_bytes
944+ *
945+ * description : tells the size of ID3V2 tag.
946+ *
947+ * arguments : input parameters
948+ * buffer input buffer
949+ *
950+ * values returned : bytes consumed
951+ ********************************************************/
952+WORD32 get_id3_v2_bytes(UWORD8 *buffer)
953+{
954+ WORD32 size;
955+
956+ /* making the msb of each byte zero */
957+ size = (buffer[9] & 0x7f);
958+ size |= ((buffer[8] & 0x7f) << 7);
959+ size |= ((buffer[7] & 0x7f) << 14);
960+ size |= ((buffer[6] & 0x7f) << 21);
961+
962+ return (size + 10);
963+}
964+
965+/****************************************************
966+ * function name : get_info
967+ *
968+ * description : read the frame information from the input buffer.
969+ *
970+ * arguments : input parameters
971+ *
972+ * values returned : update value for buffer
973+ ****************************************************/
974+WORD32 get_info(const char *inp_buffer,
975+ unsigned int avail_inp,
976+ WORD32 tag_size,
977+ id3_v2_frame_struct *dest)
978+{
979+ WORD32 j;
980+
981+ /* setting the tag to indicate the presence of frame */
982+ dest->tag_present = 1;
983+ /* If there isn't enough input available, we punt back to the top
984+ * level and ask for more.
985+ */
986+ if (avail_inp < umin(tag_size, dest->max_size))
987+ return -1;
988+
989+ if (dest->max_size >= tag_size) {
990+ for (j = 0; j < tag_size ; j++)
991+ dest->frame_data[j] = inp_buffer[j];
992+ } else {
993+ dest->exceeds_buffer_size = 1;
994+ for (j = 0; j < dest->max_size ; j++)
995+ dest->frame_data[j] = inp_buffer[j];
996+ }
997+ return tag_size;
998+}
999--
10002.7.4
1001
diff --git a/recipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch b/recipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch
new file mode 100755
index 00000000..9189bc0e
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch
@@ -0,0 +1,221 @@
1From 4d4bc0a958fe254531920095fbabc241aad88113 Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <shengjiu.wang@nxp.com>
3Date: Tue, 28 Jul 2020 13:00:36 +0800
4Subject: [PATCH] cplay: Support wave file
5
6The supported format is mono/stereo, S16_LE/S32_LE, 8kHz-192kHz.
7Command is:
8cplay -c x -I PCM test.wav
9
10Upstream-Status: Inappropriate [i.MX specific]
11Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
12---
13 include/tinycompress/wave_formats.h | 51 +++++++++++++
14 src/utils/cplay.c | 107 ++++++++++++++++++++++++++++
15 2 files changed, 158 insertions(+)
16 create mode 100644 include/tinycompress/wave_formats.h
17
18diff --git a/include/tinycompress/wave_formats.h b/include/tinycompress/wave_formats.h
19new file mode 100644
20index 000000000000..4e2e009206cf
21--- /dev/null
22+++ b/include/tinycompress/wave_formats.h
23@@ -0,0 +1,51 @@
24+#ifndef WAVE_FORMATS_H
25+#define WAVE_FORMATS_H 1
26+
27+#define COMPOSE_ID(a,b,c,d) ((a) | ((b)<<8) | ((c)<<16) | ((d)<<24))
28+
29+#define WAV_RIFF COMPOSE_ID('R','I','F','F')
30+#define WAV_RIFX COMPOSE_ID('R','I','F','X')
31+#define WAV_WAVE COMPOSE_ID('W','A','V','E')
32+#define WAV_FMT COMPOSE_ID('f','m','t',' ')
33+#define WAV_DATA COMPOSE_ID('d','a','t','a')
34+
35+/* WAVE fmt block constants from Microsoft mmreg.h header */
36+#define WAV_FMT_PCM 0x0001
37+#define WAV_FMT_IEEE_FLOAT 0x0003
38+#define WAV_FMT_DOLBY_AC3_SPDIF 0x0092
39+#define WAV_FMT_EXTENSIBLE 0xfffe
40+
41+/* Used with WAV_FMT_EXTENSIBLE format */
42+#define WAV_GUID_TAG "\x00\x00\x00\x00\x10\x00\x80\x00\x00\xAA\x00\x38\x9B\x71"
43+
44+typedef struct {
45+ u_int magic; /* 'RIFF' */
46+ u_int length; /* filelen */
47+ u_int type; /* 'WAVE' */
48+} WaveHeader;
49+
50+typedef struct {
51+ u_short format; /* see WAV_FMT_* */
52+ u_short channels;
53+ u_int sample_fq; /* frequence of sample */
54+ u_int byte_p_sec;
55+ u_short byte_p_spl; /* samplesize; 1 or 2 bytes */
56+ u_short bit_p_spl; /* 8, 12 or 16 bit */
57+} WaveFmtBody;
58+
59+typedef struct {
60+ WaveFmtBody format;
61+ u_short ext_size;
62+ u_short bit_p_spl;
63+ u_int channel_mask;
64+ u_short guid_format; /* WAV_FMT_* */
65+ u_char guid_tag[14]; /* WAV_GUID_TAG */
66+} WaveFmtExtensibleBody;
67+
68+typedef struct {
69+ u_int type; /* 'data' */
70+ u_int length; /* samplecount */
71+} WaveChunkHeader;
72+
73+
74+#endif /* FORMATS */
75diff --git a/src/utils/cplay.c b/src/utils/cplay.c
76index 5b749419e731..8882f4d9746d 100644
77--- a/src/utils/cplay.c
78+++ b/src/utils/cplay.c
79@@ -1,4 +1,6 @@
80 /*
81+ * Copyright 2020 NXP
82+ *
83 * This file is provided under a dual BSD/LGPLv2.1 license. When using or
84 * redistributing this file, you may do so under either license.
85 *
86@@ -73,6 +75,8 @@
87 #include "tinycompress/tinycompress.h"
88 #include "tinycompress/tinymp3.h"
89 #include "tinycompress/id3_tag_decode.h"
90+#include "tinycompress/wave_formats.h"
91+#include <alsa/asoundlib.h>
92
93 static int verbose;
94 static const unsigned int DEFAULT_CODEC_ID = SND_AUDIOCODEC_PCM;
95@@ -166,6 +170,77 @@ static int parse_mp3_header(struct mp3_header *header, unsigned int *num_channel
96 return 0;
97 }
98
99+static int parse_wav_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate,
100+ unsigned int *format) {
101+ WaveHeader wave_header;
102+ WaveChunkHeader chunk_header;
103+ WaveFmtBody fmt_body;
104+ int more_chunks = 1;
105+
106+ fread(&wave_header, sizeof(WaveHeader), 1, file);
107+ if ((wave_header.magic != WAV_RIFF) ||
108+ (wave_header.type != WAV_WAVE)) {
109+ fprintf(stderr, "Error: it is not a riff/wave file\n");
110+ return -1;
111+ }
112+
113+ do {
114+ fread(&chunk_header, sizeof(WaveChunkHeader), 1, file);
115+ switch (chunk_header.type) {
116+ case WAV_FMT:
117+ fread(&fmt_body, sizeof(WaveFmtBody), 1, file);
118+ /* If the format header is larger, skip the rest */
119+ if (chunk_header.length > sizeof(WaveFmtBody))
120+ fseek(file, chunk_header.length - sizeof(WaveFmtBody), SEEK_CUR);
121+
122+ *num_channels = fmt_body.channels;
123+ *sample_rate = fmt_body.sample_fq;
124+
125+ switch (fmt_body.bit_p_spl) {
126+ case 8:
127+ *format = SND_PCM_FORMAT_U8;
128+ break;
129+ case 16:
130+ *format = SND_PCM_FORMAT_S16_LE;
131+ break;
132+ case 24:
133+ switch (fmt_body.byte_p_spl / fmt_body.channels) {
134+ case 3:
135+ *format = SND_PCM_FORMAT_S24_3LE;
136+ break;
137+ case 4:
138+ *format = SND_PCM_FORMAT_S24_LE;
139+ break;
140+ default:
141+ fprintf(stderr, "format error\n");
142+ return -1;
143+ }
144+ break;
145+ case 32:
146+ if (fmt_body.format == WAV_FMT_PCM) {
147+ *format = SND_PCM_FORMAT_S32_LE;
148+ } else if (fmt_body.format == WAV_FMT_IEEE_FLOAT) {
149+ *format = SND_PCM_FORMAT_FLOAT_LE;
150+ }
151+ break;
152+ default:
153+ fprintf(stderr, "format error\n");
154+ return -1;
155+ }
156+ break;
157+ case WAV_DATA:
158+ /* Stop looking for chunks */
159+ more_chunks = 0;
160+ break;
161+ default:
162+ /* Unknown chunk, skip bytes */
163+ fseek(file, chunk_header.length, SEEK_CUR);
164+ }
165+ } while (more_chunks);
166+
167+ return 0;
168+}
169+
170 static int print_time(struct compress *compress)
171 {
172 unsigned int avail;
173@@ -385,6 +460,35 @@ void get_codec_iec(FILE *file, struct compr_config *config,
174 codec->format = 0;
175 }
176
177+void get_codec_pcm(FILE *file, struct compr_config *config,
178+ struct snd_codec *codec)
179+{
180+ unsigned int channels, rate, format;
181+
182+ if (parse_wav_header(file, &channels, &rate, &format) == -1) {
183+ fclose(file);
184+ exit(EXIT_FAILURE);
185+ }
186+
187+ if (channels > 2 || (format != SND_PCM_FORMAT_S16_LE && format != SND_PCM_FORMAT_S32_LE) ||
188+ rate > 192000) {
189+ fprintf(stderr, "unsupported wave file\n");
190+ fclose(file);
191+ exit(EXIT_FAILURE);
192+ }
193+
194+ codec->id = SND_AUDIOCODEC_PCM;
195+ codec->ch_in = channels;
196+ codec->ch_out = channels;
197+ codec->sample_rate = rate;
198+ codec->bit_rate = 0;
199+ codec->rate_control = 0;
200+ codec->profile = SND_AUDIOPROFILE_PCM;
201+ codec->level = 0;
202+ codec->ch_mode = 0;
203+ codec->format = format;
204+}
205+
206 void play_samples(char *name, unsigned int card, unsigned int device,
207 unsigned long buffer_size, unsigned int frag,
208 unsigned long codec_id)
209@@ -411,6 +515,9 @@ void play_samples(char *name, unsigned int card, unsigned int device,
210 case SND_AUDIOCODEC_IEC61937:
211 get_codec_iec(file, &config, &codec);
212 break;
213+ case SND_AUDIOCODEC_PCM:
214+ get_codec_pcm(file, &config, &codec);
215+ break;
216 default:
217 fprintf(stderr, "codec ID %ld is not supported\n", codec_id);
218 exit(EXIT_FAILURE);
219--
2202.27.0
221
diff --git a/recipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch b/recipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch
new file mode 100755
index 00000000..7d8492b7
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch
@@ -0,0 +1,146 @@
1From 6f778c21ee357a662cdd758cff578a3e4b85eedf Mon Sep 17 00:00:00 2001
2From: Zhang Peng <peng.zhang_8@nxp.com>
3Date: Tue, 4 Aug 2020 15:29:29 +0800
4Subject: [PATCH] cplay: Add pause feature
5
6Add option: -p pause
7
8Upstream-Status: Inappropriate [i.MX specific]
9Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
10---
11 src/utils/cplay.c | 56 +++++++++++++++++++++++++++++++++++++++++++----
12 1 file changed, 52 insertions(+), 4 deletions(-)
13
14diff --git a/src/utils/cplay.c b/src/utils/cplay.c
15index 8882f4d..8e3dcbb 100644
16--- a/src/utils/cplay.c
17+++ b/src/utils/cplay.c
18@@ -117,6 +117,9 @@ static void usage(void)
19 "-f\tfragments\n\n"
20 "-v\tverbose mode\n"
21 "-h\tPrints this help list\n\n"
22+ "-p\tpause\n"
23+ "-m\tpause blocks\n"
24+ "-n\tpause time duration\n"
25 "Example:\n"
26 "\tcplay -c 1 -d 2 test.mp3\n"
27 "\tcplay -f 5 test.mp3\n\n"
28@@ -133,7 +136,8 @@ static void usage(void)
29
30 void play_samples(char *name, unsigned int card, unsigned int device,
31 unsigned long buffer_size, unsigned int frag,
32- unsigned long codec_id);
33+ unsigned long codec_id, int pause_count, int pause_block,
34+ int pause_duration);
35
36 struct mp3_header {
37 uint16_t sync;
38@@ -262,12 +266,15 @@ int main(int argc, char **argv)
39 int c, i;
40 unsigned int card = 0, device = 0, frag = 0;
41 unsigned int codec_id = SND_AUDIOCODEC_MP3;
42+ int pause_count = 0;
43+ int pause_block = 6;
44+ int pause_duration = 10;
45
46 if (argc < 2)
47 usage();
48
49 verbose = 0;
50- while ((c = getopt(argc, argv, "hvb:f:c:d:I:")) != -1) {
51+ while ((c = getopt(argc, argv, "hvb:f:c:d:I:p:m:n:")) != -1) {
52 switch (c) {
53 case 'h':
54 usage();
55@@ -306,6 +313,23 @@ int main(int argc, char **argv)
56 case 'v':
57 verbose = 1;
58 break;
59+ case 'p':
60+ pause_count = strtol(optarg, NULL, 10);
61+ break;
62+ case 'm':
63+ pause_block = strtol(optarg, NULL, 10);
64+ if (pause_duration < 0) {
65+ printf("Set wrong paramter! Set duration default 6.\n");
66+ pause_duration = 6;
67+ }
68+ break;
69+ case 'n':
70+ pause_duration = strtol(optarg, NULL, 10);
71+ if (pause_duration < 0) {
72+ printf("Set wrong paramter! Set duration default 10.\n");
73+ pause_duration = 10;
74+ }
75+ break;
76 default:
77 exit(EXIT_FAILURE);
78 }
79@@ -315,7 +339,7 @@ int main(int argc, char **argv)
80
81 file = argv[optind];
82
83- play_samples(file, card, device, buffer_size, frag, codec_id);
84+ play_samples(file, card, device, buffer_size, frag, codec_id, pause_count, pause_block, pause_duration);
85
86 fprintf(stderr, "Finish Playing.... Close Normally\n");
87 exit(EXIT_SUCCESS);
88@@ -491,7 +515,8 @@ void get_codec_pcm(FILE *file, struct compr_config *config,
89
90 void play_samples(char *name, unsigned int card, unsigned int device,
91 unsigned long buffer_size, unsigned int frag,
92- unsigned long codec_id)
93+ unsigned long codec_id, int pause_count, int pause_block,
94+ int pause_duration)
95 {
96 struct compr_config config;
97 struct snd_codec codec;
98@@ -499,6 +524,7 @@ void play_samples(char *name, unsigned int card, unsigned int device,
99 FILE *file;
100 char *buffer;
101 int size, num_read, wrote;
102+ int write_count = 0;
103
104 if (verbose)
105 printf("%s: entry\n", __func__);
106@@ -574,6 +600,13 @@ void play_samples(char *name, unsigned int card, unsigned int device,
107 if (verbose)
108 printf("%s: You should hear audio NOW!!!\n", __func__);
109
110+ if (pause_count > 0) {
111+ printf("sleep...\n");
112+ compress_pause(compress);
113+ sleep(pause_duration);
114+ compress_resume(compress);
115+ }
116+
117 do {
118 num_read = fread(buffer, 1, size, file);
119 if (num_read > 0) {
120@@ -592,8 +625,23 @@ void play_samples(char *name, unsigned int card, unsigned int device,
121 printf("%s: wrote %d\n", __func__, wrote);
122 }
123 }
124+ write_count++;
125+ if ((pause_count > 0) && (write_count % pause_block == 0)) {
126+ printf("pause...\n");
127+ compress_pause(compress);
128+ sleep(pause_duration);
129+ printf("pause release...\n");
130+ compress_resume(compress);
131+ pause_count--;
132+ }
133 } while (num_read > 0);
134
135+ if (pause_count > 0) {
136+ compress_pause(compress);
137+ sleep(5);
138+ compress_resume(compress);
139+ }
140+
141 if (verbose)
142 printf("%s: exit success\n", __func__);
143 /* issue drain if it supports */
144--
1452.17.1
146
diff --git a/recipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch b/recipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch
new file mode 100755
index 00000000..dfedd186
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch
@@ -0,0 +1,40 @@
1From a2892bf5db7520689fa9cb1d1589fa804bd9dc1a Mon Sep 17 00:00:00 2001
2From: Bing Song <bing.song@nxp.com>
3Date: Tue, 18 Aug 2020 15:26:51 +0800
4Subject: [PATCH] tinycompress: pass NULL buffer with 0 size to driver.
5
6The NULL buffer with 0 size to indecate driver drain input data with
7non-block mode. The defaul drain is block mode.
8
9Upstream-Status: Inappropriate [i.MX specific]
10Signed-off-by: Bing Song <bing.song@nxp.com>
11---
12 src/lib/compress.c | 5 +++--
13 1 file changed, 3 insertions(+), 2 deletions(-)
14
15diff --git a/src/lib/compress.c b/src/lib/compress.c
16index bba4fcf..d66df0b 100644
17--- a/src/lib/compress.c
18+++ b/src/lib/compress.c
19@@ -315,7 +315,8 @@ int compress_write(struct compress *compress, const void *buf, unsigned int size
20 fds.events = POLLOUT;
21
22 /*TODO: treat auto start here first */
23- while (size) {
24+ /* NULL buffer with 0 size for non-block drain */
25+ do {
26 if (ioctl(compress->fd, SNDRV_COMPRESS_AVAIL, &avail))
27 return oops(compress, errno, "cannot get avail");
28
29@@ -357,7 +358,7 @@ int compress_write(struct compress *compress, const void *buf, unsigned int size
30 size -= written;
31 cbuf += written;
32 total += written;
33- }
34+ } while (size);
35 return total;
36 }
37
38--
392.17.1
40
diff --git a/recipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch b/recipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch
new file mode 100755
index 00000000..2f36551a
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch
@@ -0,0 +1,251 @@
1From 2912f8573cea25fbd38ac7a8b68af2ea6a05e599 Mon Sep 17 00:00:00 2001
2From: Zhang Peng <peng.zhang_8@nxp.com>
3Date: Wed, 28 Oct 2020 19:08:53 +0800
4Subject: [PATCH] cplay: Support aac streams
5
6Support run aac format streams for cplay.
7
8Upstream-Status: Inappropriate [i.MX specific]
9Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
10---
11 src/utils/cplay.c | 210 ++++++++++++++++++++++++++++++++++++++++++++++
12 1 file changed, 210 insertions(+)
13
14diff --git a/src/utils/cplay.c b/src/utils/cplay.c
15index 8e3dcbb..2a1464a 100644
16--- a/src/utils/cplay.c
17+++ b/src/utils/cplay.c
18@@ -245,6 +245,190 @@ static int parse_wav_header(FILE *file, unsigned int *num_channels, unsigned int
19 return 0;
20 }
21
22+int find_adts_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate, unsigned int *format)
23+{
24+ int ret;
25+ unsigned char buf[5];
26+
27+ ret = fread(buf, sizeof(buf), 1, file);
28+ if (ret < 0) {
29+ fprintf(stderr, "open file error: %d\n", ret);
30+ return 0;
31+ }
32+ fseek(file, 0, SEEK_SET);
33+
34+ if ((buf[0] != 0xff) || (buf[1] & 0xf0 != 0xf0))
35+ return 0;
36+ /* mpeg id */
37+ switch (buf[1]>>3 & 0x1) {
38+ case 0x0:
39+ *format = SND_AUDIOSTREAMFORMAT_MP4ADTS;
40+ break;
41+ case 0x1:
42+ *format = SND_AUDIOSTREAMFORMAT_MP2ADTS;
43+ break;
44+ default:
45+ fprintf(stderr, "can't find stream format\n");
46+ break;
47+ }
48+ /* sample_rate */
49+ switch (buf[2]>>2 & 0xf) {
50+ case 0x0:
51+ *sample_rate = 96000;
52+ break;
53+ case 0x1:
54+ *sample_rate = 88200;
55+ break;
56+ case 0x2:
57+ *sample_rate = 64000;
58+ break;
59+ case 0x3:
60+ *sample_rate = 48000;
61+ break;
62+ case 0x4:
63+ *sample_rate = 44100;
64+ break;
65+ case 0x5:
66+ *sample_rate = 32000;
67+ break;
68+ case 0x6:
69+ *sample_rate = 24000;
70+ break;
71+ case 0x7:
72+ *sample_rate = 22050;
73+ break;
74+ case 0x8:
75+ *sample_rate = 16000;
76+ break;
77+ case 0x9:
78+ *sample_rate = 12000;
79+ break;
80+ case 0xa:
81+ *sample_rate = 11025;
82+ break;
83+ case 0xb:
84+ *sample_rate = 8000;
85+ break;
86+ case 0xc:
87+ *sample_rate = 7350;
88+ break;
89+ default:
90+ break;
91+ }
92+ /* channel */
93+ switch (((buf[2]&0x1) << 2) | (buf[3]>>6)) {
94+ case 1:
95+ *num_channels = 1;
96+ break;
97+ case 2:
98+ *num_channels = 2;
99+ break;
100+ case 3:
101+ *num_channels = 3;
102+ break;
103+ case 4:
104+ *num_channels = 4;
105+ break;
106+ case 5:
107+ *num_channels = 5;
108+ break;
109+ case 6:
110+ *num_channels = 6;
111+ break;
112+ case 7:
113+ *num_channels = 7;
114+ break;
115+ default:
116+ break;
117+ }
118+ return 1;
119+}
120+
121+static const int aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100,
122+ 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350
123+};
124+
125+#define MAX_SR_NUM sizeof(aac_sample_rates)/sizeof(aac_sample_rates[0])
126+
127+static int get_sample_rate_from_index(int sr_index)
128+{
129+ if (sr_index >= 0 && sr_index < MAX_SR_NUM)
130+ return aac_sample_rates[sr_index];
131+
132+ return 0;
133+}
134+
135+int find_adif_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate, unsigned int *format)
136+{
137+ int ret;
138+ unsigned char adif_id[4];
139+ unsigned char adif_header[20];
140+ int bitstream_type;
141+ int bitrate;
142+ int object_type;
143+ int sr_index;
144+ int skip_size = 0;
145+
146+ ret = fread(adif_id, sizeof(unsigned char), 4, file);
147+ if (ret < 0) {
148+ fprintf(stderr, "read data from file err: %d\n", ret);
149+ return 0;
150+ }
151+ /* adif id */
152+ if ((adif_id[0] != 0x41) || (adif_id[1] != 0x44) ||
153+ (adif_id[2] != 0x49) || (adif_id[3] != 0x46))
154+ return 0;
155+
156+ fread(adif_header, sizeof(unsigned char), 20, file);
157+
158+ /* copyright string */
159+ if (adif_header[0] & 0x80)
160+ skip_size = 9;
161+
162+ bitstream_type = adif_header[0 + skip_size] & 0x10;
163+ bitrate =
164+ ((unsigned int) (adif_header[0 + skip_size] & 0x0f) << 19) |
165+ ((unsigned int) adif_header[1 + skip_size] << 11) |
166+ ((unsigned int) adif_header[2 + skip_size] << 3) |
167+ ((unsigned int) adif_header[3 + skip_size] & 0xe0);
168+
169+ if (bitstream_type == 0) {
170+ object_type = ((adif_header[6 + skip_size] & 0x01) << 1) |
171+ ((adif_header[7 + skip_size] & 0x80) >> 7);
172+ sr_index = (adif_header[7 + skip_size] & 0x78) >> 3;
173+ }
174+ /* VBR */
175+ else {
176+ object_type = (adif_header[4 + skip_size] & 0x18) >> 3;
177+ sr_index = ((adif_header[4 + skip_size] & 0x07) << 1) |
178+ ((adif_header[5 + skip_size] & 0x80) >> 7);
179+ }
180+
181+ /* sample rate */
182+ *sample_rate = get_sample_rate_from_index(sr_index);
183+
184+ /* FIXME: assume channels is 2 */
185+ *num_channels = 2;
186+
187+ *format = SND_AUDIOSTREAMFORMAT_ADIF;
188+ fseek(file, 0, SEEK_SET);
189+ return 1;
190+}
191+
192+static int parse_aac_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate, unsigned int *format)
193+{
194+ if (find_adts_header(file, num_channels, sample_rate, format))
195+ return 1;
196+ else if (find_adif_header(file, num_channels, sample_rate, format))
197+ return 1;
198+ else {
199+ fprintf(stderr, "can't find streams format\n");
200+ return 0;
201+ }
202+
203+ return 1;
204+}
205+
206 static int print_time(struct compress *compress)
207 {
208 unsigned int avail;
209@@ -513,6 +697,29 @@ void get_codec_pcm(FILE *file, struct compr_config *config,
210 codec->format = format;
211 }
212
213+void get_codec_aac(FILE *file, struct compr_config *config,
214+ struct snd_codec *codec)
215+{
216+ unsigned int channels, rate, format;
217+
218+ if (parse_aac_header(file, &channels, &rate, &format) == 0) {
219+ fclose(file);
220+ exit(EXIT_FAILURE);
221+ };
222+ fseek(file, 0, SEEK_SET);
223+
224+ codec->id = SND_AUDIOCODEC_AAC;
225+ codec->ch_in = channels;
226+ codec->ch_out = channels;
227+ codec->sample_rate = rate;
228+ codec->bit_rate = 0;
229+ codec->rate_control = 0;
230+ codec->profile = SND_AUDIOPROFILE_AAC;
231+ codec->level = 0;
232+ codec->ch_mode = 0;
233+ codec->format = format;
234+
235+}
236 void play_samples(char *name, unsigned int card, unsigned int device,
237 unsigned long buffer_size, unsigned int frag,
238 unsigned long codec_id, int pause_count, int pause_block,
239@@ -544,6 +751,9 @@ void play_samples(char *name, unsigned int card, unsigned int device,
240 case SND_AUDIOCODEC_PCM:
241 get_codec_pcm(file, &config, &codec);
242 break;
243+ case SND_AUDIOCODEC_AAC:
244+ get_codec_aac(file, &config, &codec);
245+ break;
246 default:
247 fprintf(stderr, "codec ID %ld is not supported\n", codec_id);
248 exit(EXIT_FAILURE);
249--
2502.17.1
251
diff --git a/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb b/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb
new file mode 100644
index 00000000..6c0fc72e
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb
@@ -0,0 +1,16 @@
1DESCRIPTION = "A library to handle compressed formats like MP3 etc."
2LICENSE = "LGPLv2.1 | BSD-3-Clause"
3LIC_FILES_CHKSUM = "file://COPYING;md5=cf9105c1a2d4405cbe04bbe3367373a0"
4DEPENDS = "alsa-lib"
5
6SRC_URI = "git://git.alsa-project.org/tinycompress.git;protocol=git;branch=master \
7 file://0001-tinycompress-Add-id3-decoding.patch \
8 file://0002-cplay-Support-wave-file.patch \
9 file://0003-cplay-Add-pause-feature.patch \
10 file://0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch \
11 file://0005-cplay-Support-aac-streams.patch \
12"
13SRCREV = "995f2ed91045dad8c20485ab1a64727d22cd92e5"
14S = "${WORKDIR}/git"
15
16inherit autotools pkgconfig