lenovo-achilles: new device (MR 4103)

[ci:skip-build] already built successfully in CI
This commit is contained in:
aleiepure 2023-05-20 20:12:24 +02:00 committed by Clayton Craft
parent 016e512c83
commit cf607b6987
No known key found for this signature in database
GPG key ID: 4A4CED6D7EDF950A
13 changed files with 4199 additions and 0 deletions

View file

@ -0,0 +1,38 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-lenovo-achilles
pkgdesc="Lenovo Tab2 A10-30L"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
options="!check !archcheck"
depends="
linux-lenovo-achilles
mkbootimg
postmarketos-base
"
makedepends="devicepkg-dev"
source="deviceinfo"
subpackages="
$pkgname-nonfree-firmware:nonfree_firmware
"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
nonfree_firmware() {
pkgdesc="Wifi firmware"
depends="firmware-lenovo-achilles"
mkdir "$subpkgdir"
}
sha512sums="
9248cf9f86d0ee6a4247a7f5f582f949b31516037655c4ee468bdcbcddd666170fceb84c25f87d0e30987a824f8ee0325a6baf6660a7f177636d66dfcc8605ab deviceinfo
"

View file

@ -0,0 +1,31 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="Lenovo Tab2 A10-30L"
deviceinfo_manufacturer="Lenovo"
deviceinfo_codename="lenovo-achilles"
deviceinfo_year="2015"
deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1280"
deviceinfo_screen_height="800"
# Bootloader related
deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 earlyprintk"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
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"

View file

@ -0,0 +1,32 @@
pkgname=firmware-lenovo-achilles
pkgver=1
pkgrel=0
_commit="12e11bf9e713114e177b82dee23b8dd457a29783"
pkgdesc="Firmware files for Lenovo TB2-X30L (aka A10-30L, achilles)"
url="https://postmarketos.org"
arch="armv7"
license="proprietary"
depends="wcnss-wlan"
source="$pkgname-$_commit.tar.gz::https://gitlab.com/aleiepure/proprietary_vendor_lenovo/-/archive/$_commit.tar.gz"
options="!check !strip !archcheck !spdx !tracedeps pmb:cross-native"
builddir="$srcdir/proprietary_vendor_lenovo-$_commit"
package() {
_files="
wcnss.b00 wcnss.b01 wcnss.b02 wcnss.b04 wcnss.b06
wcnss.b09 wcnss.b10 wcnss.b11 wcnss.b12 wcnss.mdt"
for _i in $_files; do
install -D -m644 "$_i" "$pkgdir"/lib/firmware/postmarketos/"$_i"
done
_files="WCNSS_cfg.dat WCNSS_qcom_cfg.ini
WCNSS_qcom_wlan_nv.bin WCNSS_qcom_wlan_nv_4x.bin WCNSS_wlan_dictionary.dat"
for _i in $_files; do
install -D -m644 wlan/prima/"$_i" \
"$pkgdir"/lib/firmware/postmarketos/wlan/prima/"$_i"
done
}
sha512sums="
0f14b6176b442cf3784e6c7d8035dd5688e437b63716e0adc4423e85b5c168a2e3c2a247809e559de56fa08d4474bbb2dc803312cf4fe4d1ddb966b8d6cada5f firmware-lenovo-achilles-12e11bf9e713114e177b82dee23b8dd457a29783.tar.gz
"

View file

@ -0,0 +1,30 @@
diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
index 39eb16b0..bfe2a2f5 100644
--- a/arch/arm/include/asm/ftrace.h
+++ b/arch/arm/include/asm/ftrace.h
@@ -45,7 +45,7 @@ void *return_address(unsigned int);
#else
-extern inline void *return_address(unsigned int level)
+static inline void *return_address(unsigned int level)
{
return NULL;
}
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
index fafedd86..6b6b4d07 100644
--- a/arch/arm/kernel/return_address.c
+++ b/arch/arm/kernel/return_address.c
@@ -63,10 +63,12 @@ void *return_address(unsigned int level)
#warning "TODO: return_address should use unwind tables"
#endif
+/*
void *return_address(unsigned int level)
{
return NULL;
}
+*/
#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */

View file

@ -0,0 +1,13 @@
diff --git a/drivers/media/platform/msm/vidc/hfi_packetization.c b/drivers/media/platform/msm/vidc/hfi_packetization.c
index 758331eb..d58ee53d 100644
--- a/drivers/media/platform/msm/vidc/hfi_packetization.c
+++ b/drivers/media/platform/msm/vidc/hfi_packetization.c
@@ -324,7 +324,7 @@ int create_pkt_cmd_sys_ping(struct hfi_cmd_sys_ping_packet *pkt)
return rc;
}
-inline int create_pkt_cmd_sys_session_init(
+static inline int create_pkt_cmd_sys_session_init(
struct hfi_cmd_sys_session_init_packet *pkt,
struct hal_session *session,
u32 session_domain, u32 session_codec)

View file

@ -0,0 +1,13 @@
diff --git a/drivers/video/msm/mdss/mdp3_ctrl.c b/drivers/video/msm/mdss/mdp3_ctrl.c
index db089c07..811c0705 100755
--- a/drivers/video/msm/mdss/mdp3_ctrl.c
+++ b/drivers/video/msm/mdss/mdp3_ctrl.c
@@ -2481,7 +2481,7 @@ int mdp3_ctrl_init(struct msm_fb_data_type *mfd)
splash_mismatch = 1;
mdp3_interface->on_fnc = mdp3_ctrl_on;
- mdp3_interface->off_fnc = mdp3_ctrl_off;
+ mdp3_interface->off_fnc = NULL;
mdp3_interface->do_histogram = NULL;
mdp3_interface->cursor_update = NULL;
mdp3_interface->dma_fnc = mdp3_ctrl_pan_display;

View file

@ -0,0 +1,13 @@
diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
index e7f0d7d2..153c4f40 100644
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
@@ -110,7 +110,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CONNTRACK) += xt_conntrack.o
obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) += xt_cpu.o
obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
-obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
+obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_DSCP.o
obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o

