# Maintainer: He Yangxuan <yangxuan8282@gmail.com>

pkgname=linux-amlogic
pkgver=4.19.8
pkgrel=0
pkgdesc="Linux kernel for Amlogic"
url=https://github.com/torvalds/linux
_commit=178574b66509c9ff7df4ad26c84a8884567e93b4
depends="mkinitfs"
_depends_dev="perl gmp-dev elfutils-dev bash"
makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware openssl-dev bison flex"
options="!strip !check"
source="$url/archive/${_commit}.tar.gz
	config-changes-amlogic.aarch64
	defconfig
	0001-ARM64-defconfig-enable-CEC-support.patch
	0002-ASoC-meson-add-meson-audio-core-driver.patch
	0003-ASoC-meson-add-register-definitions.patch
	0004-ASoC-meson-add-aiu-i2s-dma-support.patch
	0005-ASoC-meson-add-initial-i2s-dai-support.patch
	0006-ASoC-meson-add-aiu-spdif-dma-support.patch
	0007-ASoC-meson-add-initial-spdif-dai-support.patch
	0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch
	0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch
	0010-snd-meson-activate-HDMI-audio-path.patch
	0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch
	0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch
	0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch
	0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch
	0017-soc-amlogic-add-meson-canvas-driver.patch
	0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
	0020-drm-meson-Use-optional-canvas-provider.patch
	0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
	0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch
	0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
	0024-drm-meson-Add-primary-plane-scaling.patch
	0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
	0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
	0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
	0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch
	0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
	0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
	0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
	0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
	0034-MAINTAINERS-Add-meson-video-decoder.patch
	0035-arm64-dts-meson-gx-add-vdec-entry.patch
	0036-arm64-dts-meson-add-vdec-entries.patch
	0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
	0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
	0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
	0040-media-meson-vdec-add-H.264-decoding-support.patch
	0041-media-meson-vdec-add-MPEG4-decoding-support.patch
	0042-media-meson-vdec-add-MJPEG-decoding-support.patch
	0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
	0008-drm-meson-Add-HDMI-1.4-4k-modes.patch
	0009-drm-meson-Use-drm_fbdev_generic_setup.patch
	0010-fixup-drm-meson-Use-optional-canvas-provider.patch
	0012-drm-meson-add-support-for-1080p25-mode.patch
	0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
	0015-drm-meson-add-HDMI-div40-TMDS-mode.patch
	0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
	0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
	0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
	0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
	0020-drm-meson-Add-YUV420-output-support.patch
	0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
	0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
	0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
	0001-drm-meson-fix-max-mode_config-height-width.patch
	add-phicomm-n1.patch
	bt-btbcm.patch
	text_offset.patch
	"
subpackages=""
arch="aarch64"
license="GPL-2.0"
_flavors=
for _i in $source; do
	case $_i in
	config-*.$CARCH)
		_f=${_i%.$CARCH}
		_f=${_f#config-changes-}
		_flavors="$_flavors ${_f}"
		[ "linux-$_f" != "$pkgname" ] && subpackages="$subpackages linux-${_f}::$CBUILD_ARCH"
		subpackages="$subpackages linux-${_f}-dev:_dev:$CBUILD_ARCH"
		;;
	esac
done

case "$CARCH" in
	aarch64) _carch="arm64" ;;
	arm*) _carch="arm" ;;
esac

HOSTCC="${CC:-gcc}"
HOSTCC="${HOSTCC#${CROSS_COMPILE}}"

prepare() {
	local _patch_failed=
	cd "$srcdir"/linux-$_commit

	for i in $source; do
		case $i in
		*.patch)
			msg "Applying $i..."
			if ! patch -s -p1 -N -i "$srcdir"/${i##*/}; then
				echo $i >>failed
				_patch_failed=1
			fi
			;;
		esac
	done

	if ! [ -z "$_patch_failed" ]; then
		error "The following patches failed:"
		cat failed
		return 1
	fi

	# remove localversion from patch if any
	rm -f localversion*

	local flavor=
	for flavor in $_flavors; do
		local builddir="$srcdir"/build-$flavor
		mkdir -p "$builddir"
		echo "-$pkgrel-$flavor" > "$builddir"/localversion-alpine
		_genconfig $flavor
		make -C "$srcdir"/linux-$_commit \
			O="$builddir" \
			ARCH="$_carch" \
			HOSTCC="$HOSTCC" \
			olddefconfig
		_verifyconfig $flavor
	done
}

