samsung-gtel3g: new device (Galaxy Tab E 9.6) (MR 1385)

This commit is contained in:
realaravinth 2020-07-02 18:47:24 +05:30 committed by Bart Ribbers
parent 0b00e23280
commit 416f80d659
No known key found for this signature in database
GPG key ID: 699D16185DAFAE61
11 changed files with 4029 additions and 0 deletions

View file

@ -0,0 +1,22 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-gtel3g
pkgdesc="Samsung Galaxy Tab E 9.6"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="armv7"
options="!check !archcheck"
depends="postmarketos-base linux-samsung-gtel3g mkbootimg mesa-dri-gallium msm-fb-refresher"
makedepends="devicepkg-dev"
source="deviceinfo"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
sha512sums="1daaf216df74e5df8db40a1ffa896b7f44fe13998fa627354c579f962e0408f32afffade4696129056d22574e4db2fa0a846dff57cacfea61a97058f11c4e695 deviceinfo"

View file

@ -0,0 +1,33 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell scripts.
deviceinfo_format_version="0"
deviceinfo_name="Samsung Galaxy Tab E 9.6"
deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-gtel3g"
deviceinfo_year="2015"
deviceinfo_dtb=""
deviceinfo_modules_initfs=""
deviceinfo_arch="armv7"
# Device related
deviceinfo_chassis="tablet"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="800"
deviceinfo_screen_height="1280"
# Bootloader related
deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_kernel_cmdline="buildvariant=userdebug"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_heimdall_partition_kernel="BOOT"
deviceinfo_flash_heimdall_partition_system="SYSTEM"

View file

@ -0,0 +1,49 @@
From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001
From: Behan Webster <behanw@converseincode.com>
Date: Wed, 24 Sep 2014 01:06:46 +0100
Subject: [PATCH] ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
With compilers which follow the C99 standard (like modern versions of gcc and
clang), "extern inline" does the wrong thing (emits code for an externally
linkable version of the inline function). In this case using static inline
and removing the NULL version of return_address in return_address.c does
the right thing.
Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/include/asm/ftrace.h | 2 +-
arch/arm/kernel/return_address.c | 5 -----
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
index 39eb16b0066f2..bfe2a2f5a644e 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 fafedd86885dd..f6aa84d5b93c9 100644
--- a/arch/arm/kernel/return_address.c
+++ b/arch/arm/kernel/return_address.c
@@ -63,11 +63,6 @@ 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 */
EXPORT_SYMBOL_GPL(return_address);

View file

