diff --git a/recipes-kernel/linux/linux-mainline.inc b/recipes-kernel/linux/linux-mainline.inc index 9438208..d49c4de 100644 --- a/recipes-kernel/linux/linux-mainline.inc +++ b/recipes-kernel/linux/linux-mainline.inc @@ -7,6 +7,23 @@ inherit kernel require linux.inc +KERNEL_DTB_PREFIX = "0" + +python() { + # return version in int form + def kernel_version(): + ver = d.getVar('PV', True).split('.') + return int("".join(ver[0])),int("".join(ver[1])) + + # kernel 6.5 have updated dts path add 'allwinner' prefix automatically + major, minor = kernel_version() + if major >= 6 and minor >= 5: + dt = d.getVar('KERNEL_DEVICETREE', True) + dt = "allwinner/{0}".format(dt) + d.setVar('KERNEL_DEVICETREE', dt) + d.setVar('KERNEL_DTB_PREFIX', "1") +} + # Since we're not using git, this doesn't make a difference, but we need to fill # in something or kernel-yocto.bbclass will fail. KBRANCH ?= "master" @@ -24,11 +41,24 @@ S = "${WORKDIR}/linux-${PV}" KRELEASE = "${@d.getVar('PV', True).split('.')[0]}" SRC_URI = "https://www.kernel.org/pub/linux/kernel/v${KRELEASE}.x/linux-${PV}.tar.xz \ + file://defconfig \ +" + +# append patches for kernels before 6.5 and after based on version +SRC_URI += "${@oe.utils.ifelse(d.getVar('KERNEL_DTB_PREFIX') == '1', d.getVar('SOURCES_K65'), d.getVar('SOURCES'))}" + +SOURCES_K65 = " \ + file://6.5/0001-dts-orangepi-zero-Add-wifi-support.patch \ + file://6.5/0002-dts-nanopi-neo-air-Add-camera-support.patch \ + file://6.5/0003-dts-allwinner-bananapi-m2-zero-Enforce-consistent-MM.patch \ + file://6.5/0004-dts-allwinner-bananapi-m64-Consistent-nodes-for-mmc-devices.patch \ +" + +SOURCES = " \ file://0001-dts-orange-pi-zero-Add-wifi-support.patch \ file://0002-dts-nanopi-neo-air-add-camera.patch \ file://0003-dts-allwinner-bananapi-m2-zreo-Enforce-consistent-MM.patch \ file://0004-dts-allwinner-bananapi-m64-Consistent-nodes-for-mmc-devices.patch \ - file://defconfig \ " SRC_URI:append:use-mailine-graphics = " file://drm.cfg"