Files
poky/meta/recipes-kernel/linux/linux-yocto-rt_6.6.bb
Bruce Ashfield f405c9b560 linux-yocto/6.6: drm/tilcdc: Set preferred depth
Integrating the following commit(s) to linux-yocto/6.6:

1/1 [
    Author: Kevin Hao
    Email: haokexin@gmail.com
    Subject: drm/tilcdc: Set preferred depth
    Date: Tue, 19 Mar 2024 08:35:29 +0800

    The commit c91acda3a380 ("drm/gem: Check for valid formats") adds a
    check for valid pixel formats on drm_gem_fb_create(), but this breaks
    the X server on the beaglebone black board.

    We have set 'DefaultDepth' to 16 in our xorg.conf. In the X modesetting
    driver, the drmmode_get_default_bpp() is used to guess the default
    depth/bpp. First it tries to get them via DRM_CAP_DUMB_PREFERRED_DEPTH
    ioctl, and if it fail, then try to create a FB with 'depth = 24' and
    'bpp = 32' to check whether this depth/dpp is a valid combo. Before the
    kernel commit c91acda3a380, the FB always can be created successfully.
    This will avoid the bpp to be set to 24 forcibly. But after kernel
    commit c91acda3a380, the FB will not be created successfully due to the
    check of the valid pixel format. Then the bpp is set to 24, but the
    'depth = 16' and 'bpp = 24' combo is not a valid pixel format.

    Fix this issue by explicitly setting the preferred_depth in this driver.
    With this change, the modesetting driver would choose the correct
    depth/bpp combo based on our setting in xorg.conf.

    Fixes: c91acda3a380 ("drm/gem: Check for valid formats")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kevin Hao <haokexin@gmail.com>
    Link: https://lore.kernel.org/r/20240317033918.535716-1-haokexin@gmail.com/
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: e23cbdd51ce4a8ca784f5902310a9e2d363c438a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-03-20 18:20:38 +00:00

49 lines
2.1 KiB
BlitzBasic

KBRANCH ?= "v6.6/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
# CVE exclusions
include recipes-kernel/linux/cve-exclusion_6.6.inc
# Skip processing of this recipe if it is not explicitly specified as the
# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
# to build multiple virtual/kernel providers, e.g. as dependency of
# core-image-rt-sdk, core-image-rt.
python () {
if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
SRCREV_machine ?= "4b52adc4ca90b93e65eded97537f844bb3f86621"
SRCREV_meta ?= "cc42f74d7d099826d46d3b310fda9c0c7bbb1477"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=${KMETA};protocol=https"
LINUX_VERSION ?= "6.6.21"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
PV = "${LINUX_VERSION}+git"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "1"
LINUX_KERNEL_TYPE = "preempt-rt"
COMPATIBLE_MACHINE = "^(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)$"
KERNEL_DEVICETREE:qemuarmv5 = "arm/versatile-pb.dtb"
# Functionality flags
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc features/gpio/sim.scc", "", d)}"