@ -0,0 +1,61 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm/configs/gtel3g-dt_hw07_defconfig
pkgname=linux-samsung-gtel3g
pkgver=3.10.17
pkgrel=0
pkgdesc="Samsung Galaxy Tab E 9.6 kernel fork"
arch="armv7"
_carch="arm"
_flavor="samsung-gtel3g"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="bash bc bison devicepkg-dev flex openssl-dev perl linux-headers dtbtool"
# Source
_repository="SM-T561-gtel3g-kernel"
_commit="138e4fdf85854bd9ba791ae05ad9bd036d8b64fd"
_config="config-$_flavor.$arch"
source="$pkgname-$_commit.tar.gz::https://github.com/realaravinth/$_repository/archive/$_commit.tar.gz
$_config
gcc7-give-up-on-ilog2-const-optimizations.patch
gcc8-fix-put-user.patch
fix_recordmcount.patch
00_fix_return_address.patch
fix-dts.patch
sprdfb-check-for-buffering.patch
sprdfb-fix-swapped-colors.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"
dtbTool -s 2048 -p scripts/dtc/ -o "$_outdir/arch/$_carch/boot/"dt.img "$_outdir/arch/$_carch/boot/dts"
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"
# Master DTB (deviceinfo_bootimg_qcdt)
install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img "$pkgdir"/boot/dt.img
}
sha512sums="46b60368a79483f4cc322934027b413cea602b70ca2fd5683913c2a350f03ed26acb409a33c39431cc83fc75500ffd35ce820bc6b1032cf6fce869221e059bba linux-samsung-gtel3g-138e4fdf85854bd9ba791ae05ad9bd036d8b64fd.tar.gz
9319b003bc41a3f9ad3f7793ca17da265df0d1c5ecfe665e38605eac57b31909d774fc9f38de79c3f9bb74124db0dd8baade0129bc8f9cc0b94c7073cda9e149 config-samsung-gtel3g.armv7
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
6aa11a75f422ac5c20cddfce23bff81940e61e65bc86fe1070c60714a6ccf631b2da70bff20e2b88e723706f0f233eb03540a8d9389adffd495592e8ab6bd82a fix_recordmcount.patch
ea1d3b5a234fa565e3c1a792de48f4fc4e6023d281d303c8e319c7ef28edc5739ab0e4dea0139a41f0a5c7d03e27921ccaa214fd0ac5c72245a094ce60128864 00_fix_return_address.patch
cf417e27474788ee89738427e0298a1c6e3c73e24514cec5dfc7528dde1f55afec3d15fec0c9ead13da3cb0c998756a9da6a9fd67035dd7e7062d5d8c13c578c fix-dts.patch
fa11ab7040b83dad145a8f2ca3e5b17b3189b90ca43a8f64e63be4fcb4ba2debe8134b3e28f6f663bc8b7f1e72b1f3a68f342300eed45cb72de70cefba4fa0c2 sprdfb-check-for-buffering.patch
6836001b24508d413a059f19b0c6f6f547037f68886c22159ad51be91d1a089e3d1d9ed79c3c62724648df7f810cd81d96a83f4a34368b373524b649e5539656 sprdfb-fix-swapped-colors.patch"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,179 @@
From fac558fd44fd91425797a2e337b6ef0e451a1c1d Mon Sep 17 00:00:00 2001
From: realaravinth <realaravinth@batsense.net>
Date: Wed, 1 Jul 2020 14:49:18 +0530
Subject: [PATCH] sprd,sc-id replaced with qcom,msm-id
---
arch/arm/boot/dts/sprd-scx35_gtel3g_rev00.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev01.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev02.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev03.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev04.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev05.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev06.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev07.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev08.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev09.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev10.dts | 2 +-
arch/arm/boot/dts/sprd-scx35_gtel3g_rev11.dts | 2 +-
12 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev00.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev00.dts
index 25ad2efa..b341f365 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev00.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev00.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 0 0x20000>;
+ qcom,msm-id = <8830 0 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev01.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev01.dts
index 177ece29..b0ddae88 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev01.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev01.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 1 0x20000>;
+ qcom,msm-id = <8830 1 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev02.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev02.dts
index cf050ab7..8ac7178e 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev02.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev02.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 2 0x20000>;
+ qcom,msm-id = <8830 2 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev03.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev03.dts
index fc72c8f5..76926108 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev03.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev03.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 3 0x20000>;
+ qcom,msm-id = <8830 3 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev04.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev04.dts
index 5c5e75a8..449ce412 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev04.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev04.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 4 0x20000>;
+ qcom,msm-id = <8830 4 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev05.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev05.dts
index d481339d..75c09c12 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev05.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev05.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 5 0x20000>;
+ qcom,msm-id = <8830 5 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev06.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev06.dts
index 1d9f7fbe..5c5b6bd3 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev06.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev06.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 6 0x20000>;
+ qcom,msm-id = <8830 6 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev07.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev07.dts
index f14b2001..f72fd561 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev07.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev07.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 7 0x20000>;
+ qcom,msm-id = <8830 7 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev08.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev08.dts
index c0909b14..dfa807bd 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev08.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev08.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 8 0x20000>;
+ qcom,msm-id = <8830 8 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev09.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev09.dts
index 174c8d9f..63bd1224 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev09.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev09.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 9 0x20000>;
+ qcom,msm-id = <8830 9 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev10.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev10.dts
index 296f0592..6991ba58 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev10.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev10.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 10 0x20000>;
+ qcom,msm-id = <8830 10 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
diff --git a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev11.dts b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev11.dts
index 979167cb..4974526e 100755
--- a/arch/arm/boot/dts/sprd-scx35_gtel3g_rev11.dts
+++ b/arch/arm/boot/dts/sprd-scx35_gtel3g_rev11.dts
@@ -27,7 +27,7 @@
/ {
model = "Spreadtrum SP7730G board";
- sprd,sc-id = <8830 11 0x20000>;
+ qcom,msm-id = <8830 11 0x20000>;
chosen {
bootargs = "init=/init root=/dev/ram0 rw";
linux,initrd-start = <0x85500000>;
--
2.27.0

View file

@ -0,0 +1,61 @@
From 84f8a24ade96a8c1499823b160a0591199cf9d12 Mon Sep 17 00:00:00 2001
From: Laura Abbott <labbott@redhat.com>
Date: Fri, 8 Jul 2016 12:18:50 -0700
Subject: [PATCH] ftrace/recordmcount: Work around for addition of metag magic
but not relocations
commit b2e1c26f0b62531636509fbcb6dab65617ed8331 upstream.
glibc recently did a sync up (94e73c95d9b5 "elf.h: Sync with the gabi
webpage") that added a #define for EM_METAG but did not add relocations
This triggers build errors:
scripts/recordmcount.c: In function 'do_file':
scripts/recordmcount.c:466:28: error: 'R_METAG_ADDR32' undeclared (first use in this function)
case EM_METAG: reltype = R_METAG_ADDR32;
^~~~~~~~~~~~~~
scripts/recordmcount.c:466:28: note: each undeclared identifier is reported only once for each function it appears in
scripts/recordmcount.c:468:20: error: 'R_METAG_NONE' undeclared (first use in this function)
rel_type_nop = R_METAG_NONE;
^~~~~~~~~~~~
Work around this change with some more #ifdefery for the relocations.
Fedora Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1354034
Link: http://lkml.kernel.org/r/1468005530-14757-1-git-send-email-labbott@redhat.com
Cc: James Hogan <james.hogan@imgtec.com>
Fixes: 00512bdd4573 ("metag: ftrace support")
Reported-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
scripts/recordmcount.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c
index e167592793a7..42396a74405d 100644
--- a/scripts/recordmcount.c
+++ b/scripts/recordmcount.c
@@ -33,10 +33,17 @@
#include <string.h>
#include <unistd.h>
+/*
+ * glibc synced up and added the metag number but didn't add the relocations.
+ * Work around this in a crude manner for now.
+ */
#ifndef EM_METAG
-/* Remove this when these make it to the standard system elf.h. */
#define EM_METAG 174
+#endif
+#ifndef R_METAG_ADDR32
#define R_METAG_ADDR32 2
+#endif
+#ifndef R_METAG_NONE
#define R_METAG_NONE 3
#endif

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,25 @@
From ffed22975488007667b005f41e2b189dafc76a29 Mon Sep 17 00:00:00 2001
From: realaravinth <realaravinth@batsense.net>
Date: Fri, 3 Jul 2020 20:31:01 +0530
Subject: [PATCH] buffere awareness to make x11 work
---
drivers/video/sprdfb/sprdfb_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/sprdfb/sprdfb_main.c b/drivers/video/sprdfb/sprdfb_main.c
index 9d572f0d..7ad1445b 100755
--- a/drivers/video/sprdfb/sprdfb_main.c
+++ b/drivers/video/sprdfb/sprdfb_main.c
@@ -435,7 +435,7 @@ static int sprdfb_check_var(struct fb_var_screeninfo *var, struct fb_info *fb)
if ((var->xres != fb->var.xres) ||
(var->yres != fb->var.yres) ||
(var->xres_virtual != fb->var.xres_virtual) ||
- (var->yres_virtual != fb->var.yres_virtual) ||
+ (fb->var.yres_virtual % var->yres_virtual != 0) ||
(var->xoffset != fb->var.xoffset) ||
#ifndef BIT_PER_PIXEL_SURPPORT
(var->bits_per_pixel != fb->var.bits_per_pixel) ||
--
2.27.0

View file

@ -0,0 +1,15 @@
By default, color channels on Spreadtrum devices are swapped. This patch makes kernel use BGR565, which has normal color channels.
diff --git a/drivers/video/sprdfb/sprdfb_main.c b/drivers/video/sprdfb/sprdfb_main.c
index 3e6c70d..80fceb9 100644
--- a/drivers/video/sprdfb/sprdfb_main.c
+++ b/drivers/video/sprdfb/sprdfb_main.c
@@ -51,7 +51,7 @@ enum{
SPRD_IN_DATA_TYPE_LIMIT
};
-#define SPRDFB_IN_DATA_TYPE SPRD_IN_DATA_TYPE_ABGR888
+#define SPRDFB_IN_DATA_TYPE SPRD_IN_DATA_TYPE_BGR565
#ifdef CONFIG_FB_TRIPLE_FRAMEBUFFER
#define FRAMEBUFFER_NR (3)