# generate config from defconfig and apply local changes.
# config-changes-$flavor.$CARCH holds a list of = delimited
# config command and values used by kernel scripts/config script.
_genconfig() {
	local flavor=$1 defconfig=
	local builddir="$srcdir"/build-$flavor
	local defconfig=
	case $flavor in
		amlogic) defconfig=defconfig ;;
		*) die "Unknown flavor: $flavor" ;;
	esac

	cp "$srcdir"/$defconfig \
		"$builddir"/.config

	while read line; do
		[ ${line:0:1} = "#" ] && continue
		local option=${line%%=*} str=
		local cmd=$(echo $line | cut -d= -f2)
		case "$cmd" in
			enable|disable|module) str= ;;
			set-str|set-val) str=${line##*=} ;;
			*) die "Command $cmd not accepted" ;;
		esac
		msg "[$flavor] $cmd: $option $str"
		"$srcdir"/linux-$_commit/scripts/config \
			--file "$builddir"/.config \
			--${cmd} "$option" "${str//\"/}"
	done < "$srcdir"/config-changes-$flavor.${CARCH}
}

# verify if options are set to correct value
_verifyconfig() {
	local flavor=$1
	local builddir="$srcdir"/build-$flavor
	while read line; do
		[ ${line:0:1} = "#" ] && continue
		local option=${line%%=*} str= invert=
		local cmd=$(echo $line | cut -d= -f2)
		case "$cmd" in
			enable) str="$option=y" ;;
			disable) str="$option"; invert="-v" ;;
			module) str="$option=m" ;;
			set-val) str="$option=${line##*=}" ;;
			set-str) str=${line##*=}
				str="$option=\"${str//\"/}\"" ;;
		esac
		grep -q $invert "^$str" "$builddir"/.config || \
			die "Config: $option not properly set!"
	done < "$srcdir"/config-changes-$flavor.${CARCH}
}

build() {
	unset LDFLAGS
	for i in $_flavors; do
		cd "$srcdir"/build-$i
		make ARCH="$_carch" CC="${CC:-gcc}" \
			KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
	done
}

