samsung-xcover4lte: new device (MR 2294)

[ci:skip-build] already built successfully in CI
This commit is contained in:
Sönke Holz 2021-06-30 20:14:24 +02:00 committed by Clayton Craft
parent 3d7f70b114
commit 7ba97fda03
No known key found for this signature in database
GPG key ID: 7A3461CA187CEA54
8 changed files with 4752 additions and 0 deletions

View file

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

View file

@ -0,0 +1,35 @@
# 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 Xcover 4"
deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-xcover4lte"
deviceinfo_year="2017"
deviceinfo_dtb=""
deviceinfo_modules_initfs=""
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=""
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"

View file

@ -0,0 +1,22 @@
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
index c016ac37..b01fb1ab 100755
--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
@@ -1271,8 +1271,16 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g, u8 ethaddr[ETH_ALEN],
dev_warn(&g->dev,
"using random %s ethernet address\n", "self");
#ifdef CONFIG_USB_ANDROID_SAMSUNG_COMPOSITE
+ 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);
- printk(KERN_DEBUG "usb: set unique host mac\n");
#else
if (get_ether_addr(host_addr, dev->host_mac))

View file

@ -0,0 +1,18 @@
diff --git a/decon-int_drv.c b/decon-int_drv.c
index 7695b67..b3010c9 100755
--- a/drivers/video/fbdev/exynos/decon_7570/decon-int_drv.c
+++ b/drivers/video/fbdev/exynos/decon_7570/decon-int_drv.c
@@ -440,11 +440,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,42 @@
diff --git a/drivers/misc/samsung/scsc/mx140_file.c b/drivers/misc/samsung/scsc/mx140_file.c
index 0bc345ca..a726aa67 100755
--- a/drivers/misc/samsung/scsc/mx140_file.c
+++ b/drivers/misc/samsung/scsc/mx140_file.c
@@ -23,8 +23,8 @@
#define MX140_FW_BASE_DIR_SYSTEM_ETC_WIFI CONFIG_SCSC_CORE_FW_LOCATION
#define MX140_FW_BASE_DIR_VENDOR_ETC_WIFI CONFIG_SCSC_CORE_FW_LOCATION
#else
-#define MX140_FW_BASE_DIR_SYSTEM_ETC_WIFI "/system/etc/wifi"
-#define MX140_FW_BASE_DIR_VENDOR_ETC_WIFI "/vendor/etc/wifi"
+#define MX140_FW_BASE_DIR_SYSTEM_ETC_WIFI "/lib/firmware/postmarketos/mx140"
+#define MX140_FW_BASE_DIR_VENDOR_ETC_WIFI "/lib/firmware/postmarketos/mx140"
#endif
/* Look for this file in <dir>/etc/wifi */
@@ -488,26 +488,6 @@ int mx140_basedir_file(struct scsc_mx *mx)
/* Set to kernel segment. */
set_fs(get_ds());
- /* If /system isn't present, assume platform isn't ready yet */
- r = vfs_stat("/system", &stat);
- if (r != 0) {
- SCSC_TAG_ERR(MX_FILE, "/system not mounted yet\n");
- r = -EAGAIN;
- goto done;
- }
-
- /* If /vendor isn't present, assume O platform isn't ready yet.
- * Android M and N still have /vendor, though we don't use it.
- * Searching for /vendor is not enough as it's a mountpoint and
- * appears before its contents.
- */
- r = vfs_stat("/vendor", &stat);
- if (r != 0) {
- SCSC_TAG_ERR(MX_FILE, "/vendor not mounted yet\n");
- r = -EAGAIN;
- goto done;
- }
-
/* Search for SCSC FW under the mountpoints */
/* Try /vendor partition (Oreo) first.

View file

@ -0,0 +1,60 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm64/configs/xcover4lte_00_defconfig
pkgname=linux-samsung-xcover4lte
pkgver=3.18.91
pkgrel=0
pkgdesc="Samsung Galaxy Xcover 4 kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="samsung-xcover4lte"
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 linux-headers"
# Source: backup of https://opensource.samsung.com/uploadSearch?searchValue=G390F (SM-G390F_EUR_PP_Opensource, version: G390FXXU4CSF9)
_repository="android_kernel_samsung_xcover4lte"
_commit="e4347897745d3e550d45ae2a8fc6c6bf82db722b"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://github.com/spholz/$_repository/archive/$_commit.tar.gz
$_config
01-usb_gadget-set-random-rndis-host-MAC-address-to-prev.patch
02-swap-red-blue.patch
03-fix-wifi-fw-path.patch
gcc10-extern_YYLOC_global_declaration.patch
"
builddir="$srcdir/$_repository-$_commit"
prepare() {
default_prepare
. downstreamkernel_prepare
}
build() {
unset LDFLAGS
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
# Build dt image with exynos dtbtool
dtbTool-exynos --pagesize 2048 \
--platform 0x50a6 \
--subtype 0x217584da \
-o "arch/arm64/boot/dt.img" \
"arch/arm64/boot/dts/exynos7570-xcover4lte_eur_open_04.dtb"
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" "$_flavor"
install -Dm644 "$builddir/arch/arm64/boot"/dt.img "$pkgdir"/boot/dt.img
}
sha512sums="
085f36365fc105a880520b79eaaff621ef491a3e1721f5425cb3f4d27e003497193f5e69a404dc7816d20a5075a912d9c0835c576127137d33c120bee3d931ca linux-samsung-xcover4lte-e4347897745d3e550d45ae2a8fc6c6bf82db722b.tar.gz
7d261f49fb6798ff66c8ea8dffb5bf6d8f65801920a906a1060600446736cc726af9eb6af7e38177081012aeda3a4751bc938af09d6e22eb9d21a954525eb726 config-samsung-xcover4lte.aarch64
8b46920d7e81edfaeb3a66c10f6eb0c2a409bce9a210fd8ca4e58a7c0207aef28c732826ff806e339b28c737054316c8204fda91feb37eb692a78b873f328e1a 01-usb_gadget-set-random-rndis-host-MAC-address-to-prev.patch
94f397f127d14e5649b21587e819e65104d92c54dd2035e6cfd3706c31918f4252bdea1328084e41946e47873711419e813fdb0652926a854b1139371d468835 02-swap-red-blue.patch
e28f88cb51e91748fb609ab2ee9bf354d147f8edb5c9c60685443d9aaed28a8f0bf42db6cbae9b6623b5c1773f81c2181ef8ab04f37cd7a6882d5e4fc043a92c 03-fix-wifi-fw-path.patch
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.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