Base LeEco Le 2 support (#1073)

This commit is contained in:
Yan 2018-01-05 19:52:44 +03:00 committed by Oliver Smith
parent cb219a56a8
commit feb0f5d8e5
8 changed files with 4471 additions and 0 deletions

View File

@ -0,0 +1,22 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname="device-leeco-s2"
pkgdesc="LeEco Le 2"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="noarch"
options="!check"
depends="linux-leeco-s2 mkbootimg msm-fb-refresher"
makedepends="devicepkg-dev"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
sha512sums="e270a4a9edcb6db2c6bf46b0347d658a4326f7b6fc1827e43d78e3c33c6600103c873bc4f566a39d4f20ff64cc6a1db949fd7538f28bd64dc0a339ee9bd9c377 deviceinfo"

View File

@ -0,0 +1,34 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
deviceinfo_name="LeEco Le 2"
deviceinfo_manufacturer="LeEco"
deviceinfo_date=""
deviceinfo_dtb=""
deviceinfo_modules_initfs=""
deviceinfo_external_disk_install="false"
deviceinfo_arch="aarch64"
# Device related
deviceinfo_keyboard="false"
deviceinfo_external_disk="false"
deviceinfo_screen_width="1920"
deviceinfo_screen_height="1080"
deviceinfo_dev_touchscreen=""
deviceinfo_dev_touchscreen_calibration=""
deviceinfo_dev_keyboard=""
deviceinfo_msm_refresher="true"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlyprintk buildvariant=userdebug"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_flash_offset_base="0x80000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_pagesize="2048"

View File

@ -0,0 +1,68 @@
From 44f841be2a223d672eaf9fa3029fd9249aeca583 Mon Sep 17 00:00:00 2001
From: MOVZX <movzx@yahoo.com>
Date: Tue, 25 Apr 2017 17:04:40 +0300
Subject: [PATCH] prima: Fix GCC6 Warnings
Signed-off-by: MOVZX <movzx@yahoo.com>
---
drivers/staging/prima/CORE/MAC/src/include/utilsApi.h | 2 +-
drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c | 2 +-
drivers/staging/prima/CORE/SME/src/csr/csrApiScan.c | 2 +-
drivers/staging/prima/CORE/VOSS/src/wlan_nv_template_builtin.c | 5 ++---
4 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/staging/prima/CORE/MAC/src/include/utilsApi.h b/drivers/staging/prima/CORE/MAC/src/include/utilsApi.h
index 3a175473378..798a05cd2b4 100644
--- a/drivers/staging/prima/CORE/MAC/src/include/utilsApi.h
+++ b/drivers/staging/prima/CORE/MAC/src/include/utilsApi.h
@@ -705,7 +705,7 @@ halRoundS32(tANI_S32 p)
else
k = p;
- return(k);
+ return(k);
}
// New functions for endianess conversion
diff --git a/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c b/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c
index 0fc798995ae..6427a04e108 100644
--- a/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c
+++ b/drivers/staging/prima/CORE/MAC/src/pe/sch/schBeaconGen.c
@@ -60,7 +60,7 @@
// Temporarily (maybe for all of Alpha-1), assuming TIM = 0
//
-const tANI_U8 P2pOui[] = {0x50, 0x6F, 0x9A, 0x9};
+tANI_U8 P2pOui[] = {0x50, 0x6F, 0x9A, 0x9};
tSirRetStatus schGetP2pIeOffset(tANI_U8 *pExtraIe, tANI_U32 extraIeLen, tANI_U16 *pP2pIeOffset)
#diff --git a/drivers/staging/prima/CORE/SME/src/csr/csrApiScan.c b/drivers/staging/prima/CORE/SME/src/csr/csrApiScan.c
#index 23ab858c355..b4f26def1d1 100644
#--- a/drivers/staging/prima/CORE/SME/src/csr/csrApiScan.c
#+++ b/drivers/staging/prima/CORE/SME/src/csr/csrApiScan.c
#@@ -5698,7 +5698,7 @@ static tANI_BOOLEAN csrScanProcessScanResults( tpAniSirGlobal pMac, tSmeCmd *pCo
# if (eHAL_STATUS_SUCCESS != status)
# smsLog(pMac, LOGE,
# FL( "failed to update the supported channel list"));
#- pMac->scan.defer_update_channel_list = false;
#+ pMac->scan.defer_update_channel_list = false;
# }
#
# #ifdef WLAN_AP_STA_CONCURRENCY
diff --git a/drivers/staging/prima/CORE/VOSS/src/wlan_nv_template_builtin.c b/drivers/staging/prima/CORE/VOSS/src/wlan_nv_template_builtin.c
index 14c6eadf524..e26b697f793 100644
--- a/drivers/staging/prima/CORE/VOSS/src/wlan_nv_template_builtin.c
+++ b/drivers/staging/prima/CORE/VOSS/src/wlan_nv_template_builtin.c
@@ -587,9 +587,8 @@ _NV_TEMPLATE_TABLE NvTablesBuiltIn[/*TABLES_MAX*/][TABLE_ENTRIES_MAX] = {
((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) -
(char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHdxLNA5G"},
{"ed",_ID_U8,SINGULAR,0,0,0,
- (((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) +
- sizeof(uint16)) - (char *)&nvDefaults.tables.hwCalValues.calData),
- "nv_TxBBFSel9MHz"},
+ ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) -
+ (char *)&nvDefaults.tables.hwCalValues.calData),"nv_TxBBFSel9MHz"},
{"ee",_ID_U8,SINGULAR,0,0,0,
((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam2) -
(char *)&nvDefaults.tables.hwCalValues.calData),"hwParam2"},

