samsung-ms013g: new device (Samsung Galaxy Grand 2) (MR 1200)
This commit is contained in:
parent
965150f646
commit
c1f9e6e36f
12 changed files with 4566 additions and 0 deletions
25
device/testing/device-samsung-ms013g/APKBUILD
Executable file
25
device/testing/device-samsung-ms013g/APKBUILD
Executable file
|
@ -0,0 +1,25 @@
|
|||
# Contributor: arnavbhatt288 <arnavbhatt2004@gmail.com>
|
||||
# Contributor: Hacker1245 <kacper12455@gmail.com>
|
||||
|
||||
pkgname=device-samsung-ms013g
|
||||
pkgdesc="Samsung Galaxy Grand 2"
|
||||
pkgver=0.1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="armv7"
|
||||
options="!check !archcheck"
|
||||
depends="postmarketos-base linux-samsung-ms013g mkbootimg mesa-dri-swrast msm-fb-refresher"
|
||||
makedepends="devicepkg-dev"
|
||||
source="deviceinfo"
|
||||
|
||||
build() {
|
||||
devicepkg_build $startdir $pkgname
|
||||
}
|
||||
|
||||
package() {
|
||||
devicepkg_package $startdir $pkgname
|
||||
}
|
||||
|
||||
|
||||
sha512sums="b347bd5550dc915696ebd4da8565b08d930f82e8cf0b4bf109bc9970d6584338bb7ce965a8f41d757ba8ff0759312058be7dbcb099d54f6cb4e1338a5b492328 deviceinfo"
|
33
device/testing/device-samsung-ms013g/deviceinfo
Executable file
33
device/testing/device-samsung-ms013g/deviceinfo
Executable 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 Grand 2"
|
||||
deviceinfo_manufacturer="Samsung"
|
||||
deviceinfo_codename="samsung-ms013g"
|
||||
deviceinfo_year="2013"
|
||||
deviceinfo_dtb=""
|
||||
deviceinfo_modules_initfs=""
|
||||
deviceinfo_arch="armv7"
|
||||
|
||||
# Device related
|
||||
deviceinfo_keyboard="false"
|
||||
deviceinfo_external_storage="true"
|
||||
deviceinfo_screen_width="720"
|
||||
deviceinfo_screen_height="1280"
|
||||
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="heimdall-bootimg"
|
||||
deviceinfo_kernel_cmdline="console=null androidboot.console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 androidboot.selinux=permissive 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="0x02000000"
|
||||
deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x01e00000"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
deviceinfo_flash_heimdall_partition_kernel="BOOT"
|
||||
deviceinfo_flash_heimdall_partition_system="SYSTEM"
|
||||
|
91
device/testing/linux-samsung-ms013g/0001-fix-video-argb-setting.patch
Executable file
91
device/testing/linux-samsung-ms013g/0001-fix-video-argb-setting.patch
Executable file
|
@ -0,0 +1,91 @@
|
|||
From a23d549c51e38ad9fc481859326a786bc00baad8 Mon Sep 17 00:00:00 2001
|
||||
From: Federico Amedeo Izzo <federico.izzo42@gmail.com>
|
||||
Date: Fri, 22 Mar 2019 19:37:07 +0100
|
||||
Subject: [PATCH] fix video argb setting
|
||||
|
||||
---
|
||||
drivers/video/msm/mdss/mdss_fb.c | 34 ++++++++++++++++----------------
|
||||
1 file changed, 17 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c
|
||||
index 835f6fc9687..a598cbd72dc 100644
|
||||
--- a/drivers/video/msm/mdss/mdss_fb.c
|
||||
+++ b/drivers/video/msm/mdss/mdss_fb.c
|
||||
@@ -1767,16 +1767,16 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd)
|
||||
fix->xpanstep = 1;
|
||||
fix->ypanstep = 1;
|
||||
var->vmode = FB_VMODE_NONINTERLACED;
|
||||
- var->blue.offset = 0;
|
||||
- var->green.offset = 8;
|
||||
- var->red.offset = 16;
|
||||
+ var->blue.offset = 24;
|
||||
+ var->green.offset = 16;
|
||||
+ var->red.offset = 8;
|
||||
var->blue.length = 8;
|
||||
var->green.length = 8;
|
||||
var->red.length = 8;
|
||||
var->blue.msb_right = 0;
|
||||
var->green.msb_right = 0;
|
||||
var->red.msb_right = 0;
|
||||
- var->transp.offset = 24;
|
||||
+ var->transp.offset = 0;
|
||||
var->transp.length = 8;
|
||||
bpp = 4;
|
||||
break;
|
||||
@@ -1786,16 +1786,16 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd)
|
||||
fix->xpanstep = 1;
|
||||
fix->ypanstep = 1;
|
||||
var->vmode = FB_VMODE_NONINTERLACED;
|
||||
- var->blue.offset = 8;
|
||||
- var->green.offset = 16;
|
||||
- var->red.offset = 24;
|
||||
+ var->blue.offset = 16;
|
||||
+ var->green.offset = 8;
|
||||
+ var->red.offset = 0;
|
||||
var->blue.length = 8;
|
||||
var->green.length = 8;
|
||||
var->red.length = 8;
|
||||
var->blue.msb_right = 0;
|
||||
var->green.msb_right = 0;
|
||||
var->red.msb_right = 0;
|
||||
- var->transp.offset = 0;
|
||||
+ var->transp.offset = 24;
|
||||
var->transp.length = 8;
|
||||
bpp = 4;
|
||||
break;
|
||||
@@ -2723,15 +2723,15 @@ static int mdss_fb_check_var(struct fb_var_screeninfo *var,
|
||||
/* Figure out if the user meant RGBA or ARGB
|
||||
and verify the position of the RGB components */
|
||||
|
||||
- if (var->transp.offset == 24) {
|
||||
- if ((var->blue.offset != 0) ||
|
||||
- (var->green.offset != 8) ||
|
||||
- (var->red.offset != 16))
|
||||
- return -EINVAL;
|
||||
- } else if (var->transp.offset == 0) {
|
||||
- if ((var->blue.offset != 8) ||
|
||||
+ if (var->transp.offset == 0) {
|
||||
+ if ((var->blue.offset != 24) ||
|
||||
(var->green.offset != 16) ||
|
||||
- (var->red.offset != 24))
|
||||
+ (var->red.offset != 8))
|
||||
+ return -EINVAL;
|
||||
+ } else if (var->transp.offset == 24) {
|
||||
+ if ((var->blue.offset != 16) ||
|
||||
+ (var->green.offset != 8) ||
|
||||
+ (var->red.offset != 0))
|
||||
return -EINVAL;
|
||||
} else
|
||||
return -EINVAL;
|
||||
@@ -2821,7 +2821,7 @@ static int mdss_fb_set_par(struct fb_info *info)
|
||||
break;
|
||||
|
||||
case 32:
|
||||
- if (var->transp.offset == 24)
|
||||
+ if (var->transp.offset == 0)
|
||||
mfd->fb_imgType = MDP_ARGB_8888;
|
||||
else
|
||||
mfd->fb_imgType = MDP_RGBA_8888;
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From 2e32a401ea5df22ab899f4da3e5e1b448b2df51a Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Min <alexey.min@gmail.com>
|
||||
Date: Thu, 7 Mar 2019 17:25:48 +0300
|
||||
Subject: [PATCH 5/6] usb_gadget: set random rndis host MAC address to prevent
|
||||
zero address
|
||||
|
||||
This fixes zero host MAC:
|
||||
|
||||
rndis0: MAC f6:45:91:9b:4e:43
|
||||
rndis0: HOST MAC 00:00:00:00:00:00
|
||||
|
||||
and allows devive to automatically obtain IP addrest on PC host side
|
||||
zero MAC address prevented interface from autoconfiguring
|
||||
---
|
||||
drivers/usb/gadget/u_ether.c | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c
|
||||
index 72c4a992594..c0fc0698697 100644
|
||||
--- a/drivers/usb/gadget/u_ether.c
|
||||
+++ b/drivers/usb/gadget/u_ether.c
|
||||
@@ -1075,8 +1075,16 @@ int gether_setup_name(struct usb_gadget *g, u8 ethaddr[ETH_ALEN],
|
||||
"using random %s ethernet address\n", "self");
|
||||
|
||||
#ifdef CONFIG_USB_ANDROID_SAMSUNG_COMPOSITE
|
||||
- memcpy(dev->host_mac, ethaddr, ETH_ALEN);
|
||||
- printk(KERN_DEBUG "usb: set unique host mac\n");
|
||||
+ if ((ethaddr[0] == 0x00) && (ethaddr[1] == 0x00) &&
|
||||
+ (ethaddr[2] == 0x00) && (ethaddr[3] == 0x00) &&
|
||||
+ (ethaddr[4] == 0x00) && (ethaddr[5] == 0x00)) {
|
||||
+ printk(KERN_DEBUG "%s: no unique host MAC was set, generate random\n", __func__);
|
||||
+ /* we can use random_ether_addr() from include/linux/etherdevice.h */
|
||||
+ random_ether_addr(ethaddr);
|
||||
+ } else {
|
||||
+ printk(KERN_DEBUG "%s: set unique host mac\n", __func__);
|
||||
+ }
|
||||
+ memcpy(dev->host_mac, ethaddr, ETH_ALEN);
|
||||
#else
|
||||
if (get_ether_addr(host_addr, dev->host_mac))
|
||||
dev_warn(&g->dev,
|
||||
--
|
||||
2.21.0
|
||||
|
64
device/testing/linux-samsung-ms013g/APKBUILD
Executable file
64
device/testing/linux-samsung-ms013g/APKBUILD
Executable file
|
@ -0,0 +1,64 @@
|
|||
# Contributor: arnavbhatt288 <arnavbhatt2004@gmail.com>
|
||||
# Contributor: Hacker1245 <kacper12455@gmail.com>
|
||||
|
||||
pkgname=linux-samsung-ms013g
|
||||
pkgver=3.4.0
|
||||
pkgrel=0
|
||||
pkgdesc="Samsung Galaxy Grand 2 kernel fork"
|
||||
arch="armv7"
|
||||
_carch="arm"
|
||||
_flavor="samsung-ms013g"
|
||||
url="https://kernel.org"
|
||||
license="GPL-2.0-only"
|
||||
options="!strip !check !tracedeps"
|
||||
makedepends="bash bc bison devicepkg-dev flex openssl-dev perl dtbtool"
|
||||
|
||||
# Source
|
||||
_repository="android_kernel_samsung_ms013g"
|
||||
_commit="5b6f4c12cbae37e51afde92244e281e659a678d4"
|
||||
_config="config-$_flavor.$arch"
|
||||
source="
|
||||
$pkgname-$_commit.tar.gz::https://github.com/MSM8226-Samsung/$_repository/archive/$_commit.tar.gz
|
||||
$_config
|
||||
gcc7-give-up-on-ilog2-const-optimizations.patch
|
||||
gcc8-fix-put-user.patch
|
||||
kernel-use-the-gnu89-standard-explicitly.patch
|
||||
timeconst_fix.patch
|
||||
elogind.patch
|
||||
0007-usb_gadget-set-random-rndis-host-MAC-address-to-prev.patch
|
||||
0001-fix-video-argb-setting.patch
|
||||
fix_fb.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"
|
||||
|
||||
}
|
||||
|
||||
package() {
|
||||
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"
|
||||
|
||||
# Master DTB (deviceinfo_bootimg_qcdt)
|
||||
dtbTool -p scripts/dtc/ -o "$_outdir/arch/$_carch/boot"/dt.img "$_outdir/arch/$_carch/boot/"
|
||||
install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img "$pkgdir"/boot/dt.img
|
||||
}
|
||||
|
||||
sha512sums="3312bba75b65e8ef46ecdc043938130ef5c5ae8a58dbc03d8b6ec23160b120c738f0c372e1a822e5fffb2888832b6b4af6326a0048d76ff1b264d586c387ad0b linux-samsung-ms013g-5b6f4c12cbae37e51afde92244e281e659a678d4.tar.gz
|
||||
875c6dd668506a1e422655e005fe6545631c1d83f6cb6ee31c06ae008ea2a5497423f4f71d0349c4eefc572cfe89c1634fe36c07b5939da19f4bc61f01532bc9 config-samsung-ms013g.armv7
|
||||
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
|
||||
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
|
||||
ad0182a483791fc88e058838bc331b2f04a75ba291e763767babdb815efadfc3b4fda97e69e2e3f00a426cabea088e35297a92bd287592597d1e309be68ee92c kernel-use-the-gnu89-standard-explicitly.patch
|
||||
7191d532df8f6a8bf64b5b5bcaa7343c8d1b844c891a67fc6d29f421903ddd46c3e779a6f5a5833a6a8f635d1582f5224fa795b3912b8b211a90ee561ad31469 timeconst_fix.patch
|
||||
93f7870b2063d4ddb1f35dc4de4b213d83e0f54f59511b3050e880763f2374b3816ac0c879de76fe8a0b61d62c1753c5dda7326961164a8fcbfc8a9232309569 elogind.patch
|
||||
27f890cf82027649ba742b606a87ce6a82f9685b075bb7b50bffec77221e70434ee78d118d39048350537c5ecdad208658967e492eeeb997e7f6884fa78ac696 0007-usb_gadget-set-random-rndis-host-MAC-address-to-prev.patch
|
||||
a48336bbfead6ad0c84d2fce0c40a3f5530aebdff356a6835cceaf59a50a6f860d2f8027703a92927955fbb18857ba78788e010d017bf67730f069b36e96fe87 0001-fix-video-argb-setting.patch
|
||||
a1267c3a999aafd4d9ef9c5f75cdf05605a3dc53466681d232721f1613b06f1d54c9a80f964d3114c42800faef53457c7c80867381adea0010deda4cdbd4c2ce fix_fb.patch"
|
4197
device/testing/linux-samsung-ms013g/config-samsung-ms013g.armv7
Executable file
4197
device/testing/linux-samsung-ms013g/config-samsung-ms013g.armv7
Executable file
File diff suppressed because it is too large
Load diff
81
device/testing/linux-samsung-ms013g/elogind.patch
Executable file
81
device/testing/linux-samsung-ms013g/elogind.patch
Executable file
|
@ -0,0 +1,81 @@
|
|||
From 25437b2a54dd619a96e268ecaf303b089aa785e4 Mon Sep 17 00:00:00 2001
|
||||
From: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Date: Mon, 4 Jun 2012 11:00:45 -0700
|
||||
Subject: [PATCH] vfs: Fix /proc/<tid>/fdinfo/<fd> file handling
|
||||
|
||||
commit 0640113be25d283e0ff77a9f041e1242182387f0 upstream.
|
||||
|
||||
Cyrill Gorcunov reports that I broke the fdinfo files with commit
|
||||
30a08bf2d31d ("proc: move fd symlink i_mode calculations into
|
||||
tid_fd_revalidate()"), and he's quite right.
|
||||
|
||||
The tid_fd_revalidate() function is not just used for the <tid>/fd
|
||||
symlinks, it's also used for the <tid>/fdinfo/<fd> files, and the
|
||||
permission model for those are different.
|
||||
|
||||
So do the dynamic symlink permission handling just for symlinks, making
|
||||
the fdinfo files once more appear as the proper regular files they are.
|
||||
|
||||
Of course, Al Viro argued (probably correctly) that we shouldn't do the
|
||||
symlink permission games at all, and make the symlinks always just be
|
||||
the normal 'lrwxrwxrwx'. That would have avoided this issue too, but
|
||||
since somebody noticed that the permissions had changed (which was the
|
||||
reason for that original commit 30a08bf2d31d in the first place), people
|
||||
do apparently use this feature.
|
||||
|
||||
[ Basically, you can use the symlink permission data as a cheap "fdinfo"
|
||||
replacement, since you see whether the file is open for reading and/or
|
||||
writing by just looking at st_mode of the symlink. So the feature
|
||||
does make sense, even if the pain it has caused means we probably
|
||||
shouldn't have done it to begin with. ]
|
||||
|
||||
Change-Id: I6499a97dc8993b3dd6b4df5af2724990ee91fd3b
|
||||
Reported-and-tested-by: Cyrill Gorcunov <gorcunov@openvz.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
fs/proc/base.c | 17 ++++++++++-------
|
||||
1 file changed, 10 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/fs/proc/base.c b/fs/proc/base.c
|
||||
index 2f198dad12c5..c8cb15dcca08 100644
|
||||
--- a/fs/proc/base.c
|
||||
+++ b/fs/proc/base.c
|
||||
@@ -1838,7 +1838,7 @@ static int tid_fd_revalidate(struct dentry *dentry, struct nameidata *nd)
|
||||
rcu_read_lock();
|
||||
file = fcheck_files(files, fd);
|
||||
if (file) {
|
||||
- unsigned i_mode, f_mode = file->f_mode;
|
||||
+ unsigned f_mode = file->f_mode;
|
||||
|
||||
rcu_read_unlock();
|
||||
put_files_struct(files);
|
||||
@@ -1854,12 +1854,14 @@ static int tid_fd_revalidate(struct dentry *dentry, struct nameidata *nd)
|
||||
inode->i_gid = 0;
|
||||
}
|
||||
|
||||
- i_mode = S_IFLNK;
|
||||
- if (f_mode & FMODE_READ)
|
||||
- i_mode |= S_IRUSR | S_IXUSR;
|
||||
- if (f_mode & FMODE_WRITE)
|
||||
- i_mode |= S_IWUSR | S_IXUSR;
|
||||
- inode->i_mode = i_mode;
|
||||
+ if (S_ISLNK(inode->i_mode)) {
|
||||
+ unsigned i_mode = S_IFLNK;
|
||||
+ if (f_mode & FMODE_READ)
|
||||
+ i_mode |= S_IRUSR | S_IXUSR;
|
||||
+ if (f_mode & FMODE_WRITE)
|
||||
+ i_mode |= S_IWUSR | S_IXUSR;
|
||||
+ inode->i_mode = i_mode;
|
||||
+ }
|
||||
|
||||
security_task_to_inode(task, inode);
|
||||
put_task_struct(task);
|
||||
@@ -1894,6 +1896,7 @@ static struct dentry *proc_fd_instantiate(struct inode *dir,
|
||||
ei = PROC_I(inode);
|
||||
ei->fd = fd;
|
||||
|
||||
+ inode->i_mode = S_IFLNK;
|
||||
inode->i_op = &proc_pid_link_inode_operations;
|
||||
inode->i_size = 64;
|
||||
ei->op.proc_get_link = proc_fd_link;
|
12
device/testing/linux-samsung-ms013g/fix_fb.patch
Executable file
12
device/testing/linux-samsung-ms013g/fix_fb.patch
Executable file
|
@ -0,0 +1,12 @@
|
|||
diff -Naur kernel/drivers/video/msm/mdss/mdss_fb.c kernel-changed/drivers/video/msm/mdss/mdss_fb.c
|
||||
--- kernel/drivers/video/msm/mdss/mdss_fb.c 2020-04-26 22:22:08.386388683 +0530
|
||||
+++ kernel-changed/drivers/video/msm/mdss/mdss_fb.c 2020-04-27 01:35:05.748597845 +0530
|
||||
@@ -1216,7 +1216,7 @@
|
||||
boot_mode_lpm, boot_mode_recovery);
|
||||
|
||||
/* Incase of Normal Booting, Do not reserve FB memory */
|
||||
- if ((!boot_mode_lpm) && (!boot_mode_recovery)){
|
||||
+ if (0){
|
||||
/* Normal Booting */
|
||||
mfd->fbi->screen_base = NULL;
|
||||
mfd->fbi->fix.smem_start = 0;
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc7-give-up-on-ilog2-const-optimizations.patch
|
1
device/testing/linux-samsung-ms013g/gcc8-fix-put-user.patch
Symbolic link
1
device/testing/linux-samsung-ms013g/gcc8-fix-put-user.patch
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/gcc8-fix-put-user.patch
|
|
@ -0,0 +1 @@
|
|||
../../.shared-patches/linux/kernel-use-the-gnu89-standard-explicitly.patch
|
17
device/testing/linux-samsung-ms013g/timeconst_fix.patch
Executable file
17
device/testing/linux-samsung-ms013g/timeconst_fix.patch
Executable file
|
@ -0,0 +1,17 @@
|
|||
diff --git a/kernel/timeconst.pl b/kernel/timeconst.pl
|
||||
index eb51d76e058a4..3f42652a6a374 100644
|
||||
--- a/kernel/timeconst.pl
|
||||
+++ b/kernel/timeconst.pl
|
||||
@@ -369,10 +369,8 @@ (@)
|
||||
die "Usage: $0 HZ\n";
|
||||
}
|
||||
|
||||
- @val = @{$canned_values{$hz}};
|
||||
- if (!defined(@val)) {
|
||||
- @val = compute_values($hz);
|
||||
- }
|
||||
+ $cv = $canned_values{$hz};
|
||||
+ @val = defined($cv) ? @$cv : compute_values($hz);
|
||||
output($hz, @val);
|
||||
}
|
||||
exit 0;
|
Loading…
Reference in a new issue