# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: (kernel/samsung/msm8976/)arch/arm64/configs/gts210vewifi_defconfig

pkgname=linux-samsung-gts210vewifi
pkgver=3.10.102
pkgrel=6
pkgdesc="Galaxy Tab S2 9.7 WiFi (SM-T813) kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="samsung-gts210vewifi"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev dtbtool gcc6 devicepkg-dev"

# Compiler: this kernel was only tested with GCC6. Feel free to make a merge
# request if you find out that it is booting working with newer GCCs as
# well. See <https://postmarketos.org/vendorkernel> for instructions.
if [ "${CC:0:5}" != "gcc6-" ]; then
	CC="gcc6-$CC"
	HOSTCC="gcc6-gcc"
	CROSS_COMPILE="gcc6-$CROSS_COMPILE"
fi

# Source
# gts210vewifi uses msm8976 kernel
_repository="android_kernel_samsung_msm8976"
_commit="82d475a1952b9bbb6652b35e87671b5031bcf934"
_config="config-$_flavor.$arch"
source="
	$pkgname-$_commit.tar.gz::https://github.com/LineageOS/$_repository/archive/$_commit.tar.gz
	$_config
	01_fix_msm_dba.patch
	gcc10-extern_YYLOC_global_declaration.patch
"
builddir="$srcdir/$_repository-$_commit"

prepare() {
	default_prepare

	. downstreamkernel_prepare
}

build() {
	unset LDFLAGS
	make ARCH="$_carch" CC="${CC:-gcc}" \
		C_INCLUDE_PATH="./arch/arm/mach-msm:./sound/soc/msm/qdsp6v2" \
		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
	# As path is symlinked from arm64 to arm, dtb files end up below arm, not arm64
	echo dtbTool -s 2048 -p "scripts/dtc/" -o "arch/arm64/boot/dt.img" "arch/arm/boot/dts/"
	# Generate master DTB (deviceinfo_bootimg_qcdt).
	dtbTool -s 2048 -p "scripts/dtc/" -o "arch/arm64/boot/dt.img" "arch/arm/boot/dts/"
}

package() {
	downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor"

	# Master DTB (deviceinfo_bootimg_qcdt)
	install -Dm644 "$builddir/arch/arm64/boot/dt.img" \
		"$pkgdir/boot/dt.img"
}

sha512sums="37e55b3e64308a29deb8932d8d2452ff76601558bdcb9ff58f3a016f5ec63c2941e5fe7cdcced50d5039d3cdadaa5d43004c4e27cb8b105f8fda7596d676fb9e  linux-samsung-gts210vewifi-82d475a1952b9bbb6652b35e87671b5031bcf934.tar.gz
8e7bdbd19346093542323ccb81b1acb458d740712297022e95f991c2a90b12a9de13b9351e55c8bb5cd78e0b14328a21cb485e3a63f0f8fcd5101b47e444ad05  config-samsung-gts210vewifi.aarch64
7e765cb696fa8c3dfbc305b05cbf1fad85fb9572613d5391e945341dae5974a745f4906c795dc841e5562b19ab77d5257f9741e514af2c2573aa4bb8b262ce51  01_fix_msm_dba.patch
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb  gcc10-extern_YYLOC_global_declaration.patch"