View file

@ -0,0 +1,13 @@
diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped
index 2d30f417..d0eb405c 100644
--- a/scripts/dtc/dtc-lexer.lex.c_shipped
+++ b/scripts/dtc/dtc-lexer.lex.c_shipped
@@ -637,7 +637,7 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+extern YYLTYPE yylloc;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
#define YY_USER_ACTION \

View file

@ -0,0 +1,97 @@
# Reference: https://wiki.postmarketos.org/wiki/Lenovo_Tab2_A10-30L_(lenovo-achilles)
# Kernel config extracted from recovery (https://gitlab.com/aleiepure/lenovo_achilles_kernel)
pkgname=linux-lenovo-achilles
pkgver=3.10.49
pkgrel=0
pkgdesc="Lenovo Tab2 A10-30L kernel fork"
arch="armv7"
_carch="arm"
_flavor="lenovo-achilles"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="
bash
bc
bison
devicepkg-dev
dtbtool
findutils
flex
openssl-dev
perl
linux-headers
gcc6
"
# Compiler: GCC 6 (doesn't boot when compiled with newer versions)
if [ "${CC:0:5}" != "gcc6-" ]; then
CC="gcc6-$CC"
HOSTCC="gcc6-gcc"
CROSS_COMPILE="gcc6-$CROSS_COMPILE"
fi
# Source
_repository="lenovo_achilles_kernel"
_commit="e123f2de60d1c980ec4ecdb266bf030bcfdb065e"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://gitlab.com/aleiepure/$_repository/-/archive/$_commit.tar.gz
$_config
01-fix_return_address.patch
02-fix_hfi_packetization.patch
03-fix_blank_display.patch
04-fix_netfilter_makefile.patch
05-fix_yylloc.patch
gcc7-give-up-on-ilog2-const-optimizations.patch
gcc8-fix-put-user.patch
kernel-use-the-gnu89-standard-explicitly.patch
"
builddir="$srcdir/$_repository-$_commit"
_outdir="out"
prepare() {
default_prepare
. downstreamkernel_prepare
}
build() {
unset LDFLAGS
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" \
modules
# Master DTB (deviceinfo_bootimg_qcdt)
dtbTool -o "$_outdir/arch/$_carch/boot"/dt.img \
"$_outdir/arch/$_carch/boot/"
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \
"$_flavor" "$_outdir"
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
INSTALL_MOD_PATH="$pkgdir" \
modules_install
install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img \
"$pkgdir"/boot/dt.img
}
sha512sums="
93677bc7a789665e83e1cc8b0d0ed98fcd3e6336f147c8cf05fceaa5fe7371485bc9cba42552e2a8ba5b22599d2961e44dc301b7e442ffb39ef55b2270d9868c linux-lenovo-achilles-e123f2de60d1c980ec4ecdb266bf030bcfdb065e.tar.gz
99b3a1b84a9403c600882e61d1176becb4b7bd72383601512a822526784043524350ffba8b97d65d4740ec2f9e507dc1f9c89c632477d3032bcb1f63dcca7614 config-lenovo-achilles.armv7
02df3e4071c7870938422f68da54f997557634acb6ac57fddc30f9437d5993d0b197d53a7c99536d0e92c54d563c3881a455f0b14e529d43638f0c52f404a0f5 01-fix_return_address.patch
ce59712aa8ee0fd748ad3b63d20955500544d8852b985e6d3958adcd8039ac9f8e56e282f9238af06ab1d99ceb750003c4fc73eaba580a7f1545d69e1d0b0b2a 02-fix_hfi_packetization.patch
34f6f12772c91cd9536d85c0b728ed4b6be623e912bc09b6ea8188d42a6cae1867e8fc716bc17bf2b4bd1632bccfe1971ef1bc2c9a225dd34c37196f1d6e1dac 03-fix_blank_display.patch
75dfd14bccd38740603e65733c780ebfa77d730d3eb0d0779d294104e815b420b1145cd541350c77c27e4938a76663ea7145d2fcb0087e2a23416a0532894173 04-fix_netfilter_makefile.patch
13032010c1ce7e9dd05fa97c91ace4a78635f261f7756b572b9a452b2ac96dfd481a1f49c06022b61c4415bebe71e3c564179e3294110534e2c94a8c52c994a0 05-fix_yylloc.patch
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
ad0182a483791fc88e058838bc331b2f04a75ba291e763767babdb815efadfc3b4fda97e69e2e3f00a426cabea088e35297a92bd287592597d1e309be68ee92c kernel-use-the-gnu89-standard-explicitly.patch
"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
../../.shared-patches/linux/gcc7-give-up-on-ilog2-const-optimizations.patch

View file

@ -0,0 +1 @@
../../.shared-patches/linux/gcc8-fix-put-user.patch

View file

@ -0,0 +1 @@
../../.shared-patches/linux/kernel-use-the-gnu89-standard-explicitly.patch