summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/layer.conf2
-rw-r--r--conf/machine/imx6qdlsabreauto.conf2
-rw-r--r--conf/machine/imx6qdlsabresd.conf2
-rw-r--r--conf/machine/include/imx-base.inc12
-rw-r--r--dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc2
-rw-r--r--dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-config.tests-add-DEFINES-to-compile-egl-test-with-im.patch25
-rw-r--r--dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-config.tests-add-DEFINES-to-compile-egl4gles1-test-w.patch25
-rw-r--r--recipes-graphics/cairo/cairo_%.bbappend2
-rw-r--r--recipes-graphics/gtk+/gtk+3_%.bbappend4
-rw-r--r--recipes-graphics/harfbuzz/harfbuzz_%.bbappend5
-rw-r--r--recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.0.bb3
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc128
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p4.2-aarch64.bb7
-rw-r--r--recipes-graphics/pango/pango_%.bbappend5
-rw-r--r--recipes-graphics/vulkan/vulkan-loader_%.bbappend2
-rw-r--r--recipes-graphics/wayland/weston/0001-g2d-renderer.c-Include-sys-stat.h.patch34
-rw-r--r--recipes-graphics/wayland/weston_10.0.0.imx.bb13
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch30
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch34
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch44
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch49
-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-Remove-check-for-useSIGIO-option.patch47
-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_%.bbappend15
-rw-r--r--recipes-graphics/xwayland/xwayland_%.bbappend7
-rw-r--r--recipes-kernel/linux/linux-fslc-imx/imx-nxp-bsp/defconfig1057
-rw-r--r--recipes-kernel/linux/linux-fslc-imx_5.15.bb6
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch48
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bb5
-rw-r--r--recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.2.bb4
37 files changed, 588 insertions, 2900 deletions
diff --git a/conf/layer.conf b/conf/layer.conf
index a3c8af2c..e57c3b59 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -8,7 +8,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
8BBFILE_COLLECTIONS += "freescale-layer" 8BBFILE_COLLECTIONS += "freescale-layer"
9BBFILE_PATTERN_freescale-layer := "^${LAYERDIR}/" 9BBFILE_PATTERN_freescale-layer := "^${LAYERDIR}/"
10BBFILE_PRIORITY_freescale-layer = "5" 10BBFILE_PRIORITY_freescale-layer = "5"
11LAYERSERIES_COMPAT_freescale-layer = "kirkstone" 11LAYERSERIES_COMPAT_freescale-layer = "kirkstone langdale"
12 12
13# Add the Freescale-specific licenses into the metadata 13# Add the Freescale-specific licenses into the metadata
14LICENSE_PATH += "${LAYERDIR}/custom-licenses" 14LICENSE_PATH += "${LAYERDIR}/custom-licenses"
diff --git a/conf/machine/imx6qdlsabreauto.conf b/conf/machine/imx6qdlsabreauto.conf
index 16a061e5..b7b44589 100644
--- a/conf/machine/imx6qdlsabreauto.conf
+++ b/conf/machine/imx6qdlsabreauto.conf
@@ -34,7 +34,7 @@ KERNEL_DEVICETREE:use-mainline-bsp = " \
34 34
35### u-boot-fslc settings ### 35### u-boot-fslc settings ###
36SPL_BINARY:pn-u-boot-fslc = "SPL" 36SPL_BINARY:pn-u-boot-fslc = "SPL"
37UBOOT_CONFIG:pn-u-boot-fslc ??= "sd-fslc" 37UBOOT_CONFIG:pn-u-boot-fslc ??= "sd"
38UBOOT_SUFFIX:pn-u-boot-fslc = "img" 38UBOOT_SUFFIX:pn-u-boot-fslc = "img"
39 39
40### u-boot-imx settings ### 40### u-boot-imx settings ###
diff --git a/conf/machine/imx6qdlsabresd.conf b/conf/machine/imx6qdlsabresd.conf
index 62ad478e..7c40a860 100644
--- a/conf/machine/imx6qdlsabresd.conf
+++ b/conf/machine/imx6qdlsabresd.conf
@@ -43,7 +43,7 @@ KERNEL_DEVICETREE:use-mainline-bsp = " \
43 43
44### u-boot-fslc settings ### 44### u-boot-fslc settings ###
45SPL_BINARY:pn-u-boot-fslc = "SPL" 45SPL_BINARY:pn-u-boot-fslc = "SPL"
46UBOOT_CONFIG:pn-u-boot-fslc ??= "sd-fslc" 46UBOOT_CONFIG:pn-u-boot-fslc ??= "sd"
47UBOOT_SUFFIX:pn-u-boot-fslc = "img" 47UBOOT_SUFFIX:pn-u-boot-fslc = "img"
48 48
49### u-boot-imx settings ### 49### u-boot-imx settings ###
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index f1257c24..a0d6be13 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -187,15 +187,15 @@ MACHINEOVERRIDES_EXTENDER:mx7ulp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxf
187 187
188MACHINEOVERRIDES_EXTENDER:vf:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:vf-generic-bsp:vf-nxp-bsp" 188MACHINEOVERRIDES_EXTENDER:vf:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:vf-generic-bsp:vf-nxp-bsp"
189 189
190MACHINEOVERRIDES_EXTENDER:mx8qm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8qm-generic-bsp:mx8qm-nxp-bsp" 190MACHINEOVERRIDES_EXTENDER:mx8qm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8qm-generic-bsp:mx8qm-nxp-bsp"
191 191
192MACHINEOVERRIDES_EXTENDER:mx8mm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mm-generic-bsp:mx8mm-nxp-bsp" 192MACHINEOVERRIDES_EXTENDER:mx8mm:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mm-generic-bsp:mx8mm-nxp-bsp"
193MACHINEOVERRIDES_EXTENDER:mx8mn:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxgpu:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mn-generic-bsp:mx8mn-nxp-bsp" 193MACHINEOVERRIDES_EXTENDER:mx8mn:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxgpu:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mn-generic-bsp:mx8mn-nxp-bsp"
194MACHINEOVERRIDES_EXTENDER:mx8mp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mp-generic-bsp:mx8mp-nxp-bsp" 194MACHINEOVERRIDES_EXTENDER:mx8mp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mp-generic-bsp:mx8mp-nxp-bsp"
195MACHINEOVERRIDES_EXTENDER:mx8mq:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mq-generic-bsp:mx8mq-nxp-bsp" 195MACHINEOVERRIDES_EXTENDER:mx8mq:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxvpu:imxgpu:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8m-generic-bsp:mx8m-nxp-bsp:mx8mq-generic-bsp:mx8mq-nxp-bsp"
196 196
197MACHINEOVERRIDES_EXTENDER:mx8qxp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8qxp-generic-bsp:mx8qxp-nxp-bsp" 197MACHINEOVERRIDES_EXTENDER:mx8qxp:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8qxp-generic-bsp:mx8qxp-nxp-bsp"
198MACHINEOVERRIDES_EXTENDER:mx8dx:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dx-generic-bsp:mx8dx-nxp-bsp" 198MACHINEOVERRIDES_EXTENDER:mx8dx:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d:imxvulkan:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dx-generic-bsp:mx8dx-nxp-bsp"
199MACHINEOVERRIDES_EXTENDER:mx8dxl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:mx8dxl-generic-bsp:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dxl-nxp-bsp" 199MACHINEOVERRIDES_EXTENDER:mx8dxl:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxfbdev:mx8dxl-generic-bsp:mx8-generic-bsp:mx8-nxp-bsp:mx8x-generic-bsp:mx8x-nxp-bsp:mx8dxl-nxp-bsp"
200 200
201####### 201#######
diff --git a/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc
index 03e09e57..794a0bad 100644
--- a/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc
+++ b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc
@@ -12,6 +12,8 @@ SRC_URI:append:imxgpu2d += " \
12 file://0001-Add-support-for-i.MX-codecs-to-phonon.patch \ 12 file://0001-Add-support-for-i.MX-codecs-to-phonon.patch \
13 file://0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch \ 13 file://0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch \
14 file://0003-i.MX6-force-egl-visual-ID-33.patch \ 14 file://0003-i.MX6-force-egl-visual-ID-33.patch \
15 file://0001-config.tests-add-DEFINES-to-compile-egl-test-with-im.patch \
16 file://0002-config.tests-add-DEFINES-to-compile-egl4gles1-test-w.patch.patch \
15" 17"
16 18
17DEPENDS:append:imxgpu2d = " virtual/kernel virtual/libgles2" 19DEPENDS:append:imxgpu2d = " virtual/kernel virtual/libgles2"
diff --git a/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-config.tests-add-DEFINES-to-compile-egl-test-with-im.patch b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-config.tests-add-DEFINES-to-compile-egl-test-with-im.patch
new file mode 100644
index 00000000..7eee7cf2
--- /dev/null
+++ b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0001-config.tests-add-DEFINES-to-compile-egl-test-with-im.patch
@@ -0,0 +1,25 @@
1From 234580de9d63fd79a8b444358cdaeac111a17061 Mon Sep 17 00:00:00 2001
2From: Mauro Salvini <m.salvini@koansoftware.com>
3Date: Thu, 29 Sep 2022 16:06:04 +0200
4Subject: [PATCH 1/2] config.tests: add DEFINES to compile egl test with
5 imxgpu2d (Vivante)
6
7Signed-off-by: Mauro Salvini <m.salvini@koansoftware.com>
8---
9 config.tests/unix/egl/egl.pro | 1 +
10 1 file changed, 1 insertion(+)
11
12diff --git a/config.tests/unix/egl/egl.pro b/config.tests/unix/egl/egl.pro
13index f04d0535..bc35b908 100644
14--- a/config.tests/unix/egl/egl.pro
15+++ b/config.tests/unix/egl/egl.pro
16@@ -6,5 +6,6 @@ for(p, QMAKE_LIBDIR_EGL) {
17
18 !isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL
19 !isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
20+DEFINES += LINUX=1 EGL_API_FB=1
21
22 CONFIG -= qt
23--
242.17.1
25
diff --git a/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-config.tests-add-DEFINES-to-compile-egl4gles1-test-w.patch b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-config.tests-add-DEFINES-to-compile-egl4gles1-test-w.patch
new file mode 100644
index 00000000..993df85e
--- /dev/null
+++ b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4/0002-config.tests-add-DEFINES-to-compile-egl4gles1-test-w.patch
@@ -0,0 +1,25 @@
1From adb19c68d3c92eb1a88e49e447ce827f14943486 Mon Sep 17 00:00:00 2001
2From: Mauro Salvini <m.salvini@koansoftware.com>
3Date: Thu, 29 Sep 2022 16:12:11 +0200
4Subject: [PATCH 2/2] config.tests: add DEFINES to compile egl4gles1 test with
5 imxgpu2d (Vivante)
6
7Signed-off-by: Mauro Salvini <m.salvini@koansoftware.com>
8---
9 config.tests/unix/egl4gles1/egl4gles1.pro | 1 +
10 1 file changed, 1 insertion(+)
11
12diff --git a/config.tests/unix/egl4gles1/egl4gles1.pro b/config.tests/unix/egl4gles1/egl4gles1.pro
13index 667ea8e3..14cb4a76 100644
14--- a/config.tests/unix/egl4gles1/egl4gles1.pro
15+++ b/config.tests/unix/egl4gles1/egl4gles1.pro
16@@ -6,5 +6,6 @@ for(p, QMAKE_LIBDIR_EGL) {
17
18 !isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL
19 !isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
20+DEFINES += LINUX=1 EGL_API_FB=1
21
22 CONFIG -= qt
23--
242.17.1
25
diff --git a/recipes-graphics/cairo/cairo_%.bbappend b/recipes-graphics/cairo/cairo_%.bbappend
index 245adb59..c61e9a58 100644
--- a/recipes-graphics/cairo/cairo_%.bbappend
+++ b/recipes-graphics/cairo/cairo_%.bbappend
@@ -3,6 +3,6 @@ PACKAGECONFIG:remove:imxgpu3d = "opengl"
3 3
4# links with imx-gpu libs which are pre-built for glibc 4# links with imx-gpu libs which are pre-built for glibc
5# gcompat will address it during runtime 5# gcompat will address it during runtime
6LDFLAGS:append:imxgpu3d:libc-musl = " -Wl,--allow-shlib-undefined"
7LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined" 6LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
8 7
8RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
diff --git a/recipes-graphics/gtk+/gtk+3_%.bbappend b/recipes-graphics/gtk+/gtk+3_%.bbappend
index 2f108a27..6bc01807 100644
--- a/recipes-graphics/gtk+/gtk+3_%.bbappend
+++ b/recipes-graphics/gtk+/gtk+3_%.bbappend
@@ -1,5 +1 @@
1DEPENDS:append:imxgpu2d = " virtual/egl" DEPENDS:append:imxgpu2d = " virtual/egl"
2
3PACKAGECONFIG:remove:imxgpu2d = " \
4 ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "x11", "", d)} \
5"
diff --git a/recipes-graphics/harfbuzz/harfbuzz_%.bbappend b/recipes-graphics/harfbuzz/harfbuzz_%.bbappend
new file mode 100644
index 00000000..bf8c38fc
--- /dev/null
+++ b/recipes-graphics/harfbuzz/harfbuzz_%.bbappend
@@ -0,0 +1,5 @@
1# links with imx-gpu libs which are pre-built for glibc
2# gcompat will address it during runtime
3LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
4
5RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
diff --git a/recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.0.bb b/recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.0.bb
index ad8de74c..e2f5912b 100644
--- a/recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.0.bb
+++ b/recipes-graphics/imx-g2d/imx-dpu-g2d_2.1.0.bb
@@ -23,5 +23,8 @@ do_install () {
23} 23}
24 24
25INSANE_SKIP:${PN} += "ldflags" 25INSANE_SKIP:${PN} += "ldflags"
26INSANE_SKIP:append:libc-musl = " file-rdeps"
26 27
27COMPATIBLE_MACHINE = "(imxdpu)" 28COMPATIBLE_MACHINE = "(imxdpu)"
29
30RDEPENDS:${PN}:append:libc-musl = " gcompat"
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 4abab088..4cbb7ba6 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
@@ -25,6 +25,8 @@ DEPENDS:append:mx8-nxp-bsp = " patchelf-native"
25# We depend on mesa to fill in what is missing. 25# We depend on mesa to fill in what is missing.
26DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}" 26DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}"
27 27
28DEPENDS:append:libc-musl = " gcompat"
29
28PROVIDES += " \ 30PROVIDES += " \
29 imx-gpu-viv \ 31 imx-gpu-viv \
30 libgal-imx \ 32 libgal-imx \
@@ -48,9 +50,14 @@ EXTRA_PROVIDES:append:imxgpu3d = " \
48EXTRA_PROVIDES:append:mx8-nxp-bsp = " \ 50EXTRA_PROVIDES:append:mx8-nxp-bsp = " \
49 virtual/libgbm \ 51 virtual/libgbm \
50" 52"
53
51PROVIDES_OPENGLES3 = "" 54PROVIDES_OPENGLES3 = ""
52PROVIDES_OPENGLES3:mx8-nxp-bsp = "virtual/libgles3" 55PROVIDES_OPENGLES3:mx8-nxp-bsp = "virtual/libgles3"
53PROVIDES_OPENGLES3:mx8mm-nxp-bsp = "" 56PROVIDES_OPENGLES3:mx8mm-nxp-bsp = ""
57
58# Note: OpenVX is fully supported on i.MX 8 QuadMax and 8 QuadPlus.
59# However, only limited support is provided on other i.MX 8 machines
60# as needed for i.MX machine learning packages.
54PROVIDES_OPENVX = "" 61PROVIDES_OPENVX = ""
55PROVIDES_OPENVX:mx8-nxp-bsp = "virtual/libopenvx" 62PROVIDES_OPENVX:mx8-nxp-bsp = "virtual/libopenvx"
56PROVIDES_OPENVX:mx8mm-nxp-bsp = "" 63PROVIDES_OPENVX:mx8mm-nxp-bsp = ""
@@ -59,9 +66,7 @@ RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv"
59 66
60PE = "1" 67PE = "1"
61 68
62inherit fsl-eula-unpack features_check 69inherit fsl-eula-unpack
63
64REQUIRED_DISTRO_FEATURES:mx8-nxp-bsp = "wayland"
65 70
66SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 71SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
67 72
@@ -71,27 +76,39 @@ PACKAGECONFIG ?= ""
71PACKAGECONFIG[valgrind] = "" 76PACKAGECONFIG[valgrind] = ""
72 77
73# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below 78# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below
74IMX_PACKAGES_GBM = "" 79PACKAGES =+ " \
75IMX_PACKAGES_GBM:mx8-nxp-bsp = "libgbm-imx libgbm-imx-dev"
76PACKAGES =+ "libclc-imx libclc-imx-dev \
77 libgl-imx libgl-imx-dev \ 80 libgl-imx libgl-imx-dev \
78 libgles1-imx libgles1-imx-dev \ 81 libgles1-imx libgles1-imx-dev \
79 libgles2-imx libgles2-imx-dev \ 82 libgles2-imx libgles2-imx-dev \
80 libgles3-imx-dev \ 83 libgles3-imx-dev \
81 libglslc-imx libglslc-imx-dev \ 84 libglslc-imx libglslc-imx-dev \
82 libopencl-imx libopencl-imx-dev \ 85 ${PACKAGES_OPENCL} \
83 libopenvg-imx libopenvg-imx-dev \ 86 libopenvg-imx libopenvg-imx-dev \
84 libvdk-imx libvdk-imx-dev \ 87 libvdk-imx libvdk-imx-dev \
85 libegl-imx libegl-imx-dev \ 88 libegl-imx libegl-imx-dev \
86 libgal-imx libgal-imx-dev \ 89 libgal-imx libgal-imx-dev \
87 libvsc-imx \ 90 libvsc-imx \
88 ${IMX_PACKAGES_GBM} \ 91 ${PACKAGES_GBM} \
89 imx-gpu-viv-tools \ 92 imx-gpu-viv-tools \
90 imx-gpu-viv-demos \ 93 imx-gpu-viv-demos \
91 libvulkan-imx libvulkan-imx-dev \ 94 ${PACKAGES_VULKAN} \
92 libopenvx-imx libopenvx-imx-dev \ 95 ${PACKAGES_OPENVX} \
93 libnn-imx \ 96 libnn-imx \
94" 97"
98
99PACKAGES_GBM = ""
100PACKAGES_GBM:mx8-nxp-bsp = "libgbm-imx libgbm-imx-dev"
101
102PACKAGES_OPENCL = "libopencl-imx libopencl-imx-dev libclc-imx libclc-imx-dev"
103PACKAGES_OPENCL:mx7-nxp-bsp = ""
104
105PACKAGES_OPENVX = \
106 "${@bb.utils.contains("PROVIDES_OPENVX", "virtual/libopenvx", \
107 "libopenvx-imx libopenvx-imx-dev", "", d)}"
108
109PACKAGES_VULKAN = ""
110PACKAGES_VULKAN:imxvulkan = "libvulkan-imx libvulkan-imx-dev"
111
95python __anonymous () { 112python __anonymous () {
96 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0') 113 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0')
97 if has_vivante_kernel_driver_support != '1': 114 if has_vivante_kernel_driver_support != '1':
@@ -175,6 +192,7 @@ do_install () {
175 # Use vulkan header from vulkan-headers recipe to support vkmark 192 # Use vulkan header from vulkan-headers recipe to support vkmark
176 rm -rf ${D}${includedir}/vulkan/ 193 rm -rf ${D}${includedir}/vulkan/
177 194
195 # Install SOC-specific drivers
178 if [ -d ${S}/gpu-core/usr/lib/${IMX_SOC} ]; then 196 if [ -d ${S}/gpu-core/usr/lib/${IMX_SOC} ]; then
179 cp -r ${S}/gpu-core/usr/lib/${IMX_SOC}/* ${D}${libdir} 197 cp -r ${S}/gpu-core/usr/lib/${IMX_SOC}/* ${D}${libdir}
180 fi 198 fi
@@ -184,28 +202,59 @@ do_install () {
184 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc 202 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc
185 fi 203 fi
186 204
205 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
206 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
207 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc
208
209 # Install backend-specific drivers
187 if [ "${BACKEND}" = "wayland" ]; then 210 if [ "${BACKEND}" = "wayland" ]; then
211 # Wayland backend
188 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc 212 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc
189 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc 213 cp -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir}
190 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc 214 elif [ "${IS_MX8}" != "1" ]; then
191 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc 215 # Framebuffer backend for i.MX 6 and 7
192 else
193 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
194 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
195 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc
196 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc 216 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc
217 cp -r ${S}/gpu-core/usr/lib/fb/* ${D}${libdir}
218 else
219 # Framebuffer backend for i.MX 8 and beyond
220 install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl.pc ${D}${libdir}/pkgconfig/egl.pc
221 cp -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir}
222 set -f
223 for f in ${FILES:libvdk-imx} ${FILES:libvdk-imx-dev}; do
224 set +f
225 rm -rf ${D}/$f
226 done
227 rm -rf \
228 ${D}/opt/viv_samples/es20 \
229 ${D}/opt/viv_samples/tiger \
230 ${D}/opt/viv_samples/vdk
197 fi 231 fi
198
199 # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader)
200 install -d ${D}${sysconfdir}/OpenCL/vendors/
201 install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd
202
203 # Handle backend specific drivers
204 cp -r ${S}/gpu-core/usr/lib/${BACKEND}/* ${D}${libdir}
205 if [ "${BACKEND}" = "wayland" ] && [ "${IS_MX8}" != "1" ]; then 232 if [ "${BACKEND}" = "wayland" ] && [ "${IS_MX8}" != "1" ]; then
206 # Special case for libVDK on Wayland backend, deliver fb library as well. 233 # Special case for libVDK on Wayland backend, deliver fb library as well.
207 cp ${S}/gpu-core/usr/lib/fb/libVDK.so.1.2.0 ${D}${libdir}/libVDK-fb.so.1.2.0 234 cp ${S}/gpu-core/usr/lib/fb/libVDK.so.1.2.0 ${D}${libdir}/libVDK-fb.so.1.2.0
208 fi 235 fi
236
237 if [ -z "${PACKAGES_OPENCL}" ]; then
238 set -f
239 for f in ${FILES:libopencl-imx} ${FILES:libopencl-imx-dev} ${FILES:libclc-imx} ${FILES:libclc-imx-dev}; do
240 set +f
241 rm -rf ${D}$f
242 done
243 rm -rf ${D}/opt/viv_samples/cl11
244 else
245 # Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader)
246 install -d ${D}${sysconfdir}/OpenCL/vendors/
247 install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd
248 fi
249
250 if [ -z "${PACKAGES_OPENVX}" ]; then
251 set -f
252 for f in ${FILES:libopenvx-imx} ${FILES:libopenvx-imx-dev}; do
253 set +f
254 rm -rf ${D}$f
255 done
256 fi
257
209 if [ "${IS_MX8}" = "1" ]; then 258 if [ "${IS_MX8}" = "1" ]; then
210 # Rename the vulkan implementation library which is wrapped by the vulkan-loader 259 # Rename the vulkan implementation library which is wrapped by the vulkan-loader
211 # library of the same name 260 # library of the same name
@@ -216,6 +265,13 @@ do_install () {
216 rm ${D}${libdir}/libvulkan.so.$MAJOR ${D}${libdir}/libvulkan.so 265 rm ${D}${libdir}/libvulkan.so.$MAJOR ${D}${libdir}/libvulkan.so
217 ln -s libvulkan_VSI.so.$FULL ${D}${libdir}/libvulkan_VSI.so.$MAJOR 266 ln -s libvulkan_VSI.so.$FULL ${D}${libdir}/libvulkan_VSI.so.$MAJOR
218 ln -s libvulkan_VSI.so.$FULL ${D}${libdir}/libvulkan_VSI.so 267 ln -s libvulkan_VSI.so.$FULL ${D}${libdir}/libvulkan_VSI.so
268 if [ -z "${PACKAGES_VULKAN}" ]; then
269 set -f
270 for f in ${FILES:libvulkan-imx} ${FILES:libvulkan-imx-dev}; do
271 set +f
272 rm -rf ${D}$f
273 done
274 fi
219 fi 275 fi
220 276
221 # FIXME: MX6SL does not have 3D support; hack it for now 277 # FIXME: MX6SL does not have 3D support; hack it for now
@@ -244,6 +300,24 @@ do_install () {
244 chown -R root:root "${D}" 300 chown -R root:root "${D}"
245} 301}
246 302
303do_install:append:libc-musl() {
304 # libs
305 for f in `find ${D}${libdir} -name '*.so*' -type f`
306 do
307 patchelf --add-needed libgcompat.so.0 $f
308 done
309 # binaries
310 for f in `find ${D}/opt ${D}${bindir} -name '*' -type f -executable`
311 do
312 # prune scripts
313 if `patchelf --print-interpreter $f 2>&1 > /dev/null`
314 then
315 patchelf --set-interpreter ${root_prefix}`patchelf --print-interpreter $f` $f
316 patchelf --add-needed libgcompat.so.0 $f
317 fi
318 done
319}
320
247ALLOW_EMPTY:${PN} = "1" 321ALLOW_EMPTY:${PN} = "1"
248 322
249FILES:libclc-imx = "${libdir}/libCLC${SOLIBS} ${includedir}/CL/cl_viv_vx_ext.h" 323FILES:libclc-imx = "${libdir}/libCLC${SOLIBS} ${includedir}/CL/cl_viv_vx_ext.h"
@@ -263,9 +337,9 @@ INSANE_SKIP:libgal-imx += "build-deps"
263 337
264FILES:libvsc-imx = "${libdir}/libVSC${SOLIBS}" 338FILES:libvsc-imx = "${libdir}/libVSC${SOLIBS}"
265 339
266FILES:libgbm-imx:mx8-nxp-bsp = "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBSDEV} ${libdir}/libgbm_viv${SOLIBSDEV}" 340FILES:libgbm-imx = "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBSDEV} ${libdir}/libgbm_viv${SOLIBSDEV}"
267FILES:libgbm-imx-dev:mx8-nxp-bsp = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" 341FILES:libgbm-imx-dev = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
268RDEPENDS:libgbm-imx:append:mx8-nxp-bsp = " libdrm" 342RDEPENDS:libgbm-imx:append = " libdrm"
269INSANE_SKIP:libgbm-imx += "dev-so" 343INSANE_SKIP:libgbm-imx += "dev-so"
270 344
271FILES:libvulkan-imx = "${libdir}/libvulkan_VSI${REALSOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}" 345FILES:libvulkan-imx = "${libdir}/libvulkan_VSI${REALSOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p4.2-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p4.2-aarch64.bb
index bd584dbe..4136631b 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p4.2-aarch64.bb
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p4.2-aarch64.bb
@@ -1,9 +1,10 @@
1require imx-gpu-viv-6.inc 1require imx-gpu-viv-6.inc
2 2
3DEPENDS:append:libc-musl = " gcompat"
4INSANE_SKIP:append:libc-musl = " file-rdeps"
5
6SRC_URI[md5sum] = "22de8a5f59a56a7ef499f590d1659b6f" 3SRC_URI[md5sum] = "22de8a5f59a56a7ef499f590d1659b6f"
7SRC_URI[sha256sum] = "52921c0b59529f1598084e991eda1863100754f28a7744ba958158dff8074b3b" 4SRC_URI[sha256sum] = "52921c0b59529f1598084e991eda1863100754f28a7744ba958158dff8074b3b"
8 5
6INSANE_SKIP:append:libc-musl = " file-rdeps"
7
9COMPATIBLE_MACHINE = "(mx8-nxp-bsp)" 8COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"
9
10RDEPENDS:${PN}:append:libc-musl = " gcompat"
diff --git a/recipes-graphics/pango/pango_%.bbappend b/recipes-graphics/pango/pango_%.bbappend
new file mode 100644
index 00000000..bf8c38fc
--- /dev/null
+++ b/recipes-graphics/pango/pango_%.bbappend
@@ -0,0 +1,5 @@
1# links with imx-gpu libs which are pre-built for glibc
2# gcompat will address it during runtime
3LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
4
5RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
diff --git a/recipes-graphics/vulkan/vulkan-loader_%.bbappend b/recipes-graphics/vulkan/vulkan-loader_%.bbappend
index 90776168..722896ff 100644
--- a/recipes-graphics/vulkan/vulkan-loader_%.bbappend
+++ b/recipes-graphics/vulkan/vulkan-loader_%.bbappend
@@ -1,3 +1,3 @@
1# The i.MX implementation is dynamically loaded, so it requires an 1# The i.MX implementation is dynamically loaded, so it requires an
2# explicit runtime dependency. 2# explicit runtime dependency.
3RRECOMMENDS:${PN}:append:imxgpu = " libvulkan-imx" 3RRECOMMENDS:${PN}:append:imxvulkan = " libvulkan-imx"
diff --git a/recipes-graphics/wayland/weston/0001-g2d-renderer.c-Include-sys-stat.h.patch b/recipes-graphics/wayland/weston/0001-g2d-renderer.c-Include-sys-stat.h.patch
new file mode 100644
index 00000000..b9cb31fb
--- /dev/null
+++ b/recipes-graphics/wayland/weston/0001-g2d-renderer.c-Include-sys-stat.h.patch
@@ -0,0 +1,34 @@
1From 4afe9b2f9ef24ce0c9bf1cd41f94ca45afa4f445 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 12 Sep 2022 20:58:14 -0700
4Subject: [PATCH] g2d-renderer.c: Include sys/stat.h
5
6This is needed for getting stat() prototype, its flagged with clang-15
7as error.
8
9| ../git/libweston/renderer-g2d/g2d-renderer.c:2057:6: error: call to undeclared function 'stat'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
10| if (stat(gr->drm_device, &dev_stat) != 0) {
11| ^
12| 1 error generated.
13
14Upstream-Status: Pending
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16---
17 libweston/renderer-g2d/g2d-renderer.c | 1 +
18 1 file changed, 1 insertion(+)
19
20diff --git a/libweston/renderer-g2d/g2d-renderer.c b/libweston/renderer-g2d/g2d-renderer.c
21index f59fc4ee..36a458fc 100644
22--- a/libweston/renderer-g2d/g2d-renderer.c
23+++ b/libweston/renderer-g2d/g2d-renderer.c
24@@ -41,6 +41,7 @@
25 #include <drm_fourcc.h>
26 #include <poll.h>
27 #include <errno.h>
28+#include <sys/stat.h> /* stat() */
29
30 #include <libweston/libweston.h>
31 #include "g2d-renderer.h"
32--
332.37.3
34
diff --git a/recipes-graphics/wayland/weston_10.0.0.imx.bb b/recipes-graphics/wayland/weston_10.0.0.imx.bb
index 8fce4472..cc60b4d7 100644
--- a/recipes-graphics/wayland/weston_10.0.0.imx.bb
+++ b/recipes-graphics/wayland/weston_10.0.0.imx.bb
@@ -34,6 +34,7 @@ require ${THISDIR}/required-distro-features.inc
34 34
35DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" 35DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
36DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" 36DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
37DEPENDS:append:imxfbdev = " libdrm"
37 38
38LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}" 39LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}"
39 40
@@ -160,7 +161,9 @@ DEFAULT_PREFERENCE = "-1"
160 161
161SRC_URI:remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz" 162SRC_URI:remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
162SRC_URI:prepend = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} " 163SRC_URI:prepend = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} "
163SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch" 164SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch \
165 file://0001-g2d-renderer.c-Include-sys-stat.h.patch \
166 "
164SRCBRANCH = "weston-imx-10.0" 167SRCBRANCH = "weston-imx-10.0"
165SRCREV = "c8c6e3106b03441db1037afa995f95fcb2f9f17d" 168SRCREV = "c8c6e3106b03441db1037afa995f95fcb2f9f17d"
166 169
@@ -175,9 +178,7 @@ PACKAGECONFIG_OPENGL:imxgpu2d = ""
175PACKAGECONFIG_OPENGL:imxgpu3d = "opengl" 178PACKAGECONFIG_OPENGL:imxgpu3d = "opengl"
176 179
177PACKAGECONFIG:remove = "wayland x11" 180PACKAGECONFIG:remove = "wayland x11"
178PACKAGECONFIG:append = " \ 181PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}"
179 rdp \
180 ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}"
181 182
182PACKAGECONFIG:remove:imxfbdev = "kms" 183PACKAGECONFIG:remove:imxfbdev = "kms"
183PACKAGECONFIG:append:imxfbdev = " fbdev clients" 184PACKAGECONFIG:append:imxfbdev = " fbdev clients"
@@ -200,6 +201,10 @@ EXTRA_OEMESON:append:imxfbdev = " -Dbackend-default=fbdev"
200 201
201EXTRA_OEMESON += "-Ddeprecated-wl-shell=true" 202EXTRA_OEMESON += "-Ddeprecated-wl-shell=true"
202 203
204# links with imx-gpu libs which are pre-built for glibc
205# gcompat will address it during runtime
206LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
207
203PACKAGE_ARCH = "${MACHINE_SOCARCH}" 208PACKAGE_ARCH = "${MACHINE_SOCARCH}"
204COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)" 209COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)"
205 210
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch
deleted file mode 100644
index 6f232589..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From ed3c55fa6260ad125a32f9ac67f9e44a9bce7cf1 Mon Sep 17 00:00:00 2001
2From: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
3Date: Mon, 11 May 2020 19:12:51 -0500
4Subject: [PATCH] MGS-5186 Per Specification EGL_NATIVE_PIXMAP_KHR requires
5 EGL_NO_CONTEXT
6
7https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_image_pixmap.txt
8
9Per Specification EGL_NATIVE_PIXMAP_KHR requires EGL_NO_CONTEXT.
10So passing context will result in error.
11
12Upstream-Status: Pending
13Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
14---
15 hw/xwayland/xwayland-glamor-gbm.c | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18Index: xorg-server-1.20.8/hw/xwayland/xwayland-glamor-gbm.c
19===================================================================
20--- xorg-server-1.20.8.orig/hw/xwayland/xwayland-glamor-gbm.c
21+++ xorg-server-1.20.8/hw/xwayland/xwayland-glamor-gbm.c
22@@ -167,7 +167,7 @@ xwl_glamor_gbm_create_pixmap_for_bo(Scre
23 xwl_pixmap->bo = bo;
24 xwl_pixmap->buffer = NULL;
25 xwl_pixmap->image = eglCreateImageKHR(xwl_screen->egl_display,
26- xwl_screen->egl_context,
27+ EGL_NO_CONTEXT,
28 EGL_NATIVE_PIXMAP_KHR,
29 xwl_pixmap->bo, NULL);
30 if (xwl_pixmap->image == EGL_NO_IMAGE_KHR)
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch
deleted file mode 100644
index c8f1ae73..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From cc05c01925755310f027c61daa29648a10155f96 Mon Sep 17 00:00:00 2001
2From: Rohan Garg <rohan@garg.io>
3Date: Thu, 13 Dec 2018 19:15:01 +0100
4Subject: [PATCH] glamor/glamor_egl.c: EGL_NATIVE_PIXMAP_KHR do not require
5 contexts
6
7From https://www.khronos.org/registry/EGL/extensions/KHR/EGL_KHR_image_pixmap.txt
8
9 * If <target> is EGL_NATIVE_PIXMAP_KHR, and <ctx> is not EGL_NO_CONTEXT,
10 the error EGL_BAD_PARAMETER is generated.
11
12Fixes: a5321ea4 ("Allow to create textured pixmaps from gbm_bo without using gem names")
13---
14 glamor/glamor_egl.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17Upstream-Status: Backport [cc05c01925755310f027c61daa29648a10155f96]
18
19diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
20index 0f4edb5a3..69844d4e2 100644
21--- a/glamor/glamor_egl.c
22+++ b/glamor/glamor_egl.c
23@@ -233,7 +233,7 @@ glamor_egl_create_textured_pixmap_from_gbm_bo(PixmapPtr pixmap,
24 glamor_make_current(glamor_priv);
25
26 image = eglCreateImageKHR(glamor_egl->display,
27- glamor_egl->context,
28+ EGL_NO_CONTEXT,
29 EGL_NATIVE_PIXMAP_KHR, bo, NULL);
30 if (image == EGL_NO_IMAGE_KHR) {
31 glamor_set_pixmap_type(pixmap, GLAMOR_DRM_ONLY);
32--
332.17.1
34
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch
deleted file mode 100644
index 48f271ae..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 836f93de99b35050d78d61d3654f7c5655184144 Mon Sep 17 00:00:00 2001
2From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3Date: Fri, 19 Apr 2019 10:19:50 +0200
4Subject: [PATCH] hw/xwayland/Makefile.am: fix build without glx
5
6Commit d8ec33fe0542141aed1d9016d2ecaf52da944b4b added libglxvnd.la to
7Xwayland_LDFLAGS but GLX can be disabled through --disable-glx.
8In this case, build fails on:
9
10make[3]: *** No rule to make target '../../glx/libglxvnd.la', needed by 'Xwayland'. Stop.
11make[3]: *** Waiting for unfinished jobs....
12
13Fixes:
14 - http://autobuild.buildroot.org/results/397f8098c57fc6c88aa12dc8d35ebb1b933d52ef
15
16Upstream-Status: Backport [836f93de99b35050d78d61d3654f7c5655184144]
17Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
18---
19 hw/xwayland/Makefile.am | 6 +++++-
20 1 file changed, 5 insertions(+), 1 deletion(-)
21
22diff --git a/hw/xwayland/Makefile.am b/hw/xwayland/Makefile.am
23index bc1cb8506..502879e2a 100644
24--- a/hw/xwayland/Makefile.am
25+++ b/hw/xwayland/Makefile.am
26@@ -21,10 +21,14 @@ Xwayland_SOURCES = \
27 $(top_srcdir)/Xi/stubs.c \
28 $(top_srcdir)/mi/miinitext.c
29
30+if GLX
31+GLXVND_LIB = $(top_builddir)/glx/libglxvnd.la
32+endif
33+
34 Xwayland_LDADD = \
35 $(glamor_lib) \
36 $(XWAYLAND_LIBS) \
37- $(top_builddir)/glx/libglxvnd.la \
38+ $(GLXVND_LIB) \
39 $(XWAYLAND_SYS_LIBS) \
40 $(top_builddir)/Xext/libXvidmode.la \
41 $(XSERVER_SYS_LIBS)
42--
432.17.1
44
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch
deleted file mode 100644
index 6e140eaa..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch
+++ /dev/null
@@ -1,49 +0,0 @@
1From a99ff39b3b6095a16977fbb13b2b453a7359850f Mon Sep 17 00:00:00 2001
2From: Xianzhong <xianzhong.li@nxp.com>
3Date: Mon, 11 Jan 2021 11:53:29 +0800
4Subject: [PATCH] prefer to use GLES2 for glamor EGL config
5
6created the initial patch for xorg/xserver 1.20.8
7
8Upstream-Status: Pending
9Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
10---
11 hw/xwayland/xwayland-glamor-gbm.c | 13 ++++---------
12 1 file changed, 4 insertions(+), 9 deletions(-)
13
14diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
15index dce782fc3..1fdf45490 100644
16--- a/hw/xwayland/xwayland-glamor-gbm.c
17+++ b/hw/xwayland/xwayland-glamor-gbm.c
18@@ -912,13 +912,8 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
19 struct xwl_gbm_private *xwl_gbm = xwl_gbm_get(xwl_screen);
20 EGLint major, minor;
21 Bool egl_initialized = FALSE;
22- static const EGLint config_attribs_core[] = {
23- EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR,
24- EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR,
25- EGL_CONTEXT_MAJOR_VERSION_KHR,
26- GLAMOR_GL_CORE_VER_MAJOR,
27- EGL_CONTEXT_MINOR_VERSION_KHR,
28- GLAMOR_GL_CORE_VER_MINOR,
29+ static const EGLint config_attribs_gles2[] = {
30+ EGL_CONTEXT_CLIENT_VERSION, 2,
31 EGL_NONE
32 };
33 const GLubyte *renderer;
34@@ -947,10 +942,10 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
35 goto error;
36 }
37
38- eglBindAPI(EGL_OPENGL_API);
39+ eglBindAPI(EGL_OPENGL_ES_API);
40
41 xwl_screen->egl_context = eglCreateContext(
42- xwl_screen->egl_display, NULL, EGL_NO_CONTEXT, config_attribs_core);
43+ xwl_screen->egl_display, NULL, EGL_NO_CONTEXT, config_attribs_gles2);
44 if (xwl_screen->egl_context == EGL_NO_CONTEXT) {
45 xwl_screen->egl_context = eglCreateContext(
46 xwl_screen->egl_display, NULL, EGL_NO_CONTEXT, NULL);
47--
482.17.1
49
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
deleted file mode 100644
index e0958558..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch
+++ /dev/null
@@ -1,47 +0,0 @@
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
deleted file mode 100644
index 78988373..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch
+++ /dev/null
@@ -1,116 +0,0 @@
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-Remove-check-for-useSIGIO-option.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0003-Remove-check-for-useSIGIO-option.patch
deleted file mode 100644
index beed6cb4..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0003-Remove-check-for-useSIGIO-option.patch
+++ /dev/null
@@ -1,47 +0,0 @@
1From cf407b16cd65ad6e26a9c8e5984e163409a5c0f7 Mon Sep 17 00:00:00 2001
2From: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
3Date: Mon, 30 Jan 2017 16:32:06 -0600
4Subject: [PATCH] Remove check for useSIGIO option
5
6Commit 6a5a4e60373c1386b311b2a8bb666c32d68a9d99 removes the configure of useSIGIO
7option.
8
9As the xfree86 SIGIO support is reworked to use internal versions of OsBlockSIGIO
10and OsReleaseSIGIO.
11
12No longer the check for useSIGIO is needed
13
14Upstream-Status: Pending
15
16Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
17---
18 hw/xfree86/os-support/shared/sigio.c | 6 ------
19 1 file changed, 6 deletions(-)
20
21diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
22index 884a71c..be76498 100644
23--- a/hw/xfree86/os-support/shared/sigio.c
24+++ b/hw/xfree86/os-support/shared/sigio.c
25@@ -185,9 +185,6 @@ xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), void *closure)
26 int i;
27 int installed = FALSE;
28
29- if (!xf86Info.useSIGIO)
30- return 0;
31-
32 for (i = 0; i < MAX_FUNCS; i++) {
33 if (!xf86SigIOFuncs[i].f) {
34 if (xf86IsPipe(fd))
35@@ -256,9 +253,6 @@ xf86RemoveSIGIOHandler(int fd)
36 int max;
37 int ret;
38
39- if (!xf86Info.useSIGIO)
40- return 0;
41-
42 max = 0;
43 ret = 0;
44 for (i = 0; i < MAX_FUNCS; i++) {
45--
462.7.4
47
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
deleted file mode 100644
index 855d1938..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch
+++ /dev/null
@@ -1,322 +0,0 @@
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
deleted file mode 100644
index c116576f..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch
+++ /dev/null
@@ -1,31 +0,0 @@
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
deleted file mode 100644
index 9a0aa7ab..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch
+++ /dev/null
@@ -1,132 +0,0 @@
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
deleted file mode 100644
index 66d2877c..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch
+++ /dev/null
@@ -1,265 +0,0 @@
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
deleted file mode 100644
index f2947f32..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
+++ /dev/null
@@ -1,287 +0,0 @@
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
deleted file mode 100644
index dd82340a..00000000
--- a/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch
+++ /dev/null
@@ -1,669 +0,0 @@
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 c956245b..161df049 100644
--- a/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
+++ b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
@@ -1,21 +1,6 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
2 2
3SRC_URI:append:use-mainline-bsp = " file://0001-Allow-to-enable-atomic-in-modesetting-DDX.patch" 3SRC_URI:append:use-mainline-bsp = " file://0001-Allow-to-enable-atomic-in-modesetting-DDX.patch"
4SRC_URI:append:imxgpu = " \
5 file://0003-Remove-check-for-useSIGIO-option.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 \
8 file://0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch \
9 file://0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch \
10 file://0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch \
11 file://0002-glamor-add-support-for-GL_RG.patch \
12 file://0003-glamor-add-support-for-NV12-in-Xv.patch \
13 file://0004-glamor-Remove-unused-format_for_pixmap-helper.patch \
14 file://0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch \
15 file://0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch \
16 file://0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch \
17 file://0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch \
18"
19 4
20IMX_OPENGL_PKGCONFIGS_REMOVE = "" 5IMX_OPENGL_PKGCONFIGS_REMOVE = ""
21IMX_OPENGL_PKGCONFIGS_REMOVE:imxgpu = "glamor" 6IMX_OPENGL_PKGCONFIGS_REMOVE:imxgpu = "glamor"
diff --git a/recipes-graphics/xwayland/xwayland_%.bbappend b/recipes-graphics/xwayland/xwayland_%.bbappend
index 69063121..f2141f4f 100644
--- a/recipes-graphics/xwayland/xwayland_%.bbappend
+++ b/recipes-graphics/xwayland/xwayland_%.bbappend
@@ -10,3 +10,10 @@ OPENGL_PKGCONFIGS_REMOVE_IMXGPU = ""
10OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx6-nxp-bsp = "glamor glx" 10OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx6-nxp-bsp = "glamor glx"
11OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx7-nxp-bsp = "glamor glx" 11OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx7-nxp-bsp = "glamor glx"
12OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx8-nxp-bsp = "glx" 12OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx8-nxp-bsp = "glx"
13
14
15# links with imx-gpu libs which are pre-built for glibc
16# gcompat will address it during runtime
17LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
18
19RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
diff --git a/recipes-kernel/linux/linux-fslc-imx/imx-nxp-bsp/defconfig b/recipes-kernel/linux/linux-fslc-imx/imx-nxp-bsp/defconfig
index 74dc82cb..85e72abc 100644
--- a/recipes-kernel/linux/linux-fslc-imx/imx-nxp-bsp/defconfig
+++ b/recipes-kernel/linux/linux-fslc-imx/imx-nxp-bsp/defconfig
@@ -1,101 +1,63 @@
1CONFIG_SYSVIPC=y 1CONFIG_SYSVIPC=y
2CONFIG_POSIX_MQUEUE=y 2CONFIG_POSIX_MQUEUE=y
3CONFIG_AUDIT=y 3CONFIG_NO_HZ=y
4CONFIG_NO_HZ_IDLE=y
5CONFIG_HIGH_RES_TIMERS=y 4CONFIG_HIGH_RES_TIMERS=y
6CONFIG_BPF_JIT=y
7CONFIG_PREEMPT=y 5CONFIG_PREEMPT=y
8CONFIG_IRQ_TIME_ACCOUNTING=y
9CONFIG_BSD_PROCESS_ACCT=y
10CONFIG_BSD_PROCESS_ACCT_V3=y
11CONFIG_IKCONFIG=y 6CONFIG_IKCONFIG=y
12CONFIG_IKCONFIG_PROC=y 7CONFIG_IKCONFIG_PROC=y
13CONFIG_NUMA_BALANCING=y 8CONFIG_LOG_BUF_SHIFT=18
9CONFIG_CGROUPS=y
14CONFIG_MEMCG=y 10CONFIG_MEMCG=y
15CONFIG_BLK_CGROUP=y
16CONFIG_CGROUP_PIDS=y 11CONFIG_CGROUP_PIDS=y
17CONFIG_CGROUP_FREEZER=y 12CONFIG_CGROUP_FREEZER=y
18CONFIG_CGROUP_HUGETLB=y
19CONFIG_CPUSETS=y
20CONFIG_CGROUP_DEVICE=y 13CONFIG_CGROUP_DEVICE=y
21CONFIG_CGROUP_CPUACCT=y 14CONFIG_NAMESPACES=y
22CONFIG_CGROUP_PERF=y
23CONFIG_USER_NS=y 15CONFIG_USER_NS=y
24CONFIG_SCHED_AUTOGROUP=y
25CONFIG_RELAY=y 16CONFIG_RELAY=y
26CONFIG_BLK_DEV_INITRD=y 17CONFIG_BLK_DEV_INITRD=y
18CONFIG_EXPERT=y
27CONFIG_KALLSYMS_ALL=y 19CONFIG_KALLSYMS_ALL=y
20CONFIG_PERF_EVENTS=y
21# CONFIG_SLUB_DEBUG is not set
28# CONFIG_COMPAT_BRK is not set 22# CONFIG_COMPAT_BRK is not set
29CONFIG_PROFILING=y
30CONFIG_ARCH_LAYERSCAPE=y
31CONFIG_ARCH_KEEMBAY=y
32CONFIG_ARCH_MXC=y 23CONFIG_ARCH_MXC=y
33CONFIG_ARCH_S32=y 24CONFIG_SOC_IMX6Q=y
34CONFIG_SOC_S32V234=y 25CONFIG_SOC_IMX6SL=y
35CONFIG_ARM64_VA_BITS_48=y 26CONFIG_SOC_IMX6SLL=y
36CONFIG_SCHED_MC=y 27CONFIG_SOC_IMX6SX=y
37CONFIG_SCHED_SMT=y 28CONFIG_SOC_IMX6UL=y
38CONFIG_NUMA=y 29CONFIG_SOC_IMX7D=y
39CONFIG_KEXEC=y 30CONFIG_SOC_IMX7ULP=y
40CONFIG_KEXEC_FILE=y 31CONFIG_SMP=y
41CONFIG_CRASH_DUMP=y 32CONFIG_VMSPLIT_2G=y
42CONFIG_XEN=y 33CONFIG_ARM_PSCI=y
34CONFIG_HIGHMEM=y
43CONFIG_FORCE_MAX_ZONEORDER=14 35CONFIG_FORCE_MAX_ZONEORDER=14
44CONFIG_COMPAT=y 36CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
45CONFIG_RANDOMIZE_BASE=y 37CONFIG_KEXEC=y
46CONFIG_PM_DEBUG=y
47CONFIG_PM_TEST_SUSPEND=y
48CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
49CONFIG_ENERGY_MODEL=y
50CONFIG_ARM_CPUIDLE=y
51CONFIG_ARM_PSCI_CPUIDLE=y
52CONFIG_CPU_FREQ=y 38CONFIG_CPU_FREQ=y
53CONFIG_CPU_FREQ_STAT=y 39CONFIG_CPU_FREQ_STAT=y
54CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y 40CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
55CONFIG_CPU_FREQ_GOV_POWERSAVE=y 41CONFIG_CPU_FREQ_GOV_POWERSAVE=y
56CONFIG_CPU_FREQ_GOV_USERSPACE=y 42CONFIG_CPU_FREQ_GOV_USERSPACE=y
57CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y 43CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
58CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
59CONFIG_CPUFREQ_DT=y 44CONFIG_CPUFREQ_DT=y
60CONFIG_ACPI_CPPC_CPUFREQ=m 45CONFIG_ARM_IMX6Q_CPUFREQ=y
61CONFIG_ARM_SCPI_CPUFREQ=y
62CONFIG_ARM_IMX_CPUFREQ_DT=y 46CONFIG_ARM_IMX_CPUFREQ_DT=y
63CONFIG_ARM_SCMI_CPUFREQ=y 47CONFIG_CPU_IDLE=y
64CONFIG_QORIQ_CPUFREQ=y 48CONFIG_ARM_CPUIDLE=y
65CONFIG_ARM_SCMI_PROTOCOL=y 49CONFIG_ARM_PSCI_CPUIDLE=y
66CONFIG_ARM_SCPI_PROTOCOL=y 50CONFIG_VFP=y
67CONFIG_QCOM_SCM=m 51CONFIG_NEON=y
68CONFIG_EFI_CAPSULE_LOADER=y 52CONFIG_PM_DEBUG=y
69CONFIG_IMX_DSP=y 53CONFIG_PM_TEST_SUSPEND=y
70CONFIG_IMX_SCU=y 54CONFIG_KPROBES=y
71CONFIG_IMX_SCU_PD=y
72CONFIG_ACPI=y
73CONFIG_ACPI_APEI=y
74CONFIG_ACPI_APEI_GHES=y
75CONFIG_ACPI_APEI_MEMORY_FAILURE=y
76CONFIG_ACPI_APEI_EINJ=y
77CONFIG_VIRTUALIZATION=y
78CONFIG_KVM=y
79CONFIG_ARM64_CRYPTO=y
80CONFIG_CRYPTO_SHA1_ARM64_CE=y
81CONFIG_CRYPTO_SHA2_ARM64_CE=y
82CONFIG_CRYPTO_SHA512_ARM64_CE=m
83CONFIG_CRYPTO_SHA3_ARM64=m
84CONFIG_CRYPTO_SM3_ARM64_CE=m
85CONFIG_CRYPTO_GHASH_ARM64_CE=y
86CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
87CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
88CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
89CONFIG_CRYPTO_CHACHA20_NEON=m
90CONFIG_CRYPTO_AES_ARM64_BS=m
91CONFIG_JUMP_LABEL=y
92CONFIG_MODULES=y 55CONFIG_MODULES=y
93CONFIG_MODULE_UNLOAD=y 56CONFIG_MODULE_UNLOAD=y
94CONFIG_MODVERSIONS=y 57CONFIG_MODVERSIONS=y
95# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 58CONFIG_MODULE_SRCVERSION_ALL=y
96CONFIG_KSM=y 59CONFIG_BINFMT_MISC=m
97CONFIG_MEMORY_FAILURE=y 60CONFIG_CMA=y
98CONFIG_TRANSPARENT_HUGEPAGE=y
99CONFIG_NET=y 61CONFIG_NET=y
100CONFIG_PACKET=y 62CONFIG_PACKET=y
101CONFIG_UNIX=y 63CONFIG_UNIX=y
@@ -103,55 +65,11 @@ CONFIG_INET=y
103CONFIG_IP_MULTICAST=y 65CONFIG_IP_MULTICAST=y
104CONFIG_IP_PNP=y 66CONFIG_IP_PNP=y
105CONFIG_IP_PNP_DHCP=y 67CONFIG_IP_PNP_DHCP=y
106CONFIG_IP_PNP_BOOTP=y
107CONFIG_IPV6_SIT=m
108CONFIG_NETFILTER=y 68CONFIG_NETFILTER=y
109CONFIG_NF_CONNTRACK=m
110CONFIG_NF_CONNTRACK_EVENTS=y
111CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
112CONFIG_NETFILTER_XT_TARGET_LOG=m
113CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
114CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
115CONFIG_IP_NF_IPTABLES=m
116CONFIG_IP_NF_FILTER=m
117CONFIG_IP_NF_TARGET_REJECT=m
118CONFIG_IP_NF_NAT=m
119CONFIG_IP_NF_TARGET_MASQUERADE=m
120CONFIG_IP_NF_MANGLE=m
121CONFIG_IP6_NF_IPTABLES=m
122CONFIG_IP6_NF_FILTER=m
123CONFIG_IP6_NF_TARGET_REJECT=m
124CONFIG_IP6_NF_MANGLE=m
125CONFIG_IP6_NF_NAT=m
126CONFIG_IP6_NF_TARGET_MASQUERADE=m
127CONFIG_BRIDGE=y
128CONFIG_BRIDGE_VLAN_FILTERING=y
129CONFIG_NET_DSA=m
130CONFIG_VLAN_8021Q=m 69CONFIG_VLAN_8021Q=m
131CONFIG_VLAN_8021Q_GVRP=y
132CONFIG_VLAN_8021Q_MVRP=y
133CONFIG_LLC2=y 70CONFIG_LLC2=y
134CONFIG_NET_SCHED=y 71CONFIG_CAN=y
135CONFIG_NET_SCH_MULTIQ=m 72CONFIG_CAN_FLEXCAN=y
136CONFIG_NET_SCH_CBS=m
137CONFIG_NET_SCH_ETF=m
138CONFIG_NET_SCH_TAPRIO=m
139CONFIG_NET_SCH_MQPRIO=m
140CONFIG_NET_SCH_INGRESS=m
141CONFIG_NET_CLS_BASIC=m
142CONFIG_NET_CLS_TCINDEX=m
143CONFIG_NET_CLS_FLOWER=m
144CONFIG_NET_CLS_ACT=y
145CONFIG_NET_ACT_GACT=m
146CONFIG_NET_ACT_MIRRED=m
147CONFIG_NET_ACT_GATE=m
148CONFIG_TSN=y
149CONFIG_QRTR=m
150CONFIG_QRTR_SMD=m
151CONFIG_QRTR_TUN=m
152CONFIG_NET_PKTGEN=m
153CONFIG_CAN=m
154CONFIG_CAN_FLEXCAN=m
155CONFIG_BT=y 73CONFIG_BT=y
156CONFIG_BT_RFCOMM=y 74CONFIG_BT_RFCOMM=y
157CONFIG_BT_RFCOMM_TTY=y 75CONFIG_BT_RFCOMM_TTY=y
@@ -159,64 +77,38 @@ CONFIG_BT_BNEP=y
159CONFIG_BT_BNEP_MC_FILTER=y 77CONFIG_BT_BNEP_MC_FILTER=y
160CONFIG_BT_BNEP_PROTO_FILTER=y 78CONFIG_BT_BNEP_PROTO_FILTER=y
161CONFIG_BT_HIDP=y 79CONFIG_BT_HIDP=y
162CONFIG_BT_LEDS=y 80CONFIG_BT_HCIBTUSB=y
163# CONFIG_BT_DEBUGFS is not set
164CONFIG_BT_HCIBTUSB=m
165CONFIG_BT_HCIUART=y 81CONFIG_BT_HCIUART=y
166CONFIG_BT_HCIUART_BCSP=y 82CONFIG_BT_HCIUART_BCSP=y
167CONFIG_BT_HCIUART_ATH3K=y
168CONFIG_BT_HCIUART_LL=y 83CONFIG_BT_HCIUART_LL=y
169CONFIG_BT_HCIUART_3WIRE=y 84CONFIG_BT_HCIUART_3WIRE=y
170CONFIG_BT_HCIUART_BCM=y 85CONFIG_BT_HCIUART_MRVL=y
171CONFIG_BT_HCIUART_QCA=y
172CONFIG_BT_HCIVHCI=y 86CONFIG_BT_HCIVHCI=y
87CONFIG_BT_MRVL=y
88CONFIG_BT_MRVL_SDIO=y
173CONFIG_CFG80211=y 89CONFIG_CFG80211=y
174CONFIG_NL80211_TESTMODE=y 90CONFIG_NL80211_TESTMODE=y
175CONFIG_CFG80211_WEXT=y 91CONFIG_CFG80211_WEXT=y
176CONFIG_MAC80211=y 92CONFIG_MAC80211=y
177CONFIG_MAC80211_LEDS=y
178CONFIG_NET_9P=y
179CONFIG_NET_9P_VIRTIO=y
180CONFIG_NFC=m
181CONFIG_NFC_NCI=m
182CONFIG_NFC_S3FWRN5_I2C=m
183CONFIG_PCI=y 93CONFIG_PCI=y
184CONFIG_PCIEPORTBUS=y 94CONFIG_PCI_MSI=y
185CONFIG_PCI_IOV=y
186CONFIG_PCI_PASID=y
187CONFIG_HOTPLUG_PCI=y
188CONFIG_HOTPLUG_PCI_ACPI=y
189CONFIG_PCI_HOST_GENERIC=y
190CONFIG_PCI_XGENE=y
191CONFIG_PCIE_ALTERA=y
192CONFIG_PCIE_ALTERA_MSI=y
193CONFIG_PCI_HOST_THUNDER_PEM=y
194CONFIG_PCI_HOST_THUNDER_ECAM=y
195CONFIG_PCI_IMX6_HOST=y 95CONFIG_PCI_IMX6_HOST=y
196CONFIG_PCI_IMX6_EP=y 96CONFIG_PCI_IMX6_EP=y
197CONFIG_PCI_LAYERSCAPE=y
198CONFIG_PCI_HISI=y
199CONFIG_PCIE_KIRIN=y
200CONFIG_PCI_MESON=m
201CONFIG_PCIE_LAYERSCAPE_GEN4=y
202CONFIG_PCI_ENDPOINT=y 97CONFIG_PCI_ENDPOINT=y
203CONFIG_PCI_ENDPOINT_CONFIGFS=y 98CONFIG_PCI_ENDPOINT_CONFIGFS=y
204CONFIG_PCI_EPF_TEST=y 99CONFIG_PCI_EPF_TEST=y
205CONFIG_DEVTMPFS=y 100CONFIG_DEVTMPFS=y
206CONFIG_DEVTMPFS_MOUNT=y 101CONFIG_DEVTMPFS_MOUNT=y
102# CONFIG_STANDALONE is not set
207CONFIG_FW_LOADER_USER_HELPER=y 103CONFIG_FW_LOADER_USER_HELPER=y
208CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y 104CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
209CONFIG_BRCMSTB_GISB_ARB=y 105CONFIG_IMX_WEIM=y
210CONFIG_SIMPLE_PM_BUS=y 106CONFIG_CONNECTOR=y
211CONFIG_VEXPRESS_CONFIG=y
212CONFIG_FSL_MC_UAPI_SUPPORT=y
213CONFIG_GNSS=m
214CONFIG_GNSS_MTK_SERIAL=m
215CONFIG_MTD=y 107CONFIG_MTD=y
216CONFIG_MTD_CMDLINE_PARTS=y 108CONFIG_MTD_CMDLINE_PARTS=y
217CONFIG_MTD_BLOCK=y 109CONFIG_MTD_BLOCK=y
218CONFIG_MTD_CFI=y 110CONFIG_MTD_CFI=y
219CONFIG_MTD_CFI_ADV_OPTIONS=y 111CONFIG_MTD_JEDECPROBE=y
220CONFIG_MTD_CFI_INTELEXT=y 112CONFIG_MTD_CFI_INTELEXT=y
221CONFIG_MTD_CFI_AMDSTD=y 113CONFIG_MTD_CFI_AMDSTD=y
222CONFIG_MTD_CFI_STAA=y 114CONFIG_MTD_CFI_STAA=y
@@ -225,504 +117,273 @@ CONFIG_MTD_PHYSMAP_OF=y
225CONFIG_MTD_DATAFLASH=y 117CONFIG_MTD_DATAFLASH=y
226CONFIG_MTD_SST25L=y 118CONFIG_MTD_SST25L=y
227CONFIG_MTD_RAW_NAND=y 119CONFIG_MTD_RAW_NAND=y
228CONFIG_MTD_NAND_DENALI_DT=y
229CONFIG_MTD_NAND_GPMI_NAND=y 120CONFIG_MTD_NAND_GPMI_NAND=y
230CONFIG_MTD_NAND_FSL_IFC=y 121CONFIG_MTD_NAND_MXC=y
231CONFIG_MTD_SPI_NOR=y 122CONFIG_MTD_SPI_NOR=y
232# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set 123# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
233CONFIG_MTD_UBI=y 124CONFIG_MTD_UBI=y
125CONFIG_MTD_UBI_FASTMAP=y
126CONFIG_MTD_UBI_BLOCK=y
127CONFIG_OF_OVERLAY=y
234CONFIG_BLK_DEV_LOOP=y 128CONFIG_BLK_DEV_LOOP=y
235CONFIG_BLK_DEV_NBD=m 129CONFIG_BLK_DEV_RAM=y
236CONFIG_XEN_BLKDEV_BACKEND=m 130CONFIG_BLK_DEV_RAM_SIZE=65536
237CONFIG_VIRTIO_BLK=y
238CONFIG_BLK_DEV_NVME=y
239CONFIG_SRAM=y
240CONFIG_PCI_ENDPOINT_TEST=y 131CONFIG_PCI_ENDPOINT_TEST=y
241CONFIG_EEPROM_AT24=m 132CONFIG_EEPROM_AT24=y
242CONFIG_EEPROM_AT25=m 133CONFIG_EEPROM_AT25=y
243CONFIG_UACCE=m
244# CONFIG_SCSI_PROC_FS is not set 134# CONFIG_SCSI_PROC_FS is not set
245CONFIG_BLK_DEV_SD=y 135CONFIG_BLK_DEV_SD=y
246CONFIG_SCSI_SAS_ATA=y 136# CONFIG_BLK_DEV_BSG is not set
247CONFIG_SCSI_HISI_SAS=y 137CONFIG_SCSI_CONSTANTS=y
248CONFIG_SCSI_HISI_SAS_PCI=y 138CONFIG_SCSI_LOGGING=y
249CONFIG_MEGARAID_SAS=y 139CONFIG_SCSI_SCAN_ASYNC=y
250CONFIG_SCSI_MPT3SAS=m
251CONFIG_SCSI_UFSHCD=y
252CONFIG_SCSI_UFSHCD_PLATFORM=y
253CONFIG_ATA=y 140CONFIG_ATA=y
254CONFIG_SATA_AHCI=y
255CONFIG_SATA_AHCI_PLATFORM=y 141CONFIG_SATA_AHCI_PLATFORM=y
256CONFIG_AHCI_IMX=y 142CONFIG_AHCI_IMX=y
257CONFIG_AHCI_CEVA=y 143CONFIG_PATA_IMX=y
258CONFIG_AHCI_XGENE=y
259CONFIG_AHCI_QORIQ=y
260CONFIG_SATA_SIL24=y
261CONFIG_PATA_PLATFORM=y
262CONFIG_PATA_OF_PLATFORM=y
263CONFIG_MD=y 144CONFIG_MD=y
264CONFIG_BLK_DEV_MD=m 145CONFIG_BLK_DEV_MD=m
265CONFIG_BLK_DEV_DM=m 146CONFIG_BLK_DEV_DM=m
266CONFIG_DM_CRYPT=m 147CONFIG_DM_CRYPT=m
267CONFIG_DM_MIRROR=m
268CONFIG_DM_ZERO=m
269CONFIG_NETDEVICES=y 148CONFIG_NETDEVICES=y
270CONFIG_MACVLAN=m
271CONFIG_MACVTAP=m
272CONFIG_TUN=y 149CONFIG_TUN=y
273CONFIG_VETH=m 150# CONFIG_NET_VENDOR_BROADCOM is not set
274CONFIG_VIRTIO_NET=y 151CONFIG_CS89x0_PLATFORM=y
275CONFIG_NET_DSA_MSCC_FELIX=m 152# CONFIG_NET_VENDOR_FARADAY is not set
276CONFIG_AMD_XGBE=y 153# CONFIG_NET_VENDOR_INTEL is not set
277CONFIG_ATL1C=m 154# CONFIG_NET_VENDOR_MARVELL is not set
278CONFIG_BCMGENET=m 155# CONFIG_NET_VENDOR_MICREL is not set
279CONFIG_BNX2X=m 156# CONFIG_NET_VENDOR_MICROCHIP is not set
280CONFIG_MACB=y 157# CONFIG_NET_VENDOR_NATSEMI is not set
281CONFIG_THUNDER_NIC_PF=y 158# CONFIG_NET_VENDOR_SEEQ is not set
282CONFIG_FEC=y
283CONFIG_FEC_UIO=y
284CONFIG_FSL_FMAN=y
285CONFIG_FSL_DPAA_ETH=y
286CONFIG_FSL_DPAA2_ETH=y
287CONFIG_FSL_DPAA2_MAC=y
288CONFIG_FSL_DPAA2_SWITCH=y
289CONFIG_FSL_ENETC=y
290CONFIG_FSL_ENETC_VF=y
291CONFIG_FSL_ENETC_QOS=y
292CONFIG_ENETC_TSN=y
293CONFIG_HIX5HD2_GMAC=y
294CONFIG_HNS_DSAF=y
295CONFIG_HNS_ENET=y
296CONFIG_HNS3=y
297CONFIG_HNS3_HCLGE=y
298CONFIG_HNS3_ENET=y
299CONFIG_E1000=y
300CONFIG_E1000E=y
301CONFIG_IGB=y
302CONFIG_IGBVF=y
303CONFIG_MVMDIO=y
304CONFIG_SKY2=y
305CONFIG_MLX4_EN=m
306CONFIG_MLX5_CORE=m
307CONFIG_MLX5_CORE_EN=y
308CONFIG_MSCC_OCELOT_SWITCH=y
309CONFIG_QCOM_EMAC=m
310CONFIG_RMNET=m
311CONFIG_SMC91X=y 159CONFIG_SMC91X=y
160CONFIG_SMC911X=y
312CONFIG_SMSC911X=y 161CONFIG_SMSC911X=y
313CONFIG_STMMAC_ETH=y 162# CONFIG_NET_VENDOR_STMICRO is not set
314CONFIG_DWMAC_GENERIC=m
315CONFIG_AQUANTIA_PHY=y
316CONFIG_BROADCOM_PHY=m
317CONFIG_BCM54140_PHY=m
318CONFIG_INPHI_PHY=y
319CONFIG_MARVELL_PHY=m
320CONFIG_MARVELL_10G_PHY=m
321CONFIG_MICREL_PHY=y 163CONFIG_MICREL_PHY=y
322CONFIG_MICROSEMI_PHY=y
323CONFIG_NXP_TJA11XX_PHY=y
324CONFIG_AT803X_PHY=y 164CONFIG_AT803X_PHY=y
325CONFIG_REALTEK_PHY=y
326CONFIG_ROCKCHIP_PHY=y
327CONFIG_VITESSE_PHY=y
328CONFIG_MDIO_BITBANG=y
329CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
330CONFIG_MDIO_BUS_MUX_MMIOREG=y
331CONFIG_USB_PEGASUS=m 165CONFIG_USB_PEGASUS=m
332CONFIG_USB_RTL8150=m 166CONFIG_USB_RTL8150=m
333CONFIG_USB_RTL8152=y 167CONFIG_USB_RTL8152=y
334CONFIG_USB_LAN78XX=m 168CONFIG_USB_LAN78XX=y
335CONFIG_USB_USBNET=y 169CONFIG_USB_USBNET=y
336CONFIG_USB_NET_AX8817X=m 170CONFIG_USB_NET_CDC_EEM=m
337CONFIG_USB_NET_AX88179_178A=m 171CONFIG_USB_NET_SMSC95XX=y
338CONFIG_USB_NET_CDCETHER=m 172CONFIG_USB_NET_MCS7830=y
339CONFIG_USB_NET_CDC_NCM=m 173CONFIG_ATH10K=m
340CONFIG_USB_NET_DM9601=m 174CONFIG_ATH10K_SDIO=m
341CONFIG_USB_NET_SR9800=m
342CONFIG_USB_NET_SMSC75XX=m
343CONFIG_USB_NET_SMSC95XX=m
344CONFIG_USB_NET_NET1080=m
345CONFIG_USB_NET_PLUSB=m
346CONFIG_USB_NET_MCS7830=m
347CONFIG_USB_NET_CDC_SUBSET=m
348CONFIG_USB_NET_ZAURUS=m
349CONFIG_HOSTAP=y 175CONFIG_HOSTAP=y
176CONFIG_WL12XX=m
350CONFIG_WL18XX=m 177CONFIG_WL18XX=m
351CONFIG_WLCORE_SDIO=m 178CONFIG_WLCORE_SDIO=m
352CONFIG_XEN_NETDEV_BACKEND=m 179# CONFIG_WILINK_PLATFORM_DATA is not set
353CONFIG_IVSHMEM_NET=y
354CONFIG_INPUT_EVDEV=y 180CONFIG_INPUT_EVDEV=y
355CONFIG_KEYBOARD_ADC=m 181CONFIG_INPUT_EVBUG=m
356CONFIG_KEYBOARD_GPIO=y 182CONFIG_KEYBOARD_GPIO=y
357CONFIG_KEYBOARD_RPMSG=y 183CONFIG_KEYBOARD_RPMSG=y
358CONFIG_KEYBOARD_SNVS_PWRKEY=y 184CONFIG_KEYBOARD_IMX=y
359CONFIG_KEYBOARD_IMX_SC_PWRKEY=y 185CONFIG_MOUSE_PS2=m
360CONFIG_KEYBOARD_CROS_EC=y 186CONFIG_MOUSE_PS2_ELANTECH=y
361CONFIG_INPUT_TOUCHSCREEN=y 187CONFIG_INPUT_TOUCHSCREEN=y
362CONFIG_TOUCHSCREEN_ATMEL_MXT=m 188CONFIG_TOUCHSCREEN_ADS7846=y
363CONFIG_TOUCHSCREEN_GOODIX=m 189CONFIG_TOUCHSCREEN_AD7879=y
364CONFIG_TOUCHSCREEN_EDT_FT5X06=m 190CONFIG_TOUCHSCREEN_AD7879_I2C=y
365CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_I2C=m 191CONFIG_TOUCHSCREEN_ATMEL_MXT=y
192CONFIG_TOUCHSCREEN_DA9052=y
193CONFIG_TOUCHSCREEN_EGALAX=y
194CONFIG_TOUCHSCREEN_ELAN_TS=y
195CONFIG_TOUCHSCREEN_GOODIX=y
196CONFIG_TOUCHSCREEN_ILI210X=y
197CONFIG_TOUCHSCREEN_MAX11801=y
198CONFIG_TOUCHSCREEN_IMX6UL_TSC=y
199CONFIG_TOUCHSCREEN_EDT_FT5X06=y
200CONFIG_TOUCHSCREEN_MC13783=y
201CONFIG_TOUCHSCREEN_TSC2004=y
202CONFIG_TOUCHSCREEN_TSC2007=y
203CONFIG_TOUCHSCREEN_STMPE=y
204CONFIG_TOUCHSCREEN_SX8654=y
205CONFIG_TOUCHSCREEN_COLIBRI_VF50=y
206CONFIG_TOUCHSCREEN_FTS=y
366CONFIG_INPUT_MISC=y 207CONFIG_INPUT_MISC=y
367CONFIG_INPUT_PWM_VIBRA=m 208CONFIG_INPUT_MMA8450=y
368# CONFIG_SERIO_SERPORT is not set 209CONFIG_SERIO_SERPORT=m
369CONFIG_SERIO_AMBAKMI=y 210# CONFIG_LEGACY_PTYS is not set
370CONFIG_LEGACY_PTY_COUNT=16
371CONFIG_SERIAL_8250=y
372CONFIG_SERIAL_8250_CONSOLE=y
373CONFIG_SERIAL_8250_EXTENDED=y
374CONFIG_SERIAL_8250_SHARE_IRQ=y
375CONFIG_SERIAL_8250_DW=y
376CONFIG_SERIAL_OF_PLATFORM=y
377CONFIG_SERIAL_AMBA_PL011=y
378CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
379CONFIG_SERIAL_IMX=y 211CONFIG_SERIAL_IMX=y
380CONFIG_SERIAL_IMX_CONSOLE=y 212CONFIG_SERIAL_IMX_CONSOLE=y
381CONFIG_SERIAL_XILINX_PS_UART=y
382CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
383CONFIG_SERIAL_FSL_LPUART=y 213CONFIG_SERIAL_FSL_LPUART=y
384CONFIG_SERIAL_FSL_LPUART_CONSOLE=y 214CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
385CONFIG_SERIAL_FSL_LINFLEXUART=y
386CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y
387CONFIG_SERIAL_DEV_BUS=y 215CONFIG_SERIAL_DEV_BUS=y
388CONFIG_VIRTIO_CONSOLE=y 216# CONFIG_I2C_COMPAT is not set
389CONFIG_IPMI_HANDLER=m
390CONFIG_IPMI_DEVICE_INTERFACE=m
391CONFIG_IPMI_SI=m
392CONFIG_TCG_TPM=y
393CONFIG_TCG_TIS_I2C_INFINEON=y
394CONFIG_I2C_CHARDEV=y 217CONFIG_I2C_CHARDEV=y
395CONFIG_I2C_MUX=y 218CONFIG_I2C_MUX=y
396CONFIG_I2C_MUX_PCA954x=y 219CONFIG_I2C_MUX_GPIO=y
397CONFIG_I2C_DESIGNWARE_PLATFORM=y 220# CONFIG_I2C_HELPER_AUTO is not set
398CONFIG_I2C_GPIO=m 221CONFIG_I2C_ALGOPCF=m
222CONFIG_I2C_ALGOPCA=m
223CONFIG_I2C_GPIO=y
399CONFIG_I2C_IMX=y 224CONFIG_I2C_IMX=y
400CONFIG_I2C_IMX_LPI2C=y 225CONFIG_I2C_IMX_LPI2C=y
401CONFIG_I2C_RK3X=y
402CONFIG_I2C_RPBUS=y
403CONFIG_I2C_CROS_EC_TUNNEL=y
404CONFIG_XEN_I2C_BACKEND=y
405CONFIG_I3C=y
406CONFIG_SVC_I3C_MASTER=y
407CONFIG_SPI=y 226CONFIG_SPI=y
408CONFIG_SPI_CADENCE_QUADSPI=y
409CONFIG_SPI_DESIGNWARE=m
410CONFIG_SPI_DW_DMA=y
411CONFIG_SPI_DW_MMIO=m
412CONFIG_SPI_FSL_LPSPI=y 227CONFIG_SPI_FSL_LPSPI=y
413CONFIG_SPI_FSL_QUADSPI=y 228CONFIG_SPI_FSL_QUADSPI=y
414CONFIG_SPI_NXP_FLEXSPI=y 229CONFIG_SPI_GPIO=y
415CONFIG_SPI_IMX=y 230CONFIG_SPI_IMX=y
416CONFIG_SPI_FSL_DSPI=y
417CONFIG_SPI_PL022=y
418CONFIG_SPI_ROCKCHIP=y
419CONFIG_SPI_SPIDEV=y 231CONFIG_SPI_SPIDEV=y
420CONFIG_SPI_SLAVE=y 232CONFIG_SPI_SLAVE=y
421CONFIG_SPI_SLAVE_TIME=y 233CONFIG_SPI_SLAVE_TIME=y
422CONFIG_SPI_SLAVE_SYSTEM_CONTROL=y 234CONFIG_SPI_SLAVE_SYSTEM_CONTROL=y
423CONFIG_SPMI=y 235CONFIG_GPIO_SYSFS=y
424CONFIG_PINCTRL_SINGLE=y 236CONFIG_GPIO_MXC=y
425CONFIG_PINCTRL_MAX77620=y 237CONFIG_GPIO_SIOX=m
426CONFIG_PINCTRL_IMX8MM=y
427CONFIG_PINCTRL_IMX8MN=y
428CONFIG_PINCTRL_IMX8MP=y
429CONFIG_PINCTRL_IMX8MQ=y
430CONFIG_PINCTRL_IMX8QM=y
431CONFIG_PINCTRL_IMX8QXP=y
432CONFIG_PINCTRL_IMX8DXL=y
433CONFIG_PINCTRL_IMX8ULP=y
434CONFIG_PINCTRL_S32V234=y
435CONFIG_GPIO_ALTERA=m
436CONFIG_GPIO_DWAPB=y
437CONFIG_GPIO_MB86S7X=y
438CONFIG_GPIO_MPC8XXX=y
439CONFIG_GPIO_PL061=y
440CONFIG_GPIO_IMX_RPMSG=y 238CONFIG_GPIO_IMX_RPMSG=y
441CONFIG_GPIO_WCD934X=m
442CONFIG_GPIO_XGENE=y
443CONFIG_GPIO_MAX732X=y 239CONFIG_GPIO_MAX732X=y
444CONFIG_GPIO_PCA953X=y 240CONFIG_GPIO_PCA953X=y
445CONFIG_GPIO_PCA953X_IRQ=y 241CONFIG_GPIO_PCF857X=y
446CONFIG_GPIO_BD9571MWV=m 242CONFIG_GPIO_STMPE=y
447CONFIG_GPIO_MAX77620=y 243CONFIG_GPIO_74X164=y
448CONFIG_GPIO_SL28CPLD=m 244CONFIG_POWER_RESET=y
449CONFIG_POWER_RESET_BRCMSTB=y
450CONFIG_POWER_RESET_XGENE=y
451CONFIG_POWER_RESET_SYSCON=y 245CONFIG_POWER_RESET_SYSCON=y
452CONFIG_SYSCON_REBOOT_MODE=y 246CONFIG_POWER_RESET_SYSCON_POWEROFF=y
453CONFIG_BATTERY_SBS=m 247CONFIG_POWER_SUPPLY=y
454CONFIG_BATTERY_BQ27XXX=y 248CONFIG_SABRESD_MAX8903=y
455CONFIG_BATTERY_MAX17042=m 249CONFIG_RN5T618_POWER=m
456CONFIG_CHARGER_BQ25890=m 250CONFIG_SENSORS_MC13783_ADC=y
457CONFIG_CHARGER_BQ25980=m 251CONFIG_SENSORS_GPIO_FAN=y
458CONFIG_SENSORS_ARM_SCMI=y 252CONFIG_SENSORS_IIO_HWMON=y
459CONFIG_SENSORS_ARM_SCPI=y 253CONFIG_SENSORS_MAX17135=y
460CONFIG_SENSORS_FP9931=y 254CONFIG_THERMAL=y
461CONFIG_SENSORS_LM90=m 255CONFIG_THERMAL_STATISTICS=y
462CONFIG_SENSORS_PWM_FAN=m
463CONFIG_SENSORS_SL28CPLD=m
464CONFIG_SENSORS_INA2XX=m
465CONFIG_SENSORS_INA3221=m
466CONFIG_THERMAL_WRITABLE_TRIPS=y 256CONFIG_THERMAL_WRITABLE_TRIPS=y
467CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
468CONFIG_CPU_THERMAL=y 257CONFIG_CPU_THERMAL=y
469CONFIG_THERMAL_EMULATION=y 258CONFIG_IMX_THERMAL=y
470CONFIG_IMX_SC_THERMAL=y
471CONFIG_IMX8MM_THERMAL=y
472CONFIG_DEVICE_THERMAL=y 259CONFIG_DEVICE_THERMAL=y
473CONFIG_QORIQ_THERMAL=y
474CONFIG_WATCHDOG=y 260CONFIG_WATCHDOG=y
475CONFIG_SL28CPLD_WATCHDOG=m 261CONFIG_DA9063_WATCHDOG=m
476CONFIG_ARM_SP805_WATCHDOG=y 262CONFIG_DA9062_WATCHDOG=y
477CONFIG_ARM_SBSA_WATCHDOG=y 263CONFIG_RN5T618_WATCHDOG=y
478CONFIG_DW_WATCHDOG=y
479CONFIG_IMX2_WDT=y 264CONFIG_IMX2_WDT=y
480CONFIG_IMX_SC_WDT=y
481CONFIG_IMX7ULP_WDT=y 265CONFIG_IMX7ULP_WDT=y
482CONFIG_ARM_SMC_WATCHDOG=y 266CONFIG_MFD_DA9052_I2C=y
483CONFIG_XEN_WDT=y 267CONFIG_MFD_DA9062=y
484CONFIG_MFD_BD9571MWV=y 268CONFIG_MFD_DA9063=y
485CONFIG_MFD_AXP20X_I2C=y 269CONFIG_MFD_MC13XXX_SPI=y
486CONFIG_MFD_IMX_MIX=y 270CONFIG_MFD_MC13XXX_I2C=y
487CONFIG_MFD_HI6421_PMIC=y 271CONFIG_MFD_MAX17135=y
488CONFIG_MFD_FP9931=y 272CONFIG_MFD_RN5T618=y
489CONFIG_MFD_MAX77620=y 273CONFIG_MFD_SI476X_CORE=y
490CONFIG_MFD_MT6397=y 274CONFIG_MFD_STMPE=y
491CONFIG_MFD_RK808=y 275CONFIG_REGULATOR=y
492CONFIG_MFD_SEC_CORE=y
493CONFIG_MFD_SL28CPLD=y
494CONFIG_MFD_ROHM_BD718XX=y
495CONFIG_MFD_WCD934X=m
496CONFIG_REGULATOR_FIXED_VOLTAGE=y 276CONFIG_REGULATOR_FIXED_VOLTAGE=y
497CONFIG_REGULATOR_AXP20X=y 277CONFIG_REGULATOR_ANATOP=y
498CONFIG_REGULATOR_BD718XX=y 278CONFIG_REGULATOR_DA9052=y
499CONFIG_REGULATOR_BD9571MWV=y 279CONFIG_REGULATOR_DA9062=y
500CONFIG_REGULATOR_FAN53555=y 280CONFIG_REGULATOR_DA9063=y
501CONFIG_REGULATOR_GPIO=y 281CONFIG_REGULATOR_GPIO=y
502CONFIG_REGULATOR_HI6421V530=y 282CONFIG_REGULATOR_LTC3676=y
503CONFIG_REGULATOR_MAX77620=y 283CONFIG_REGULATOR_MAX17135=y
504CONFIG_REGULATOR_MAX8973=y 284CONFIG_REGULATOR_MC13783=y
505CONFIG_REGULATOR_FP9931=y 285CONFIG_REGULATOR_MC13892=y
506CONFIG_REGULATOR_MP8859=y 286CONFIG_REGULATOR_PF1550_RPMSG=y
507CONFIG_REGULATOR_MT6358=y
508CONFIG_REGULATOR_MT6397=y
509CONFIG_REGULATOR_PCA9450=y
510CONFIG_REGULATOR_PF8X00=y
511CONFIG_REGULATOR_PFUZE100=y 287CONFIG_REGULATOR_PFUZE100=y
512CONFIG_REGULATOR_PWM=y 288CONFIG_REGULATOR_RN5T618=y
513CONFIG_REGULATOR_QCOM_SPMI=y 289CONFIG_RC_CORE=y
514CONFIG_REGULATOR_RK808=y
515CONFIG_REGULATOR_S2MPS11=y
516CONFIG_REGULATOR_TPS65132=m
517CONFIG_REGULATOR_VCTRL=m
518CONFIG_RC_CORE=m
519CONFIG_RC_DECODERS=y
520CONFIG_IR_NEC_DECODER=m
521CONFIG_IR_RC5_DECODER=m
522CONFIG_IR_RC6_DECODER=m
523CONFIG_IR_JVC_DECODER=m
524CONFIG_IR_SONY_DECODER=m
525CONFIG_IR_SANYO_DECODER=m
526CONFIG_IR_SHARP_DECODER=m
527CONFIG_IR_MCE_KBD_DECODER=m
528CONFIG_IR_XMP_DECODER=m
529CONFIG_IR_IMON_DECODER=m
530CONFIG_IR_RCMM_DECODER=m
531CONFIG_RC_DEVICES=y 290CONFIG_RC_DEVICES=y
532CONFIG_IR_GPIO_CIR=m 291CONFIG_IR_GPIO_CIR=y
533CONFIG_MEDIA_SUPPORT=y 292CONFIG_MEDIA_SUPPORT=y
534CONFIG_MEDIA_CAMERA_SUPPORT=y
535CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
536CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
537CONFIG_MEDIA_SDR_SUPPORT=y
538CONFIG_MEDIA_PLATFORM_SUPPORT=y
539# CONFIG_DVB_NET is not set
540CONFIG_MEDIA_USB_SUPPORT=y 293CONFIG_MEDIA_USB_SUPPORT=y
541CONFIG_USB_VIDEO_CLASS=m 294CONFIG_USB_VIDEO_CLASS=m
295CONFIG_RADIO_SI476X=y
542CONFIG_V4L_PLATFORM_DRIVERS=y 296CONFIG_V4L_PLATFORM_DRIVERS=y
543CONFIG_VIDEO_MXC_CAPTURE=y 297CONFIG_VIDEO_MUX=y
544CONFIG_VIDEO_MX8_CAPTURE=y 298CONFIG_VIDEO_MXC_CAPTURE=m
545CONFIG_VIDEO_MXC_CSI_CAMERA=y 299CONFIG_VIDEO_MXC_OUTPUT=y
546CONFIG_MXC_MIPI_CSI=y 300CONFIG_VIDEO_MXC_CSI_CAMERA=m
547CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y 301CONFIG_MXC_VADC=m
302CONFIG_MXC_MIPI_CSI=m
303CONFIG_MXC_CAMERA_OV5640=m
304CONFIG_MXC_CAMERA_OV5640_V2=m
305CONFIG_MXC_CAMERA_OV5640_MIPI=m
306CONFIG_MXC_CAMERA_OV5640_MIPI_V2=m
307CONFIG_MXC_TVIN_ADV7180=m
308CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
309CONFIG_VIDEO_MXC_IPU_OUTPUT=y
310CONFIG_VIDEO_MXC_PXP_V4L2=y
548CONFIG_V4L_MEM2MEM_DRIVERS=y 311CONFIG_V4L_MEM2MEM_DRIVERS=y
549CONFIG_VIDEO_IMX8_JPEG=m 312CONFIG_VIDEO_CODA=m
550CONFIG_SDR_PLATFORM_DRIVERS=y 313CONFIG_VIDEO_IMX_PXP=y
551CONFIG_VIDEO_IMX219=m 314CONFIG_VIDEO_ADV7180=m
552CONFIG_VIDEO_OV5640=y 315CONFIG_VIDEO_OV2680=m
553CONFIG_VIDEO_OV5645=m 316CONFIG_VIDEO_OV5645=m
554CONFIG_IMX_DPU_CORE=y
555CONFIG_IMX_LCDIF_CORE=y
556CONFIG_IMX_LCDIFV3_CORE=y
557CONFIG_DRM=y 317CONFIG_DRM=y
558CONFIG_DRM_I2C_NXP_TDA998X=m 318CONFIG_DRM_PANEL_LVDS=y
559CONFIG_DRM_MALI_DISPLAY=m
560CONFIG_DRM_NOUVEAU=m
561CONFIG_DRM_RCAR_DW_HDMI=m
562CONFIG_DRM_RCAR_LVDS=m
563CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m
564CONFIG_DRM_PANEL_LVDS=m
565CONFIG_DRM_PANEL_SIMPLE=y 319CONFIG_DRM_PANEL_SIMPLE=y
566CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
567CONFIG_DRM_PANEL_RAYDIUM_RM67191=y
568CONFIG_DRM_PANEL_RAYDIUM_RM68200=y
569CONFIG_DRM_PANEL_ROCKTECK_HIMAX8394F=y
570CONFIG_DRM_PANEL_SEIKO_43WVF1G=y 320CONFIG_DRM_PANEL_SEIKO_43WVF1G=y
571CONFIG_DRM_PANEL_SITRONIX_ST7703=m 321CONFIG_DRM_TI_TFP410=y
572CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
573CONFIG_DRM_PANEL_WKS_101WX001=y
574CONFIG_DRM_DISPLAY_CONNECTOR=m
575CONFIG_DRM_LONTIUM_LT8912B=m
576CONFIG_DRM_LONTIUM_LT9611=m
577CONFIG_DRM_LONTIUM_LT9611UXC=m
578CONFIG_DRM_FSL_IMX_LVDS_BRIDGE=y
579CONFIG_DRM_NWL_MIPI_DSI=y
580CONFIG_DRM_NXP_SEIKO_43WVFIG=y
581CONFIG_DRM_PARADE_PS8640=m
582CONFIG_DRM_SII902X=m
583CONFIG_DRM_SIMPLE_BRIDGE=m
584CONFIG_DRM_THINE_THC63LVD1024=m
585CONFIG_DRM_TI_SN65DSI86=m
586CONFIG_DRM_I2C_ADV7511=y
587CONFIG_DRM_I2C_ADV7511_AUDIO=y
588CONFIG_DRM_CDNS_HDCP=y
589CONFIG_DRM_CDNS_HDMI_CEC=y
590CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
591CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
592CONFIG_DRM_DW_HDMI_GP_AUDIO=y
593CONFIG_DRM_DW_HDMI_CEC=m
594CONFIG_DRM_ITE_IT6263=y
595CONFIG_DRM_ITE_IT6161=y
596CONFIG_DRM_IMX=y
597CONFIG_DRM_IMX_LCDIF_MUX_DISPLAY=y
598CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
599CONFIG_DRM_IMX_TVE=y
600CONFIG_DRM_IMX_LDB=y
601CONFIG_DRM_IMX8QM_LDB=y
602CONFIG_DRM_IMX8QXP_LDB=y
603CONFIG_DRM_IMX8MP_LDB=y
604CONFIG_DRM_IMX_HDMI=y
605CONFIG_DRM_IMX_SEC_DSIM=y
606CONFIG_DRM_IMX_DCNANO=y
607CONFIG_DRM_IMX_DCSS=y
608CONFIG_DRM_IMX_CDNS_MHDP=y
609CONFIG_DRM_ETNAVIV=m
610CONFIG_DRM_HISI_HIBMC=m
611CONFIG_DRM_HISI_KIRIN=m
612CONFIG_DRM_MXSFB=y
613CONFIG_DRM_PL111=m
614CONFIG_DRM_LIMA=m
615CONFIG_DRM_PANFROST=m
616CONFIG_FB=y 322CONFIG_FB=y
617CONFIG_FB_ARMCLCD=y 323CONFIG_FB_MXS=y
618CONFIG_FB_EFI=y 324CONFIG_FB_MXC_SYNC_PANEL=y
325CONFIG_FB_MXC_OVERLAY=y
326CONFIG_FB_MXC_MIPI_DSI_NORTHWEST=y
327CONFIG_FB_MXC_ADV7535=y
328CONFIG_FB_MXC_TRULY_PANEL_TFT3P5581E=y
329CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
330CONFIG_FB_MXC_RK_PANEL_RK055AHD042=y
331CONFIG_FB_MXC_RK_PANEL_RK055IQH042=y
332CONFIG_FB_MXC_MIPI_DSI_SAMSUNG=y
333CONFIG_FB_MXC_MIPI_DSI=y
334CONFIG_FB_MXC_LDB=y
335CONFIG_FB_MXC_EINK_PANEL=y
619CONFIG_FB_MXC_EINK_V2_PANEL=y 336CONFIG_FB_MXC_EINK_V2_PANEL=y
337CONFIG_FB_MXC_HDMI=y
338CONFIG_FB_MXS_SII902X=y
339CONFIG_FB_MXC_DCIC=y
340CONFIG_LCD_CLASS_DEVICE=y
341CONFIG_LCD_L4F00242T03=y
342CONFIG_LCD_PLATFORM=y
620CONFIG_BACKLIGHT_PWM=y 343CONFIG_BACKLIGHT_PWM=y
621CONFIG_BACKLIGHT_LP855X=m 344CONFIG_BACKLIGHT_GPIO=y
345CONFIG_FRAMEBUFFER_CONSOLE=y
622CONFIG_LOGO=y 346CONFIG_LOGO=y
623# CONFIG_LOGO_LINUX_MONO is not set
624# CONFIG_LOGO_LINUX_VGA16 is not set
625CONFIG_SOUND=y 347CONFIG_SOUND=y
626CONFIG_SND=y 348CONFIG_SND=y
627CONFIG_SND_ALOOP=m
628CONFIG_SND_USB_AUDIO=m 349CONFIG_SND_USB_AUDIO=m
629CONFIG_SND_SOC=y 350CONFIG_SND_SOC=y
630CONFIG_SND_SOC_FSL_ASRC=m 351CONFIG_SND_SOC_FSL_ASRC=y
631CONFIG_SND_SOC_FSL_MQS=m 352CONFIG_SND_SOC_FSL_MQS=y
632CONFIG_SND_SOC_FSL_MICFIL=m 353CONFIG_SND_SOC_FSL_RPMSG=y
633CONFIG_SND_SOC_FSL_EASRC=m 354CONFIG_SND_IMX_SOC=y
634CONFIG_SND_SOC_FSL_XCVR=m 355CONFIG_SND_SOC_EUKREA_TLV320=y
635CONFIG_SND_SOC_FSL_ESAI_CLIENT=y 356CONFIG_SND_SOC_IMX_ES8328=y
636CONFIG_SND_SOC_FSL_RPMSG=m 357CONFIG_SND_SOC_IMX_SGTL5000=y
637CONFIG_SND_IMX_SOC=m 358CONFIG_SND_SOC_IMX_SPDIF=y
638CONFIG_SND_SOC_IMX_SGTL5000=m 359CONFIG_SND_SOC_FSL_ASOC_CARD=y
639CONFIG_SND_SOC_IMX_SPDIF=m 360CONFIG_SND_SOC_IMX_HDMI=y
640CONFIG_SND_SOC_FSL_ASOC_CARD=m 361CONFIG_SND_SOC_IMX6QDL_HDMI=y
641CONFIG_SND_SOC_IMX_AUDMIX=m 362CONFIG_SND_SOC_AC97_CODEC=y
642CONFIG_SND_SOC_IMX_HDMI=m
643CONFIG_SND_SOC_IMX_CARD=m
644CONFIG_SND_SOC_IMX_PDM_MIC=m
645CONFIG_SND_SOC_IMX_PCM512X=m
646CONFIG_SND_SOC_SOF_TOPLEVEL=y
647CONFIG_SND_SOC_SOF_OF=m
648CONFIG_SND_SOC_SOF_COMPRESS=y
649CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y
650CONFIG_SND_SOC_SOF_IMX8=m
651CONFIG_SND_SOC_SOF_IMX8M=m
652CONFIG_SND_SOC_SOF_IMX8ULP=m
653CONFIG_SND_SOC_AK4613=m
654CONFIG_SND_SOC_BT_SCO=y
655CONFIG_SND_SOC_CROS_EC_CODEC=m
656CONFIG_SND_SOC_CS42XX8_I2C=y 363CONFIG_SND_SOC_CS42XX8_I2C=y
657CONFIG_SND_SOC_DMIC=m 364CONFIG_SND_SOC_WM8960=y
658CONFIG_SND_SOC_ES7134=m 365CONFIG_SND_SOC_WM8962=y
659CONFIG_SND_SOC_ES7241=m 366CONFIG_SND_SOC_RPMSG_WM8960=y
660CONFIG_SND_SOC_GTM601=m
661CONFIG_SND_SOC_MAX98357A=m
662CONFIG_SND_SOC_MAX98927=m
663CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
664CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
665CONFIG_SND_SOC_PCM3168A_I2C=m
666CONFIG_SND_SOC_RT5659=m
667CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
668CONFIG_SND_SOC_SIMPLE_MUX=m
669CONFIG_SND_SOC_SPDIF=m
670CONFIG_SND_SOC_TAS571X=m
671CONFIG_SND_SOC_WCD934X=m
672CONFIG_SND_SOC_WM8524=y
673CONFIG_SND_SOC_WM8904=m
674CONFIG_SND_SOC_WM8960=m
675CONFIG_SND_SOC_WM8962=m
676CONFIG_SND_SOC_WSA881X=m
677CONFIG_SND_SOC_RPMSG_WM8960=m
678CONFIG_SND_SOC_RPMSG_AK4497=m
679CONFIG_SND_SOC_LPASS_WSA_MACRO=m
680CONFIG_SND_SOC_LPASS_VA_MACRO=m
681CONFIG_SND_SIMPLE_CARD=y 367CONFIG_SND_SIMPLE_CARD=y
682CONFIG_SND_AUDIO_GRAPH_CARD=y 368CONFIG_HID_MULTITOUCH=y
683CONFIG_HID_MULTITOUCH=m
684CONFIG_I2C_HID_ACPI=m
685CONFIG_I2C_HID_OF=m
686CONFIG_USB_CONN_GPIO=y
687CONFIG_USB=y 369CONFIG_USB=y
688CONFIG_USB_OTG=y 370CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
689CONFIG_USB_XHCI_HCD=y
690CONFIG_USB_XHCI_PCI_RENESAS=m
691CONFIG_USB_EHCI_HCD=y 371CONFIG_USB_EHCI_HCD=y
692CONFIG_USB_EHCI_HCD_PLATFORM=y
693CONFIG_USB_OHCI_HCD=y
694CONFIG_USB_OHCI_HCD_PLATFORM=y
695CONFIG_USB_HCD_TEST_MODE=y 372CONFIG_USB_HCD_TEST_MODE=y
696CONFIG_USB_ACM=m 373CONFIG_USB_ACM=m
697CONFIG_USB_STORAGE=y 374CONFIG_USB_STORAGE=y
698CONFIG_USB_UAS=y
699CONFIG_USB_CDNS_SUPPORT=y
700CONFIG_USB_CDNS3=y
701CONFIG_USB_CDNS3_GADGET=y
702CONFIG_USB_CDNS3_HOST=y
703CONFIG_USB_MUSB_HDRC=y
704CONFIG_USB_DWC3=y
705CONFIG_USB_DWC2=y
706CONFIG_USB_CHIPIDEA=y 375CONFIG_USB_CHIPIDEA=y
707CONFIG_USB_CHIPIDEA_UDC=y 376CONFIG_USB_CHIPIDEA_UDC=y
708CONFIG_USB_CHIPIDEA_HOST=y 377CONFIG_USB_CHIPIDEA_HOST=y
709CONFIG_USB_ISP1760=y 378CONFIG_USB_SERIAL=m
710CONFIG_USB_SERIAL=y
711CONFIG_USB_SERIAL_CONSOLE=y
712CONFIG_USB_SERIAL_GENERIC=y 379CONFIG_USB_SERIAL_GENERIC=y
713CONFIG_USB_SERIAL_SIMPLE=y 380CONFIG_USB_SERIAL_FTDI_SIO=m
714CONFIG_USB_SERIAL_CP210X=m
715CONFIG_USB_SERIAL_FTDI_SIO=y
716CONFIG_USB_SERIAL_OPTION=m 381CONFIG_USB_SERIAL_OPTION=m
717CONFIG_USB_TEST=m 382CONFIG_USB_TEST=m
718CONFIG_USB_EHSET_TEST_FIXTURE=y 383CONFIG_USB_EHSET_TEST_FIXTURE=m
719CONFIG_USB_HSIC_USB3503=y
720CONFIG_NOP_USB_XCEIV=y 384CONFIG_NOP_USB_XCEIV=y
721CONFIG_USB_MXS_PHY=y 385CONFIG_USB_MXS_PHY=y
722CONFIG_USB_ULPI=y
723CONFIG_USB_GADGET=y 386CONFIG_USB_GADGET=y
724CONFIG_USB_SNP_UDC_PLAT=y
725CONFIG_USB_BDC_UDC=y
726CONFIG_USB_CONFIGFS=y 387CONFIG_USB_CONFIGFS=y
727CONFIG_USB_CONFIGFS_SERIAL=y 388CONFIG_USB_CONFIGFS_SERIAL=y
728CONFIG_USB_CONFIGFS_ACM=y 389CONFIG_USB_CONFIGFS_ACM=y
@@ -736,253 +397,131 @@ CONFIG_USB_CONFIGFS_MASS_STORAGE=y
736CONFIG_USB_CONFIGFS_F_LB_SS=y 397CONFIG_USB_CONFIGFS_F_LB_SS=y
737CONFIG_USB_CONFIGFS_F_FS=y 398CONFIG_USB_CONFIGFS_F_FS=y
738CONFIG_USB_CONFIGFS_F_UAC1=y 399CONFIG_USB_CONFIGFS_F_UAC1=y
739CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
740CONFIG_USB_CONFIGFS_F_UAC2=y 400CONFIG_USB_CONFIGFS_F_UAC2=y
741CONFIG_USB_CONFIGFS_F_MIDI=y 401CONFIG_USB_CONFIGFS_F_MIDI=y
742CONFIG_USB_CONFIGFS_F_HID=y 402CONFIG_USB_CONFIGFS_F_HID=y
743CONFIG_USB_CONFIGFS_F_UVC=y 403CONFIG_USB_CONFIGFS_F_UVC=y
404CONFIG_USB_CONFIGFS_F_PRINTER=y
744CONFIG_USB_ZERO=m 405CONFIG_USB_ZERO=m
745CONFIG_USB_AUDIO=m 406CONFIG_USB_AUDIO=m
746CONFIG_USB_ETH=m 407CONFIG_USB_ETH=m
408CONFIG_USB_G_NCM=m
409CONFIG_USB_GADGETFS=m
410CONFIG_USB_FUNCTIONFS=m
747CONFIG_USB_MASS_STORAGE=m 411CONFIG_USB_MASS_STORAGE=m
748CONFIG_USB_G_SERIAL=m 412CONFIG_USB_G_SERIAL=m
749CONFIG_TYPEC=y
750CONFIG_TYPEC_TCPM=y
751CONFIG_TYPEC_TCPCI=y
752CONFIG_TYPEC_FUSB302=m
753CONFIG_TYPEC_TPS6598X=m
754CONFIG_TYPEC_HD3SS3220=m
755CONFIG_TYPEC_SWITCH_GPIO=y
756CONFIG_MMC=y 413CONFIG_MMC=y
757CONFIG_MMC_BLOCK_MINORS=32
758CONFIG_MMC_ARMMMCI=y
759CONFIG_MMC_SDHCI=y 414CONFIG_MMC_SDHCI=y
760CONFIG_MMC_SDHCI_ACPI=y
761CONFIG_MMC_SDHCI_PLTFM=y 415CONFIG_MMC_SDHCI_PLTFM=y
762CONFIG_MMC_SDHCI_OF_ARASAN=y
763CONFIG_MMC_SDHCI_OF_ESDHC=y
764CONFIG_MMC_SDHCI_CADENCE=y
765CONFIG_MMC_SDHCI_ESDHC_IMX=y 416CONFIG_MMC_SDHCI_ESDHC_IMX=y
766CONFIG_MMC_SDHCI_F_SDH30=y
767CONFIG_MMC_SPI=y
768CONFIG_MMC_DW=y
769CONFIG_MMC_DW_EXYNOS=y
770CONFIG_MMC_DW_HI3798CV200=y
771CONFIG_MMC_DW_K3=y
772CONFIG_MMC_MTK=y
773CONFIG_MMC_SDHCI_XENON=y
774CONFIG_MMC_SDHCI_AM654=y
775CONFIG_NEW_LEDS=y 417CONFIG_NEW_LEDS=y
776CONFIG_LEDS_CLASS=y 418CONFIG_LEDS_CLASS=y
777CONFIG_LEDS_LM3692X=m
778CONFIG_LEDS_PCA9532=m
779CONFIG_LEDS_GPIO=y 419CONFIG_LEDS_GPIO=y
780CONFIG_LEDS_PWM=y 420CONFIG_LEDS_PWM=y
781CONFIG_LEDS_SYSCON=y 421CONFIG_LEDS_TRIGGERS=y
782CONFIG_LEDS_TRIGGER_TIMER=y 422CONFIG_LEDS_TRIGGER_TIMER=y
783CONFIG_LEDS_TRIGGER_DISK=y 423CONFIG_LEDS_TRIGGER_ONESHOT=y
784CONFIG_LEDS_TRIGGER_HEARTBEAT=y 424CONFIG_LEDS_TRIGGER_HEARTBEAT=y
785CONFIG_LEDS_TRIGGER_CPU=y 425CONFIG_LEDS_TRIGGER_BACKLIGHT=y
426CONFIG_LEDS_TRIGGER_GPIO=y
786CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 427CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
787CONFIG_LEDS_TRIGGER_PANIC=y
788CONFIG_EDAC=y
789CONFIG_EDAC_GHES=y
790CONFIG_EDAC_LAYERSCAPE=m
791CONFIG_EDAC_SYNOPSYS=y
792CONFIG_RTC_CLASS=y 428CONFIG_RTC_CLASS=y
793CONFIG_RTC_DRV_DS1307=m 429CONFIG_RTC_INTF_DEV_UIE_EMUL=y
794CONFIG_RTC_DRV_HYM8563=m 430CONFIG_RTC_DRV_DS1307=y
795CONFIG_RTC_DRV_MAX77686=y 431CONFIG_RTC_DRV_ISL1208=y
796CONFIG_RTC_DRV_RK808=m 432CONFIG_RTC_DRV_PCF8523=y
797CONFIG_RTC_DRV_PCF85363=m 433CONFIG_RTC_DRV_PCF8563=y
798CONFIG_RTC_DRV_M41T80=m 434CONFIG_RTC_DRV_M41T80=y
799CONFIG_RTC_DRV_RX8581=m 435CONFIG_RTC_DRV_RC5T619=y
800CONFIG_RTC_DRV_RV3028=m 436CONFIG_RTC_DRV_DA9063=y
801CONFIG_RTC_DRV_RV8803=m 437CONFIG_RTC_DRV_MC13XXX=y
802CONFIG_RTC_DRV_S5M=y 438CONFIG_RTC_DRV_MXC=y
803CONFIG_RTC_DRV_DS3232=y 439CONFIG_RTC_DRV_MXC_V2=y
804CONFIG_RTC_DRV_PCF2127=m
805CONFIG_RTC_DRV_EFI=y
806CONFIG_RTC_DRV_CROS_EC=y
807CONFIG_RTC_DRV_FSL_FTM_ALARM=m
808CONFIG_RTC_DRV_PL031=y
809CONFIG_RTC_DRV_SNVS=y 440CONFIG_RTC_DRV_SNVS=y
810CONFIG_RTC_DRV_IMX_SC=y
811CONFIG_RTC_DRV_IMX_RPMSG=y 441CONFIG_RTC_DRV_IMX_RPMSG=y
812CONFIG_DMADEVICES=y 442CONFIG_DMADEVICES=y
813CONFIG_BCM_SBA_RAID=m
814CONFIG_FSL_EDMA=y 443CONFIG_FSL_EDMA=y
815CONFIG_FSL_QDMA=m
816CONFIG_FSL_EDMA_V3=y
817CONFIG_IMX_SDMA=y 444CONFIG_IMX_SDMA=y
818CONFIG_MV_XOR_V2=y
819CONFIG_MXS_DMA=y 445CONFIG_MXS_DMA=y
446CONFIG_MXC_PXP_V2=y
820CONFIG_MXC_PXP_V3=y 447CONFIG_MXC_PXP_V3=y
821CONFIG_PL330_DMA=y 448CONFIG_DMATEST=m
822CONFIG_QCOM_HIDMA_MGMT=y
823CONFIG_QCOM_HIDMA=y
824CONFIG_FSL_DPAA2_QDMA=m
825CONFIG_DMATEST=y
826CONFIG_DMABUF_HEAPS=y
827CONFIG_DMABUF_HEAPS_SYSTEM=y
828CONFIG_DMABUF_HEAPS_CMA=y
829CONFIG_DMABUF_HEAPS_DSP=y
830CONFIG_UIO_PCI_GENERIC=y
831CONFIG_UIO_IVSHMEM=y
832CONFIG_VFIO=y
833CONFIG_VFIO_PCI=y
834CONFIG_VFIO_FSL_MC=y
835CONFIG_VIRTIO_PCI=y
836CONFIG_VIRTIO_BALLOON=y
837CONFIG_VIRTIO_MMIO=y
838CONFIG_VIRTIO_IVSHMEM=y
839CONFIG_XEN_GNTDEV=y
840CONFIG_XEN_GRANT_DEV_ALLOC=y
841CONFIG_STAGING=y 449CONFIG_STAGING=y
842CONFIG_STAGING_MEDIA=y 450CONFIG_STAGING_MEDIA=y
843CONFIG_VIDEO_HANTRO=m
844CONFIG_VIDEO_IMX_CAPTURE=y
845CONFIG_IMX8_MEDIA_DEVICE=m
846CONFIG_MHDP_HDMIRX=y
847CONFIG_MHDP_HDMIRX_CEC=y
848CONFIG_FSL_DPAA2=y
849CONFIG_FSL_PPFE=y
850CONFIG_FSL_PPFE_UTIL_DISABLED=y
851CONFIG_CHROME_PLATFORMS=y
852CONFIG_CROS_EC=y
853CONFIG_CROS_EC_I2C=y
854CONFIG_CROS_EC_SPI=y
855CONFIG_CROS_EC_CHARDEV=m
856CONFIG_CLK_VEXPRESS_OSC=y
857CONFIG_COMMON_CLK_RK808=y
858CONFIG_COMMON_CLK_SCMI=y
859CONFIG_COMMON_CLK_SCPI=y
860CONFIG_COMMON_CLK_CS2000_CP=y
861CONFIG_COMMON_CLK_FSL_SAI=y
862CONFIG_COMMON_CLK_S2MPS11=y
863CONFIG_COMMON_CLK_XGENE=y
864CONFIG_COMMON_CLK_PWM=y 451CONFIG_COMMON_CLK_PWM=y
865CONFIG_COMMON_CLK_VC5=y
866CONFIG_CLK_IMX8MM=y
867CONFIG_CLK_IMX8MN=y
868CONFIG_CLK_IMX8MP=y
869CONFIG_CLK_IMX8MQ=y
870CONFIG_CLK_IMX8QXP=y
871CONFIG_CLK_IMX8ULP=y
872CONFIG_HWSPINLOCK=y
873CONFIG_ARM_MHU=y
874CONFIG_IMX_MBOX=y
875CONFIG_PLATFORM_MHU=y
876CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
877CONFIG_ARM_SMMU=y
878CONFIG_ARM_SMMU_V3=y
879CONFIG_REMOTEPROC=y 452CONFIG_REMOTEPROC=y
880CONFIG_IMX_REMOTEPROC=y 453CONFIG_IMX_REMOTEPROC=y
881CONFIG_IMX_DSP_REMOTEPROC=m
882CONFIG_RPMSG_CHAR=m
883CONFIG_RPMSG_QCOM_GLINK_RPM=y
884CONFIG_SOUNDWIRE=m
885CONFIG_SOUNDWIRE_QCOM=m
886CONFIG_SOC_BRCMSTB=y
887CONFIG_FSL_DPAA=y
888CONFIG_FSL_MC_DPIO=y
889CONFIG_FSL_RCPM=y
890CONFIG_FSL_QIXIS=y
891CONFIG_SOC_TI=y
892CONFIG_ARM_IMX_BUS_DEVFREQ=m
893CONFIG_ARM_IMX8M_DDRC_DEVFREQ=m
894CONFIG_EXTCON_PTN5150=m
895CONFIG_EXTCON_USB_GPIO=y 454CONFIG_EXTCON_USB_GPIO=y
896CONFIG_EXTCON_USBC_CROS_EC=y
897CONFIG_IIO=y 455CONFIG_IIO=y
898CONFIG_FXLS8962AF_I2C=m 456CONFIG_MMA8452=y
899CONFIG_IMX8QXP_ADC=y 457CONFIG_IMX7D_ADC=y
900CONFIG_MAX9611=m 458CONFIG_RN5T618_ADC=y
901CONFIG_QCOM_SPMI_VADC=m 459CONFIG_VF610_ADC=y
902CONFIG_QCOM_SPMI_ADC5=m
903CONFIG_IIO_CROS_EC_SENSORS_CORE=m
904CONFIG_IIO_CROS_EC_SENSORS=m
905CONFIG_FXAS21002C=y 460CONFIG_FXAS21002C=y
906CONFIG_FXOS8700_I2C=y 461CONFIG_FXOS8700_I2C=y
907CONFIG_RPMSG_IIO_PEDOMETER=m 462CONFIG_RPMSG_IIO_PEDOMETER=m
908CONFIG_IIO_ST_LSM6DSX=y
909CONFIG_IIO_CROS_EC_LIGHT_PROX=m
910CONFIG_SENSORS_ISL29018=y 463CONFIG_SENSORS_ISL29018=y
911CONFIG_VCNL4000=m 464CONFIG_MAG3110=y
912CONFIG_IIO_ST_MAGN_3AXIS=m
913CONFIG_IIO_CROS_EC_BARO=m
914CONFIG_MPL3115=y 465CONFIG_MPL3115=y
915CONFIG_PWM=y 466CONFIG_PWM=y
916CONFIG_PWM_CROS_EC=m 467CONFIG_PWM_FSL_FTM=y
917CONFIG_PWM_FSL_FTM=m
918CONFIG_PWM_IMX27=y 468CONFIG_PWM_IMX27=y
919CONFIG_PWM_RPCHIP=y 469CONFIG_PWM_IMX_TPM=y
920CONFIG_PWM_SL28CPLD=m
921CONFIG_SL28CPLD_INTC=y
922CONFIG_RESET_IMX7=y
923CONFIG_RESET_IMX8ULP_SIM=y
924CONFIG_PHY_XGENE=y
925CONFIG_PHY_MIXEL_LVDS=y 470CONFIG_PHY_MIXEL_LVDS=y
926CONFIG_PHY_MIXEL_LVDS_COMBO=y 471CONFIG_PHY_MIXEL_LVDS_COMBO=y
927CONFIG_PHY_CADENCE_SALVO=y
928CONFIG_PHY_FSL_IMX8MP_LVDS=y
929CONFIG_PHY_MIXEL_MIPI_DPHY=y
930CONFIG_PHY_SAMSUNG_HDMI_PHY=y
931CONFIG_PHY_QCOM_USB_HS=y
932CONFIG_PHY_SAMSUNG_USB2=y
933CONFIG_ARM_SMMU_V3_PMU=m
934CONFIG_FSL_IMX8_DDR_PMU=y
935CONFIG_HISI_PMU=y
936CONFIG_NVMEM_IMX_OCOTP=y 472CONFIG_NVMEM_IMX_OCOTP=y
937CONFIG_NVMEM_IMX_OCOTP_SCU=y 473CONFIG_NVMEM_SNVS_LPGPR=y
938CONFIG_NVMEM_RMEM=m
939CONFIG_FPGA=y
940CONFIG_FPGA_BRIDGE=m
941CONFIG_ALTERA_FREEZE_BRIDGE=m
942CONFIG_FPGA_REGION=m
943CONFIG_OF_FPGA_REGION=m
944CONFIG_TEE=y 474CONFIG_TEE=y
945CONFIG_OPTEE=y 475CONFIG_OPTEE=y
946CONFIG_MUX_MMIO=y 476CONFIG_MUX_MMIO=y
947CONFIG_SLIM_QCOM_CTRL=m 477CONFIG_SIOX=m
948CONFIG_INTERCONNECT=y 478CONFIG_SIOX_BUS_GPIO=m
949CONFIG_INTERCONNECT_IMX=m
950CONFIG_INTERCONNECT_IMX8MQ=m
951CONFIG_MXC_SIM=y 479CONFIG_MXC_SIM=y
952CONFIG_MXC_EMVSIM=y 480CONFIG_MXC_IPU=y
481CONFIG_MXC_SIMv2=y
482CONFIG_MXC_MLB150=y
483CONFIG_MXC_IPU_V3_PRE=y
484CONFIG_MXC_HDMI_CEC=y
485CONFIG_MXC_MIPI_CSI2=y
953CONFIG_EXT2_FS=y 486CONFIG_EXT2_FS=y
487CONFIG_EXT2_FS_XATTR=y
488CONFIG_EXT2_FS_POSIX_ACL=y
489CONFIG_EXT2_FS_SECURITY=y
954CONFIG_EXT3_FS=y 490CONFIG_EXT3_FS=y
955CONFIG_EXT4_FS_POSIX_ACL=y 491CONFIG_EXT3_FS_POSIX_ACL=y
956CONFIG_BTRFS_FS=m 492CONFIG_EXT3_FS_SECURITY=y
957CONFIG_BTRFS_FS_POSIX_ACL=y
958CONFIG_FANOTIFY=y
959CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
960CONFIG_QUOTA=y 493CONFIG_QUOTA=y
494CONFIG_QUOTA_NETLINK_INTERFACE=y
495# CONFIG_PRINT_QUOTA_WARNING is not set
961CONFIG_AUTOFS4_FS=y 496CONFIG_AUTOFS4_FS=y
962CONFIG_FUSE_FS=m 497CONFIG_FUSE_FS=y
963CONFIG_CUSE=m 498CONFIG_OVERLAY_FS=y
964CONFIG_OVERLAY_FS=m 499CONFIG_ISO9660_FS=m
500CONFIG_JOLIET=y
501CONFIG_ZISOFS=y
502CONFIG_UDF_FS=m
503CONFIG_MSDOS_FS=m
965CONFIG_VFAT_FS=y 504CONFIG_VFAT_FS=y
505CONFIG_TMPFS=y
966CONFIG_TMPFS_POSIX_ACL=y 506CONFIG_TMPFS_POSIX_ACL=y
967CONFIG_HUGETLBFS=y
968CONFIG_EFIVAR_FS=y
969CONFIG_JFFS2_FS=y 507CONFIG_JFFS2_FS=y
970CONFIG_UBIFS_FS=y 508CONFIG_UBIFS_FS=y
971CONFIG_SQUASHFS=y
972CONFIG_SQUASHFS_XZ=y
973CONFIG_NFS_FS=y 509CONFIG_NFS_FS=y
510CONFIG_NFS_V3_ACL=y
974CONFIG_NFS_V4=y 511CONFIG_NFS_V4=y
975CONFIG_NFS_V4_1=y 512CONFIG_NFS_V4_1=y
976CONFIG_NFS_V4_2=y 513CONFIG_NFS_V4_2=y
977CONFIG_ROOT_NFS=y 514CONFIG_ROOT_NFS=y
978CONFIG_9P_FS=y 515CONFIG_NLS_DEFAULT="cp437"
979CONFIG_NLS_CODEPAGE_437=y 516CONFIG_NLS_CODEPAGE_437=y
517CONFIG_NLS_ASCII=y
980CONFIG_NLS_ISO8859_1=y 518CONFIG_NLS_ISO8859_1=y
981CONFIG_SECURITY=y 519CONFIG_NLS_ISO8859_15=m
520CONFIG_NLS_UTF8=y
521CONFIG_SECURITYFS=y
982CONFIG_CRYPTO_USER=y 522CONFIG_CRYPTO_USER=y
983CONFIG_CRYPTO_TEST=m 523CONFIG_CRYPTO_TEST=m
984CONFIG_CRYPTO_CHACHA20POLY1305=m 524CONFIG_CRYPTO_ECHAINIV=m
985CONFIG_CRYPTO_ECHAINIV=y
986CONFIG_CRYPTO_TLS=m 525CONFIG_CRYPTO_TLS=m
987CONFIG_CRYPTO_CFB=m 526CONFIG_CRYPTO_CFB=m
988CONFIG_CRYPTO_CTS=m 527CONFIG_CRYPTO_CTS=m
@@ -991,9 +530,14 @@ CONFIG_CRYPTO_OFB=m
991CONFIG_CRYPTO_PCBC=m 530CONFIG_CRYPTO_PCBC=m
992CONFIG_CRYPTO_XCBC=m 531CONFIG_CRYPTO_XCBC=m
993CONFIG_CRYPTO_VMAC=m 532CONFIG_CRYPTO_VMAC=m
533CONFIG_CRYPTO_XXHASH=m
534CONFIG_CRYPTO_BLAKE2B=m
994CONFIG_CRYPTO_BLAKE2S=m 535CONFIG_CRYPTO_BLAKE2S=m
995CONFIG_CRYPTO_MD4=m 536CONFIG_CRYPTO_MD4=m
537CONFIG_CRYPTO_MD5=m
996CONFIG_CRYPTO_RMD160=m 538CONFIG_CRYPTO_RMD160=m
539CONFIG_CRYPTO_SHA3=m
540CONFIG_CRYPTO_SM3=m
997CONFIG_CRYPTO_STREEBOG=m 541CONFIG_CRYPTO_STREEBOG=m
998CONFIG_CRYPTO_WP512=m 542CONFIG_CRYPTO_WP512=m
999CONFIG_CRYPTO_ANUBIS=m 543CONFIG_CRYPTO_ANUBIS=m
@@ -1002,49 +546,42 @@ CONFIG_CRYPTO_BLOWFISH=m
1002CONFIG_CRYPTO_CAMELLIA=m 546CONFIG_CRYPTO_CAMELLIA=m
1003CONFIG_CRYPTO_CAST5=m 547CONFIG_CRYPTO_CAST5=m
1004CONFIG_CRYPTO_CAST6=m 548CONFIG_CRYPTO_CAST6=m
549CONFIG_CRYPTO_DES=m
1005CONFIG_CRYPTO_FCRYPT=m 550CONFIG_CRYPTO_FCRYPT=m
1006CONFIG_CRYPTO_KHAZAD=m 551CONFIG_CRYPTO_KHAZAD=m
1007CONFIG_CRYPTO_SEED=m 552CONFIG_CRYPTO_SEED=m
1008CONFIG_CRYPTO_SERPENT=m 553CONFIG_CRYPTO_SERPENT=m
554CONFIG_CRYPTO_SM4=m
1009CONFIG_CRYPTO_TEA=m 555CONFIG_CRYPTO_TEA=m
1010CONFIG_CRYPTO_TWOFISH=m 556CONFIG_CRYPTO_TWOFISH=m
1011CONFIG_CRYPTO_ANSI_CPRNG=y 557CONFIG_CRYPTO_ANSI_CPRNG=m
1012CONFIG_CRYPTO_USER_API_HASH=m
1013CONFIG_CRYPTO_USER_API_SKCIPHER=m
1014CONFIG_CRYPTO_USER_API_RNG=m 558CONFIG_CRYPTO_USER_API_RNG=m
1015CONFIG_CRYPTO_USER_API_AEAD=m
1016CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=m 559CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=m
1017CONFIG_CRYPTO_DEV_FSL_CAAM=m 560CONFIG_CRYPTO_DEV_FSL_CAAM=m
1018CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m 561CONFIG_CRYPTO_DEV_FSL_CAAM_SM_TEST=m
1019CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m 562CONFIG_CRYPTO_DEV_SAHARA=y
1020CONFIG_CRYPTO_DEV_CCREE=m 563CONFIG_CRYPTO_DEV_MXS_DCP=y
1021CONFIG_CRYPTO_DEV_HISI_SEC2=m
1022CONFIG_CRYPTO_DEV_HISI_ZIP=m
1023CONFIG_CRYPTO_DEV_HISI_HPRE=m
1024CONFIG_CRYPTO_DEV_HISI_TRNG=m
1025CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
1026CONFIG_INDIRECT_PIO=y
1027CONFIG_CRC_CCITT=m 564CONFIG_CRC_CCITT=m
1028CONFIG_CRC8=y 565CONFIG_CRC_T10DIF=y
1029CONFIG_CMA_SIZE_MBYTES=32 566CONFIG_CRC7=m
567CONFIG_LIBCRC32C=m
568CONFIG_DMA_CMA=y
569CONFIG_FONTS=y
570CONFIG_FONT_8x8=y
571CONFIG_FONT_8x16=y
1030CONFIG_PRINTK_TIME=y 572CONFIG_PRINTK_TIME=y
1031CONFIG_DEBUG_INFO=y 573# CONFIG_DEBUG_BUGVERBOSE is not set
1032CONFIG_DEBUG_INFO_REDUCED=y
1033CONFIG_MAGIC_SYSRQ=y 574CONFIG_MAGIC_SYSRQ=y
1034CONFIG_DEBUG_FS=y 575CONFIG_DEBUG_FS=y
1035CONFIG_DEBUG_KERNEL=y
1036# CONFIG_SCHED_DEBUG is not set 576# CONFIG_SCHED_DEBUG is not set
1037# CONFIG_DEBUG_PREEMPT is not set 577# CONFIG_DEBUG_PREEMPT is not set
1038# CONFIG_FTRACE is not set 578# CONFIG_FTRACE is not set
1039CONFIG_CORESIGHT=y 579
1040CONFIG_CORESIGHT_LINK_AND_SINK_TMC=y 580# enable AF_ALG
1041CONFIG_CORESIGHT_SOURCE_ETM4X=y 581CONFIG_CRYPTO_USER_API_HASH=m
1042CONFIG_MEMTEST=y 582CONFIG_CRYPTO_USER_API_SKCIPHER=m
583CONFIG_CRYPTO_USER_API_AEAD=m
584
585# enable KTLS
1043CONFIG_TLS=y 586CONFIG_TLS=y
1044CONFIG_TLS_DEVICE=y 587CONFIG_TLS_DEVICE=y
1045
1046# enable Trusted Keys based on CAAM
1047CONFIG_TRUSTED_KEYS=m
1048CONFIG_TRUSTED_KEYS_TPM=n
1049CONFIG_TRUSTED_KEYS_TEE=n
1050CONFIG_TRUSTED_KEYS_CAAM=y
diff --git a/recipes-kernel/linux/linux-fslc-imx_5.15.bb b/recipes-kernel/linux/linux-fslc-imx_5.15.bb
index 19626ccf..2db57df4 100644
--- a/recipes-kernel/linux/linux-fslc-imx_5.15.bb
+++ b/recipes-kernel/linux/linux-fslc-imx_5.15.bb
@@ -38,7 +38,7 @@ Latest stable Kernel patchlevel is applied and maintained by Community."
38# ------------------------------------------------------------------------------ 38# ------------------------------------------------------------------------------
39# 3. Critical patches (SHA(s)) 39# 3. Critical patches (SHA(s))
40# ------------------------------------------------------------------------------ 40# ------------------------------------------------------------------------------
41# fec_uio: fix implicit declaration 41# beacf1c5267a fec_uio: fix implicit declaration
42# e8093f50522f cert host tools: Stop complaining about deprecated OpenSSL functions 42# e8093f50522f cert host tools: Stop complaining about deprecated OpenSSL functions
43# 49c2d3b7964d gpio: fix enabling GPIO_VF610 43# 49c2d3b7964d gpio: fix enabling GPIO_VF610
44# c04a396fcbf7 ARM: mach-imx: conditionally disable some functions from busfreq-imx 44# c04a396fcbf7 ARM: mach-imx: conditionally disable some functions from busfreq-imx
@@ -58,14 +58,14 @@ LICENSE = "GPL-2.0-only"
58LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" 58LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
59 59
60KBRANCH = "5.15-2.0.x-imx" 60KBRANCH = "5.15-2.0.x-imx"
61SRCREV = "d818413e4d7901cb8a00a631a389326e2c93ae41" 61SRCREV = "845d53f13aac7d712b931a21df53bc8ccb22b31b"
62 62
63# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition 63# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition
64# required by kernel-yocto.bbclass. 64# required by kernel-yocto.bbclass.
65# 65#
66# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and 66# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and
67# should be updated once patchlevel is merged. 67# should be updated once patchlevel is merged.
68LINUX_VERSION = "5.15.60" 68LINUX_VERSION = "5.15.67"
69 69
70# Local version indicates the branch name in the NXP kernel tree where patches are collected from. 70# Local version indicates the branch name in the NXP kernel tree where patches are collected from.
71LOCALVERSION = "-5.15.60-2.0.0" 71LOCALVERSION = "-5.15.60-2.0.0"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch
new file mode 100644
index 00000000..19057147
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch
@@ -0,0 +1,48 @@
1From 071fd005ad6572767d7441c97549b1c904719944 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 12 Sep 2022 20:29:25 -0700
4Subject: [PATCH] gstallocatorphymem.c: Typecast result of gst_phymem_get_phy
5 to guintptr
6
7This fixes a warning/error found with clang-15
8
9Upstream-Status: Pending
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 gst-libs/gst/allocators/gstallocatorphymem.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15--- a/gst-libs/gst/allocators/gstallocatorphymem.c
16+++ b/gst-libs/gst/allocators/gstallocatorphymem.c
17@@ -225,7 +225,7 @@ static guintptr
18 gst_allocator_phymem_get_phys_addr (GstPhysMemoryAllocator * allocator,
19 GstMemory * mem)
20 {
21- return gst_phymem_get_phy (mem);
22+ return (guintptr)gst_phymem_get_phy (mem);
23 }
24
25 static void
26--- a/gst-libs/gst/gl/gstglphymemory.c
27+++ b/gst-libs/gst/gl/gstglphymemory.c
28@@ -337,7 +337,7 @@ gst_gl_physical_memory_setup_buffer (Gst
29 GST_VIDEO_INFO_HEIGHT (info),
30 viv_fmt,
31 memblk->vaddr,
32- memblk->paddr,
33+ (guint)memblk->paddr,
34 FALSE
35 };
36
37--- a/gst/subparse/gstssaparse.c
38+++ b/gst/subparse/gstssaparse.c
39@@ -24,7 +24,9 @@
40 #include "config.h"
41 #endif
42
43+#include <ctype.h> /* isspace() */
44 #include <stdlib.h> /* atoi() */
45+#include <stdio.h> /* sscanf() */
46 #include <string.h>
47
48 #include "gstssaparse.h"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bb
index 3fce3a58..3cbd2179 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.imx.bb
@@ -17,6 +17,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-ba
17 file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \ 17 file://0001-ENGR00312515-get-caps-from-src-pad-when-query-caps.patch \
18 file://0003-viv-fb-Make-sure-config.h-is-included.patch \ 18 file://0003-viv-fb-Make-sure-config.h-is-included.patch \
19 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \ 19 file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
20 file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch \
20 " 21 "
21SRC_URI[sha256sum] = "96d8a6413ba9394fbec1217aeef63741a729d476a505a797c1d5337d8fa7c204" 22SRC_URI[sha256sum] = "96d8a6413ba9394fbec1217aeef63741a729d476a505a797c1d5337d8fa7c204"
22 23
@@ -136,6 +137,10 @@ PACKAGECONFIG[viv-fb] = ",,virtual/libgles2"
136 137
137EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}"" 138EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""
138 139
140# links with imx-gpu libs which are pre-built for glibc
141# gcompat will address it during runtime
142LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
143
139COMPATIBLE_MACHINE = "(imx-nxp-bsp)" 144COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
140 145
141########### End of i.MX overrides ######### 146########### End of i.MX overrides #########
diff --git a/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.2.bb b/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.2.bb
index 3d557207..957d6ddf 100644
--- a/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.2.bb
+++ b/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.2.bb
@@ -16,3 +16,7 @@ INSANE_SKIP:${PN} = "already-stripped"
16FILES:${PN} += "${datadir}/imx-mm" 16FILES:${PN} += "${datadir}/imx-mm"
17 17
18COMPATIBLE_MACHINE = "(mx8-nxp-bsp)" 18COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"
19
20INSANE_SKIP:append:libc-musl = " file-rdeps"
21
22RDEPENDS:${PN}:append:libc-musl = " gcompat"