View File

@ -0,0 +1,40 @@
diff --git a/arch/arm64/kernel/psci.c b/arch/arm64/kernel/psci.c
index 379ee152..10d3fda8 100644
--- a/arch/arm64/kernel/psci.c
+++ b/arch/arm64/kernel/psci.c
@@ -100,9 +100,14 @@ static u32 psci_power_state_pack(struct psci_power_state state)
* The following two functions are invoked via the invoke_psci_fn pointer
* and will not be inlined, allowing us to piggyback on the AAPCS.
*/
-static noinline int __invoke_psci_fn_hvc(u64 function_id, u64 arg0, u64 arg1,
- u64 arg2)
-{
+static noinline int __invoke_psci_fn_hvc(u64 _function_id, u64 _arg0,
+ u64 _arg1, u64 _arg2)
+ {
+ register u64 function_id asm("x0") = _function_id;
+ register u64 arg0 asm("x1") = _arg0;
+ register u64 arg1 asm("x2") = _arg1;
+ register u64 arg2 asm("x3") = _arg2;
+
asm volatile(
__asmeq("%0", "x0")
__asmeq("%1", "x1")
@@ -115,9 +120,14 @@ static noinline int __invoke_psci_fn_hvc(u64 function_id, u64 arg0, u64 arg1,
return function_id;
}
-static noinline int __invoke_psci_fn_smc(u64 function_id, u64 arg0, u64 arg1,
- u64 arg2)
-{
+static noinline int __invoke_psci_fn_smc(u64 _function_id, u64 _arg0,
+ u64 _arg1, u64 _arg2)
+ {
+ register u64 function_id asm("x0") = _function_id;
+ register u64 arg0 asm("x1") = _arg0;
+ register u64 arg1 asm("x2") = _arg1;
+ register u64 arg2 asm("x3") = _arg2;
+
asm volatile(
__asmeq("%0", "x0")
__asmeq("%1", "x1")

View File

@ -0,0 +1,52 @@
From e4e4f1f704b97a57edbbe471962729e2efd04fd6 Mon Sep 17 00:00:00 2001
From: rishabhrao <admin@rishabhrao.net>
Date: Sun, 5 Feb 2017 07:44:00 +0000
Subject: [PATCH] s2: Fix Kernel Standalone Building Errors
Change-Id: Ia54b1b5e3ba950a8ac0db689275dd760455cdfad
Signed-off-by: rishabhrao <admin@rishabhrao.net>
---
arch/arm64/Makefile | 7 ++++---
arch/arm64/boot/Makefile | 2 +-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 153e8545587..bdc365eb4d6 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -61,6 +61,7 @@ KBUILD_DTBS := dtbs
all: $(KBUILD_IMAGE) $(KBUILD_DTBS)
+boot32 := arch/arm/boot
boot := arch/arm64/boot
Image Image.gz: vmlinux
@@ -70,11 +71,11 @@ zinstall install: vmlinux
$(Q)$(MAKE) $(build)=$(boot) $@
%.dtb: scripts
- $(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
+ $(Q)$(MAKE) $(build)=$(boot32)/dts $(boot32)/dts/$@
dtbs: scripts
- $(Q)$(MAKE) $(build)=$(boot)/dts dtbs
- $(Q)$(MAKE) $(build)=$(boot)/dts/qcom dtbs
+ $(Q)$(MAKE) $(build)=$(boot32)/dts dtbs
+ $(Q)$(MAKE) $(build)=$(boot32)/dts/qcom dtbs
PHONY += vdso_install
vdso_install:
diff --git a/arch/arm64/boot/Makefile b/arch/arm64/boot/Makefile
index ad85404a64d..b49defdf14a 100644
--- a/arch/arm64/boot/Makefile
+++ b/arch/arm64/boot/Makefile
@@ -24,7 +24,7 @@ DTB_LIST := $(addsuffix .dtb,$(DTB_NAMES))
else
DTB_LIST := $(dtb-y)
endif
-DTB_OBJS := $(addprefix $(obj)/dts/,$(DTB_LIST))
+DTB_OBJS := $(addprefix $(srctree)/arch/arm/boot/dts/,$(DTB_LIST))
$(obj)/Image: vmlinux FORCE
$(call if_changed,objcopy)

View File

@ -0,0 +1,84 @@
# Kernel config based on: arch/arm64/configs/lineage_s2_defconfig
pkgname="linux-leeco-s2"
pkgver=3.10.106
pkgrel=0
pkgdesc="LeEco Le 2 kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="leeco-s2"
url="https://kernel.org"
license="GPL2"
options="!strip !check !tracedeps"
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev git python2"
HOSTCC="${CC:-gcc}"
HOSTCC="${HOSTCC#${CROSS_COMPILE}}"
# Source
_repository="overload1"
_commit="b3650e93fec05cfe6ecf1fe80383bcff979463a0"
_config="config-${_flavor}.${arch}"
source="
$pkgname-$_commit.tar.gz::https://github.com/renjian2/${_repository}/archive/${_commit}.tar.gz
$_config
compiler-gcc6.h
01_fix_gcc6_errors.patch
03_psci.patch
05_dtb-fix.patch
"
builddir="$srcdir/${_repository}-${_commit}"
prepare() {
default_prepare
# gcc6 support
cp -v "$srcdir/compiler-gcc6.h" "$builddir/include/linux/"
# Remove -Werror from all makefiles
find . -type f -name Makefile -print0 | \
xargs -0 sed -i 's/-Werror-/-W/g'
find . -type f -name Makefile -print0 | \
xargs -0 sed -i 's/-Werror//g'
# Prepare kernel config ('yes ""' for kernels lacking olddefconfig)
cp "$srcdir"/$_config "$builddir"/.config
yes "" | make ARCH="$_carch" HOSTCC="$HOSTCC" oldconfig
}
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 ))-postmarketOS"
}
package() {
# kernel.release
install -D "$builddir/include/config/kernel.release" \
"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
# zImage (find the right one)
cd "$builddir/arch/$_carch/boot"
_target="$pkgdir/boot/vmlinuz-$_flavor"
for _zimg in zImage-dtb Image.gz-dtb *zImage Image; do
[ -e "$_zimg" ] || continue
msg "zImage found: $_zimg"
install -Dm644 "$_zimg" "$_target"
break
done
if ! [ -e "$_target" ]; then
error "Could not find zImage in $PWD!"
return 1
fi
}
sha512sums="e04ad32aef101019c66717d23ee9af3c1ef1770d3627d5ef6fab68c6ed81a2de766829f9aea9fdf1968523524de82aa6d0617656e1e66cc7a813ee9f54642b9a linux-leeco-s2-b3650e93fec05cfe6ecf1fe80383bcff979463a0.tar.gz
9427a9a9efecdcf747b119239b5ca7119d5952899908eae715c7ce934c100e7b7c6262840d4d74afa4d0ead7e1efc2346df4ba3c9a3fa8c5920a7d53ca614152 config-leeco-s2.aarch64
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h
b23dfac4f6be2ac460f220f9e0780590c8d137cdfc5f0bf513efa0fb1ca07f32a6f0a53a96b215e9db8cdc28937e0eb46e6420147b5d3cf4dc64cff77b414457 01_fix_gcc6_errors.patch
a66521ea257ed7d339592e198ce9cab983deb20fa45c02ffa8689ac7081d879ae3bff9648107c65e2805893c08611b356a55e6c088c8e17c7631364aa2a10c39 03_psci.patch
0e5ebee2f1b0005fcae4f313219c0b6481b3d044c7167e0fb18b72db0eae49aef7b281cd29e0fa1e653fc5585064c990085ca68f920348c3d9d9ea9524d1baa6 05_dtb-fix.patch"

View File

@ -0,0 +1,69 @@
// SOURCE:
// https://github.com/NextThingCo/CHIP-u-boot/issues/10#issuecomment-287515505
#ifndef __LINUX_COMPILER_H
#error "Please don't include <linux/compiler-gcc6.h> directly, include <linux/compiler.h> instead."
#endif
#define __used __attribute__((__used__))
#define __must_check __attribute__((warn_unused_result))
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
/* Mark functions as cold. gcc will assume any path leading to a call
to them will be unlikely. This means a lot of manual unlikely()s
are unnecessary now for any paths leading to the usual suspects
like BUG(), printk(), panic() etc. [but let's keep them for now for
older compilers]
Early snapshots of gcc 4.3 don't support this and we can't detect this
in the preprocessor, but we can live with this because they're unreleased.
Maketime probing would be overkill here.
gcc also has a __attribute__((__hot__)) to move hot functions into
a special section, but I don't see any sense in this right now in
the kernel context */
#define __cold __attribute__((__cold__))
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
#ifndef __CHECKER__
# define __compiletime_warning(message) __attribute__((warning(message)))
# define __compiletime_error(message) __attribute__((error(message)))
#endif /* __CHECKER__ */
/*
* Mark a position in code as unreachable. This can be used to
* suppress control flow warnings after asm blocks that transfer
* control elsewhere.
*
* Early snapshots of gcc 4.5 don't support this and we can't detect
* this in the preprocessor, but we can live with this because they're
* unreleased. Really, we need to have autoconf for the kernel.
*/
#define unreachable() __builtin_unreachable()
/* Mark a function definition as prohibited from being cloned. */
#define __noclone __attribute__((__noclone__))
/*
* Tell the optimizer that something else uses this function or variable.
*/
#define __visible __attribute__((externally_visible))
/*
* GCC 'asm goto' miscompiles certain code sequences:
*
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
*
* Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
*
* (asm goto is automatically volatile - the naming reflects this.)
*/
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
#define __HAVE_BUILTIN_BSWAP32__
#define __HAVE_BUILTIN_BSWAP64__
#define __HAVE_BUILTIN_BSWAP16__
#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */

File diff suppressed because it is too large Load Diff