# APKBUILD based on linux-vanilla aport. Changes:
# - disabled module installation
# - add !check !tracedeps
# - package: just install zimage-dtb and kernel.release
#
# Kernel config based on: arch/arm/configs/dory_defconfig
# Changes:
# - apply patches to compile with gcc6
# - enable devtmpfs (needed for udev -> touch support in weston)
# - enabled CONFIG_VT (needed for weston to work)
# - disable ANDROID_PARANOID_NETWORK (removes network restrictions)

_vendor=lge
_flavor=lg-dory
_hash="6924014484d3406e3d2da384efc20e40e8a5ae80"
_config="config-${_flavor}.armhf"

pkgname=linux-${_flavor}
pkgver=3.10.40
case $pkgver in
	*.*.*)  _kernver=${pkgver%.*};;
	*.*) _kernver=$pkgver;;
esac
pkgrel=3
arch="armhf"
pkgdesc="Kernel for LG G Watch"
url="https://android.googlesource.com/kernel/msm/+/android-msm-dory-3.10-marshmallow-mr1-wear-release"
depends=""
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev"
options="!strip !check !tracedeps"
install=
source="
	$pkgname-$_hash.tar.gz::https://github.com/android/kernel_msm/archive/${_hash}.tar.gz
	$_config
	compiler-gcc6.h
	00_fix_return_address.patch
	01_avoid_rpmb_read_during_boot.patch
	02_fix_mdss_fb_refresh_rate.patch
	03_fix_mdss_fb_memory_allocation.patch
"
subpackages=""
license="GPL2"

_abi_release=${pkgver}
_carch="arm"
HOSTCC="${CC:-gcc}"
HOSTCC="${HOSTCC#${CROSS_COMPILE}}"

builddir="$srcdir/kernel_msm-${_hash}"

prepare() {
	default_prepare

	# gcc6 support
	cp -v "$srcdir/compiler-gcc6.h" "$builddir/include/linux/"

	cp "$srcdir"/$_config "$builddir"/.config
	make ARCH="$_carch" HOSTCC="$HOSTCC" silentoldconfig
}

# this is so we can do: 'abuild menuconfig' to reconfigure kernel
menuconfig() {
	cd "$builddir"
	make ARCH="$_carch" menuconfig
	cp .config "$startdir"/$_config
}

build() {
	unset LDFLAGS
	make ARCH="$_carch" CC="${CC:-gcc}" \
		KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
}

package() {
	install -Dm644 "$builddir/arch/arm/boot/zImage-dtb" \
		"$pkgdir/boot/vmlinuz-$_flavor"

	install -D "$builddir/include/config/kernel.release" \
		"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
}

sha512sums="adc1e7852bebf3c11af87cfe9c994025e1415468be707664a25df33507d33de62125ab367dbc3f57ff84213ea479c2e8870d45603bc96df641b1bf853216201a  linux-lg-dory-6924014484d3406e3d2da384efc20e40e8a5ae80.tar.gz
b1ee3b9792f7b3f73dd2311f1a5757bdbbf35b4ec2a928c5cf12cfe31c2d9ce0ff4b48758cd4994a07da5e0e708157824db5b84071bca9873a8593ae5e1c97d2  config-lg-dory.armhf
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc  compiler-gcc6.h
ea1d3b5a234fa565e3c1a792de48f4fc4e6023d281d303c8e319c7ef28edc5739ab0e4dea0139a41f0a5c7d03e27921ccaa214fd0ac5c72245a094ce60128864  00_fix_return_address.patch
760fdff79df31754ebed59839f34fc8c5a61750471614ac93a01b1e13b2535e7ca1f879c0cad3e83ad92946586c91679ba853eac4fe454d7e948317c84d81941  01_avoid_rpmb_read_during_boot.patch
26b599d6b0c435d9e0b80f578c1cc0714d60f532a98efbbcb0e313f5c5dcd2c8619afa5776091d14ea65e268a1f128b378fe30ba1743e1428f3300b505a9861c  02_fix_mdss_fb_refresh_rate.patch
5208c3f33099e22516e00ab90234784918157d0712a8a9cf81418a7ea1c136601cb54f83d490577f2cadb6ed94ac6c6f242e7b310fb5f09222de568e416c6731  03_fix_mdss_fb_memory_allocation.patch"
