samsung-jxelte: new device (MR 1853)

This commit is contained in:
Error1000 2021-01-04 00:54:21 +02:00 committed by Martijn Braam
parent 61e0dce335
commit 8f994d8c34
No known key found for this signature in database
GPG key ID: C4280ACB000B060F
10 changed files with 4416 additions and 0 deletions

View file

@ -0,0 +1,30 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-jxelte
pkgdesc="Samsung Galaxy J7(2016)"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="postmarketos-base linux-samsung-jxelte mkbootimg mesa-dri-gallium"
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-samsung-jxelte"
mkdir "$subpkgdir"
}
sha512sums="5e325e6f2d70c39e7d9dadf2522832c84dd48ae44e2260b02038567d6af65204a7de88ea9a10e161be9ee19a4238669077fd16ad46ae7b40507a17629a944101 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="Samsung Galaxy J7(2016)"
deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-jxelte"
deviceinfo_year="2016"
deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="handset"
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="androidboot.selinux=permissive androidboot.selinux=permissive"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x10000000"
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"
deviceinfo_flash_sparse="true"

View file

@ -0,0 +1,32 @@
pkgname=firmware-samsung-jxelte
pkgver=1
pkgrel=0
pkgdesc="Samsung Galaxy J7 2016 Firmware"
url="https://gitlab.com/android_samsung_universal7870"
arch="noarch"
license="proprietary"
options="!check !archcheck"
_commit="9cf17bec93940d68755158e69b9b3abdf3b4ece1"
_repo="https://gitlab.com/android_samsung_universal7870/vendor/android_vendor_samsung_j7xelte/-/raw/$_commit/proprietary/vendor"
_prefix=$pkgname-$_commit
_files_etc="
bcmdhd_sta.bin
nvram.txt
"
for _file in $_files_etc; do
source="$source $_prefix-$_file::$_repo/etc/wifi/$_file"
done
package() {
local file
for file in $_files_etc; do
install -Dm644 "$srcdir/$_prefix-$file" \
"$pkgdir/lib/firmware/postmarketos/$file"
done
}
sha512sums="3a70de63fc0a842306fc05f66f75ac2fcf7b7726b1a195cf6746c49bb0b563e994c46f6f02c4ad3e3a14819cbc5d5ba930ef0ab720aa1cd2a4839a1d04bf0096 firmware-samsung-jxelte-9cf17bec93940d68755158e69b9b3abdf3b4ece1-bcmdhd_sta.bin
c34bb422662fcfb604ff0942a294d3b8ec360e07ca5b4a586472d42ec37ba60776e010f99f56ce511c5a1779c438605ec7a0fd965dece9b3b70b9e093d7913e3 firmware-samsung-jxelte-9cf17bec93940d68755158e69b9b3abdf3b4ece1-nvram.txt"

View file

@ -0,0 +1,21 @@
The kernel can be configured to be compiled for multiple devices,
this patch does that configuration.
---
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index 96e7219d8..92a07a684 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -5,6 +5,12 @@ dtb-$(CONFIG_SOC_EXYNOS8890) += exynos8890-espresso8890.dtb exynos8890-espresso8
dtb-$(CONFIG_SOC_EXYNOS8890) += exynos8890-evt1-smdk8890.dtb
dtb-$(CONFIG_SOC_EXYNOS7870) += exynos7870-smdk7870.dtb exynos7870-universal7870.dtb exynos7870-universal7870_rev01.dtb
+dtb-$(CONFIG_SOC_EXYNOS7870) += exynos7870-j7xelte_eur_open_00.dtb \
+exynos7870-j7xelte_eur_open_01.dtb \
+exynos7870-j7xelte_eur_open_02.dtb \
+exynos7870-j7xelte_eur_open_03.dtb \
+exynos7870-j7xelte_eur_open_04.dtb
+
targets += dtbs
DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))

View file

@ -0,0 +1,21 @@
Red and blue pixel data was swapped.
---
diff --git a/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c b/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c
index 433d963d8..58c57111b 100644
--- a/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c
+++ b/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c
@@ -461,11 +461,11 @@ int decon_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
case 24:
/* our 24bpp is unpacked, so 32bpp */
var->bits_per_pixel = 32;
- var->red.offset = 16;
+ var->red.offset = 0;
var->red.length = 8;
var->green.offset = 8;
var->green.length = 8;
- var->blue.offset = 0;
+ var->blue.offset = 16;
var->blue.length = 8;
break;

View file

@ -0,0 +1,64 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm64/configs/device_j7xelte_xx
pkgname=linux-samsung-jxelte
pkgver=3.18.14
pkgrel=0
pkgdesc="Samsung Galaxy J7(2016) kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="samsung-jxelte"
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 dtbtool-exynos"
# Source
_repository="android_kernel_samsung_exynos7870"
_commit="6a08243a47caf497bf07d34baacbf7e822344b24"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://github.com/jcadduono/$_repository/archive/$_commit.tar.gz
$_config
gcc10-extern_YYLOC_global_declaration.patch
gcc7-give-up-on-ilog2-const-optimizations.patch
gcc8-fix-put-user.patch
01-fix-dtb.patch
02-fix-video-argb-setting.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"
# Master DTB (deviceinfo_bootimg_qcdt)
dtbTool-exynos -o "$_outdir/arch/$_carch/boot"/dt.img \
$(find "$_outdir/arch/$_carch/boot/dts/" -name *j7xelte*.dtb)
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor" "$_outdir"
install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img \
"$pkgdir"/boot/dt.img
}
sha512sums="e6602a988b66a632114b431743a170fca15f069f3eb5f743d2859bf9d0de020faaeabbf3a9b574a2f3b1167efb04a42c7d818ecff2e730d268d24966e73b16c4 linux-samsung-jxelte-6a08243a47caf497bf07d34baacbf7e822344b24.tar.gz
337ad98ce6552a81f95fa4cf07ddb61da318ba1d81ddc06198aec0738b9ee47a332148a5be230178e44c644f8ca428abfe6aca236e8497eb1acf837ebb6ed2d7 config-samsung-jxelte.aarch64
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.patch
77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch
197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch
1ea1501b7b7f1ab3ef4c54a74c01183c96b0403b0a57e3f7c37f299c5c338b86ef5e281a7273b97e87dae5a8d49ffa8a7a3e55d433e34fb53d97fbffdc631d55 01-fix-dtb.patch
3156b7badd136700ba6332a6d20844ed00452d0a89eda81c32a7d008f61bec1a694d6afbddc35e1f5ffbd400d1119e176361b7e9647ea7edd4310f2cf4ba5caa 02-fix-video-argb-setting.patch"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
../../.shared-patches/linux/gcc10-extern_YYLOC_global_declaration.patch

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