_package() {
	local _buildflavor="$1" _outdir="$2"
	local _abi_release=${pkgver}-${pkgrel}-${_buildflavor}

	cd "$srcdir"/build-$_buildflavor

	mkdir -p "$_outdir"/boot "$_outdir"/lib/modules

	local _install
	case "$CARCH" in
	arm*)
		_install="zinstall dtbs_install"
		;;
	aarch64)
		_install="install dtbs_install"
		;;
	*)
		_install=install
		;;
	esac

	cd "$srcdir"/build-$_buildflavor
	local INSTALL_DTBS_PATH="$_outdir"/boot/dtbs
	make -j1 modules_install $_install \
		ARCH="$_carch" \
		INSTALL_MOD_PATH="$_outdir" \
		INSTALL_PATH="$_outdir"/boot \
		INSTALL_DTBS_PATH="$INSTALL_DTBS_PATH"

	rm -f "$_outdir"/lib/modules/${_abi_release}/build \
		"$_outdir"/lib/modules/${_abi_release}/source
	rm -rf "$_outdir"/lib/firmware

	install -D include/config/kernel.release \
		"$_outdir"/usr/share/kernel/$_buildflavor/kernel.release

	if [ "$CARCH" = "aarch64" ]; then
		mv -f "$INSTALL_DTBS_PATH"/amlogic/*.dtb \
			"$INSTALL_DTBS_PATH"
		rmdir "$INSTALL_DTBS_PATH"/amlogic
	fi
}

# main flavor installs in $pkgdir
package() {
	depends="$depends linux-firmware-brcm"
	_package amlogic "$pkgdir"
}

_dev() {
	local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g')
	local _abi_release=${pkgver}-${pkgrel}-$_flavor
	# copy the only the parts that we really need for build 3rd party
	# kernel modules and install those as /usr/src/linux-headers,
	# simlar to what ubuntu does
	#
	# this way you dont need to install the 300-400 kernel sources to
	# build a tiny kernel module
	#
	pkgdesc="Headers and script for third party modules for $_flavor kernel"
	depends="$_depends_dev"
	local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}

	# first we import config, run prepare to set up for building
	# external modules, and create the scripts
	mkdir -p "$dir"
	cp "$srcdir"/build-$_flavor/.config "$dir"/.config
	make -j1 -C "$srcdir"/linux-$_commit O="$dir" HOSTCC="${CC:-gcc}" \
		silentoldconfig prepare modules_prepare scripts

	# remove the stuff that points to real sources. we want 3rd party
	# modules to believe this is the soruces
	rm "$dir"/Makefile "$dir"/source

	# copy the needed stuff from real sources
	#
	# this is taken from ubuntu kernel build script
	# http://kernel.ubuntu.com/git/ubuntu/ubuntu-zesty.git/tree/debian/rules.d/3-binary-indep.mk
	cd "$srcdir"/linux-$_commit
	find .  -path './include/*' -prune \
		-o -path './scripts/*' -prune -o -type f \
		\( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
		   -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \
		-print | cpio -pdm "$dir"

	cp -a scripts include "$dir"
	find $(find arch -name include -type d -print) -type f \
		| cpio -pdm "$dir"

	install -Dm644 "$srcdir"/build-$_flavor/Module.symvers \
		"$dir"/Module.symvers

	mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
	ln -sf /usr/src/linux-headers-${_abi_release} \
		"$subpkgdir"/lib/modules/${_abi_release}/build
}

sha512sums="642e3de14702d3034f9108c7b6661294722f4cf455b9167c349111642586d9a48732070e46092e7084f3ffbc26f01bae50f8da52eeceb7cf0f40e1441f9d895e  178574b66509c9ff7df4ad26c84a8884567e93b4.tar.gz
7186849193386fc06caab6db9ebf3d5b7efe2511f1c3836bb70d713340eb69b1f123f8372f15ee7f8dd61eeff5ce772b35db8557133ef64a2a1a5ca9e7cd30c9  config-changes-amlogic.aarch64
2784f8c05c1c66f2bff73d0cdd415781e6529f269223607c18302803125092e7cb6c94083146deecc3226672f7f4754246cc62808f9384f697782ec55786883d  defconfig
09e8d284608ac0e86db8b36bdefdb17c8ad8e9b3bdf443ee5a687f1591d88d26cffef1a36919b0547acef49394d903ff8067d46f75b55eccadec415971bf0b34  0001-ARM64-defconfig-enable-CEC-support.patch
55d3e84c4e01b94a3bf256a980bd23a8d02c3ea7f4103d350400eb28cc31336bb35f9404ee34ba80f7d3d7427d73ed4ee75119a916ae0e88d911bb83b0303229  0002-ASoC-meson-add-meson-audio-core-driver.patch
b5a65140612b011f22d4bfbb4ab41a4c0fe07bab43f8033195a42b02c5d74c69c7fbc2b186f8d6ff08ed7b66ccbfd9d8d7945f81812ae5021b1d37154acdb12f  0003-ASoC-meson-add-register-definitions.patch
441b0385e88bb7ddb324363536413e6538d4b0367181ae5ceada806a8efe3d1b5daa643bd3ab99db6fa7a2d5ea0944a15a63672fa26bfc7850959ce2d7238aa1  0004-ASoC-meson-add-aiu-i2s-dma-support.patch
4615d01a2548ce5057446ff32c52bca1cea189fc74d902ea22dc90e73c2eb21ef5b4b58c6a4ebbdf3c6cad5bac483dabdee025438ebc0bdf1b4368af0fce1b87  0005-ASoC-meson-add-initial-i2s-dai-support.patch
d1dc1d99393a885776144dea27c0789d9e7968de1164bc85b07cc8d444cdcc898ce2f7ff1f9515ae2424789cbb76b84a8ed56008c1880fef60be79000bf55452  0006-ASoC-meson-add-aiu-spdif-dma-support.patch
b101c64312509738b078732f73b265fa81bb94806bb39524e85d171949505dc0548fc3ece498cca6586b8ca4af08b271b6c02f028040f8cf16ec5eee94ddafa1  0007-ASoC-meson-add-initial-spdif-dai-support.patch
98fd62a02fa76a957d15da9456c85def94a790429c3357b4b06a63d4224b624ffe763410ffdbc09ff560ba0a17a5299b722e2c9cefbb4a59455cfbe7379850b3  0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch
a286d6ecb284f505ebd29c04c5e95b1e7ba1a4a3c5ffb17580c2387ab78360cba7be6806772a058be8326f7a299f59c84051ed022b2c99372412d935f12f7c6a  0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch
e84ab2a28d08570590ad06219e1a99a8cc47a589d4170f5ff1bf6eeb1b50c1e4e21857a5633495d2271ae702b9bfdc8aa76bb56d572b236d54a4ec08566f13d6  0010-snd-meson-activate-HDMI-audio-path.patch
35962172f6c2682f0e3ba438ca9e62ddd679a0cd665e6bc6208167a753877a02a1d4db8d78b230de44ab494016cf9d47f0e61d31121cb0b8b676b689f1258f71  0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch
db2c10c9e4b58e7f0b72a0b8b81ef39544d0e14ef5814dda4d6d5d98d181c9c0f5993ac0e6bc98ea8c79b5d22a3c4eb38793ddb22e7e2553f4643027767a597e  0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch
4f0073aa0a4ed1297b00817bb6cad704362c32fda284780e7a73505dab8e3cfdec5eb851fccdf7e6bf16c1788bc0f8f6ca58b0898adacca678f46ca940aa493a  0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch
998c39cf37d2258582d6d60a7e6a702601430645b01c971c162bb219684e363fd11d0572cefb15f00551fe6bc95d97d1c101e6f36b1ae015083edeb5742b3df3  0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch
03c2649558bedc2bf34f0e139db489d6891bda6041384d0023cf700be31d1fb1f983c8bc7d58754acd0a57986432b0330996c82f7dc7fd4a6044589725fc4c9c  0017-soc-amlogic-add-meson-canvas-driver.patch
7c1e84356a62a175326f56e71e6984aa4a00ab4b50ac09cce8a078890f2c2ac700d53c53b1229e8dbfb82f36bac32b3082ccdf91a8f92545148bd705784b38e4  0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
f2a94fde352734e1de54f10703d792c62c95ae4b68c2c0ce9eb78fded934084fab4b999c930f7228982044052e5b331cce60cf72dcc1f181bcc88eaf68116bb8  0020-drm-meson-Use-optional-canvas-provider.patch
635410e2f6476ee1f1114d31c06f997d5997e117d857ef67f7acb456b52941a4b4aa0cdd94ce9788a017a07d75143d783e900e03eac009d030c90fbe95798003  0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
df666c95cc1d0dc4c9dd93f79778c5880afd89c320a0edb22dc3f017388cd2df88806aae4c7cde4c412e6643fcd1a8df4c6f15b41b0b0e6b020eced9cedf8d9a  0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch
8e3f62fc50c8478951f8a2e6c5d8c8f38f56ed4d68f9c0fb55c23c46d3ae2182e8a6e5f23171aac08867da4bb16d7c98741a80a3ae6a3acfc41568350be59a57  0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
63c41b6db1386530339bd3b6d87849bb38a8d51ec8fcd0bf3c1bcb77c567c589e069dee02f066030f608288fd510e3af244ff45b346e0addc31614867daab334  0024-drm-meson-Add-primary-plane-scaling.patch
64682336c72ac1e505e19e4a099bb2c6f8ba6e8df2ed3b149e355c50b27a29337ac1de7768dd0fd3274bda4fe2f6cc53d068d8a1e6325d27c42e372a0324cbd2  0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
332aa83ae3c581b81dae9b37df047fa5e553b0c31790713395ab562aa03ac32fbf909ab6372aba22d06cb82c509efef68af90aeaf66ca5cf70c0861c69039139  0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
0cb8ed9fb52cfdcfac8dbbab5b08f4b5fe1b8716655fe77f37ff1ee39355fac89314dd318856582c62dce1fd56232b4a2725c60a2d07ef15efba86160eb093f0  0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
f4d251863ac20a95642a60f7c6c51694d36a12f745864fccbb6513b2e53fb0039fa316f4bcd245abe306d2d0aeb0037498f9e21333ab1d84e58fb5d287632093  0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch
c481cde9a8bf2609b99e1a7a94bdfead78afe8665347dfffcde8747b8e2817356123e0e44b71de4c5b85224aa20c3c63d5ce3f44e49e3969f0ea28f4df94dc62  0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
768d954c5580b68e999bf3ed051219187c96de88f27be54e52242687f2ef505c0616dabbc5bee42fdc6d20d53d973f2e64ef4809649fb2e666d8727ed314f3fd  0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
e23b9303036d736a3f9abed22712848da514f6388de66b3029bde551a85b7d42d1506ee960a539457c8dd7d8b6c07e80919ca0714a9435bdcaa85ca2e201d69f  0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
671da78856f524f7e491e35dcb2764acb6ff0e99eee4df6c9e9538dc321c6c2e4481fd8c39daa2cb32d23d38c96823e5ab04db0342b2daabd5d1b7efdb0d6288  0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
8d13b4e5c503a196b29263a85d3bc2d9cd1b95d186e6347532b8ae7efc35c93ed72d3f9c4a7ff12b5c2186b3f7d3b35247858e66a96382ba3a2630db35cdf794  0034-MAINTAINERS-Add-meson-video-decoder.patch
c1817a1b59a4a38f7a0689c1e2603398f538d9270a93b40e2ce3e9633b71943beb385206d802673b18f244fb5d9a6c9b2e0498d7803432cf98750843fb91ce5f  0035-arm64-dts-meson-gx-add-vdec-entry.patch
bdd5bd9e4203e3e7bd6412b2068963e22a974316b8ee1a707933808f1ec03ab43aa174804e7fd21f2f7062dc25226e4f2047a863366f132d8687d098a203c6d1  0036-arm64-dts-meson-add-vdec-entries.patch
9c3b9170bbc5fbf3331052e5a99864b76cee6c2c50629f22d33d6e0b01de164e34db4a57c3864e6cb10ff9486999842c9d5f5d38bcb65ef98ccca34c3a6366be  0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
6bd52ae9872d79b5b2199d23bbef6f73b7530c54df702edf0ce040ba799c60265d199f75fcd4301587100fe60a6d43988bdffdfcb6f98be0c0d8a79f27d206bf  0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
516113c435158775f85a3904e5941bcfe641428cfce1945722a2ab8f7897a8493dca634f3527fa4d8fb0433635efcd48353a2feadee94e3467057ce4ff966964  0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
0332979243ae7c182006050c3c2b34c9035ce9f3b084659ec0c3fd39c6772d42c0f5420628150113d2d149d8b1a2481d42650aae08ac054d25cf19178ba64ebc  0040-media-meson-vdec-add-H.264-decoding-support.patch
d696a4a726801786e65fcb69f70c5271a982b2d494a8036d7d8a3e201f910d0e1dc411283128b3460bf2371cb43817d760c0de866cfc22a985f1ff052b98cbff  0041-media-meson-vdec-add-MPEG4-decoding-support.patch
1381cbabd3e040d6e14c1f270904b2c41c6758f2757c3871d1a09d41ab4ce8f85cde95ed1cc989fe59addfa3eae6246f7cc25b63f213f9b28cc73ec86a1c3deb  0042-media-meson-vdec-add-MJPEG-decoding-support.patch
36281f344133b7f4130d69685b1802524a597e110e792f0cae43991eb3a15282d77779cca8033679b943660cd23c9da54c62178b99999e91dc8581052cb53945  0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
ddcb198b0e052975764dfaf140763247e80632eee5f49e3316dc4f1b6220da80fdca0dc32ec618b27fb0487b3ff0676f2a2ed07d5cecfad350bafba0b79ddfed  0008-drm-meson-Add-HDMI-1.4-4k-modes.patch
a58680d93e56fbc95e9e255b79822fcb7960d1f58dbf819dda729b21b61949f42ac58454a6403e77b0d12708613425f331531de700a74c18b262f1336849d5a1  0009-drm-meson-Use-drm_fbdev_generic_setup.patch
b103daed449e59ce1d73e929c694f042e461241ef9d09592828414ab04a9c7ce07c16f636461d8bc5ba49650b9f584a861d5bd4267e90899b8bd72ec113bee4e  0010-fixup-drm-meson-Use-optional-canvas-provider.patch
5e25559535d0a1529c8b5e31e9dab82c0d41f70e515a2ca4ed614177e127c0933cc1d54566ef6f063b19dbd19f3b1d67cb51ad4d8a87877140cf166c5969a6f0  0012-drm-meson-add-support-for-1080p25-mode.patch
8de5c1f61e8467504f96db3c615658f40bb217d57a1a0c03b505cd8e310961dce38a191cd40ccecd48ed204fac1c3d3facb371e07ff590b8683afc4420e7f303  0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
8fe6432a889ee13081185eeb8602ea48465b7d858f0b573f5a5c4d35e6ed76edc47f697b0c1729a31e9a319e0712bb0eaa111077d86570d2954dcbe6fceb7b60  0015-drm-meson-add-HDMI-div40-TMDS-mode.patch
358f064f42c9e21afeccb867c062fc18484f91ed7805752edaf74492774962c16348099de004ce130134610f8c5d076fd715ca0de3eb30d0abd23f90236c6a7b  0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
9bd13d763a007ffb9d0e9f9f4c9b5018752c010a39780e467d463153cc79a32774120d7af83496ba706b971dd3bd9bb600fad4795b3c0796e22eb42b23374a90  0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
f15dd5116fe7464009ade33a9c6d305a7720767e1b31acbf7653cd9d2f83b428e734712739e8bb4cfd04407640187f5528f80d7e8b89992a75f2316b6f8513c6  0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
2399c1c95455f2e4d0d03d2c84cf454251b7c8a151da555e7665bede91b7b62f96391efac3ca9a5b90761e105409bd033f348e25bc163a439a2ff7efd82e2184  0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
26eb2b101ab563558649f38a5102773b2d79eeb39cf04a3f8d512361beed70ad585825233716acb58853887bc863ba76ce87f6eaf6d8c5c22e4caa99a5ce294a  0020-drm-meson-Add-YUV420-output-support.patch
fac806a77816f655354499ab597974659e5d6dc74d04ac74cd81bacd6a264ac13ab33bc230a2c233d98d6e3b0342f329c2af0c6359d9ae8b6b456add06809822  0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
e365ba0479201f1c4fb08f872447f2496d4c8d75c8e3f632eeb3f7091e56d0659d4b6f580d384183e0e9c80ccf659b1704ecbaca88b66ca34c78c250c0f55a29  0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
0aca4ad6af15ea8f8e2e8a05aa3c5a16e1a909ee0f80cb1f64e0ee027a7050b0bbd5815520e146f96641b92e5d39688677de39d4294be6a25ea1a2e519df257b  0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
613d619e86883d83d53d045ed589d91c74a9f2031de953d2f3e4cdf374ae32841a69b28abfd0d8314a5739f51fbd3ab02c7f8baf4c5060db725d21f7a677db7f  0001-drm-meson-fix-max-mode_config-height-width.patch
ea41c0b63d8890cf5db69a37ead0fb9863299a344cee2d3606cc8c049405a563e139dceb6c908abc57b5b545d3daee16f7b9c6f7f1284cb9cf676ff5830d5c96  add-phicomm-n1.patch
dcc02a2e35e530490f18dd1f7e304aebd7c268ed8a46971d94e9da7dfd65b287002e6b921e46db5ce118177c9ab79fbe3640565cb2df19809b6eff514122fb43  bt-btbcm.patch
298ded76cf87f08c9357505e9dd7582d886a5e59111eee81ecb136b2dd1f3f404899a32029696038cb2299760568b2b0345c92dfd961591b28ec2964460f09b1  text_offset.patch"
