linux-samsung-a30: update source and fix build (MR 6267)

[ci:skip-build]: already built successfully in CI
This commit is contained in:
faveoled 2025-02-28 16:08:52 +03:00 committed by Pablo Correa Gómez
parent dcf2e557e0
commit a1be8ba3ab
No known key found for this signature in database
GPG key ID: 7A342565FF635F79
14 changed files with 743 additions and 18 deletions

View file

@ -3,7 +3,7 @@
pkgname=linux-samsung-a30
pkgver=4.4.177
pkgrel=0
pkgrel=1
pkgdesc="Samsung Galaxy A30 kernel fork"
arch="aarch64"
_carch="arm64"
@ -21,11 +21,23 @@ if [ "${CC:0:5}" != "gcc6-" ]; then
fi
# Source
_repository="android_kernel_samsung_a30"
_commit="7fd21f627e6ff52676e13c8fe9a8a31adcf09a72"
_repository=$pkgname
_commit="5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://github.com/Johnnyhandsome69/$_repository/archive/$_commit.tar.gz
$pkgname-$_commit.tar.gz::https://gitlab.com/faveoled/$_repository/-/archive/$_commit/$_repository-$_commit.tar.gz
fix-check-lxdialog.patch
makefiles_fix.patch
linux4.2-gcc10-extern_YYLOC_global_declaration.patch
rem_android_ifdef.patch
ifdef_exynos_fimc_is2.patch
ifdef_knox_ncm_nf_conntrack_core_c.patch
ifdef_knox_ncm_sock_c.patch
ifdef_knox_ncm_udp_c.patch
decon_fix.patch
dont_skip_initramfs.patch
skip_abox_itmon_notifier.patch
use-pmos-fw-loc.patch
$_config
"
builddir="$srcdir/$_repository-$_commit"
@ -38,6 +50,9 @@ prepare() {
build() {
unset LDFLAGS
objcopy -I binary -O ihex firmware/exynos7885_acpm_fvp.fw firmware/exynos7885_acpm_fvp.fw.ihex
make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}
@ -48,6 +63,18 @@ package() {
}
sha512sums="
20a349f0dd358b6cd251e1835d20f556274811ffda97c28441058be15331f89ca6fd34de3c846f057017dee35f81e82a49ad68df68f7f1e340215fadd8ba8eab linux-samsung-a30-7fd21f627e6ff52676e13c8fe9a8a31adcf09a72.tar.gz
055aa7acedfa3b21ad69144efc75f445b48b7e31debb27ec10c6ebcd18b7c5979027ca86ff107b88ec447c315ad8ade76836d2349e47ded2bd3587b53e93fd16 config-samsung-a30.aarch64
76be6d88311496b07918bfdb07b4af5623c890e0b2dc5e923258444dfda825ec0e1222d4af52a11b27905916c9ea1662214355163e63f2f8f93a78f95cac4f77 linux-samsung-a30-5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d.tar.gz
182be3c596b9cc267ac108d7cf03fc8c328ccc6b36770800e4dcedea8d1bb65e3f5eacf590c2948f58b1418cc60a1670ba77dde8c259e428d158c31b6e1dbaf5 fix-check-lxdialog.patch
65da43ce42dfc9eff3e0c2c2c367b6ca9e45786ddec8c3949b8f4095927288cd19f6722e859c72f98299621c3bf4280547f6009babb7de47df210aa44d0497d8 makefiles_fix.patch
eaf2e61fcb508cdd239b8fed209d2a09ecac77287f6b46d003918fdf1c6fa2ee63f7390f3ff7c49029b8ed6cbcdd81c7e9a4b1ece9f5060b6fc84e322bd47f41 linux4.2-gcc10-extern_YYLOC_global_declaration.patch
fa1c3e4bdf0a7d5647ec5cf28c02f3082dea51c463309bd1626d4ee2cc4413a6641d0f108decc2c7a243891422bb0f5f835d3ac495f1cfb21a0e41dc7afb8ceb rem_android_ifdef.patch
fc32c1499cf2964605d6815086ae9b58db3e30e52f383fd4d58035b8ff84ba4cf1e77b3f88a11d96f1aeb5d324817f057adb334504339113d47be1296f6c2398 ifdef_exynos_fimc_is2.patch
fcd83fcc045430767cf87babf44c598f3d983c7a376864ba1d896e5993009d50b5e8148ff5461db640f77ea857dc151cf54f0ab4d39c82d12fa01c7cec2d4398 ifdef_knox_ncm_nf_conntrack_core_c.patch
6aaabe87793670a9cecca1f9bcbcb781745bea33ce73d5e71fe5080e83b085afa4e102c769ba3767d62f2059c59be03b71b3907fa2c5bc57451249da48a9311d ifdef_knox_ncm_sock_c.patch
3b793b97c99e14c448c3a91ccb79c474c7869c5896eac18f1e54cb73b0e3f79fcc0422652d98eaf54692cbd073173539e1ba27b1ba0f1dfdb6be80b111501aab ifdef_knox_ncm_udp_c.patch
88a5ef18d9eb31e6d80317925907651229529cd41f8b181b61c14ff56b340341c8ff5c95ab0dd9562b9575d4e206623e7dc039a9eb6b34c455165878df63cd86 decon_fix.patch
53df4a36ba45032c752fb8730f9ada88e6b7990b6afd8ff977dce88128ed5a155531023687094243e61d78e4be9396d5e8b168cbfd09197ef9a6917cf5df0959 dont_skip_initramfs.patch
ce5928e9237931c6aa181be29c9ecd4f66e8330a5d36a2dbd0032909b6677083593e281f33e2059f7b5f8ef7372fc506a3d47323bde1877416b5152998aaed7b skip_abox_itmon_notifier.patch
382e70e8cfc50a7942f469c9377cdfaf76c4888ba75b6a45ad7effbbdbe2d3e7d925f6e30e52ceb204bdc685c683e2c9cb4df75309623c33f51709949c0f1532 use-pmos-fw-loc.patch
7f45df2baa7e5f0cd0b01321c88fb5382530c5d0113997a7a1ba93a3d10aa6f8efaf763bdc252adcbadd690219c750a474d8d7158a2184dd60a14bcb27e6628b config-samsung-a30.aarch64
"

View file

@ -49,7 +49,8 @@ CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_POSIX_MQUEUE is not set
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_FHANDLE is not set
# CONFIG_USELIB is not set
@ -122,8 +123,8 @@ CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
# CONFIG_CGROUP_PIDS is not set
# CONFIG_CGROUP_DEVICE is not set
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_CPUACCT=y
@ -727,6 +728,7 @@ CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
@ -783,6 +785,7 @@ CONFIG_NETFILTER_XTABLES=y
#
CONFIG_NETFILTER_XT_MARK=y
CONFIG_NETFILTER_XT_CONNMARK=y
CONFIG_NETFILTER_XT_SET=y
#
# Xtables targets
@ -816,7 +819,7 @@ CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
#
# Xtables matches
#
# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_BPF=y
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
@ -837,6 +840,7 @@ CONFIG_NETFILTER_XT_MATCH_HELPER=y
CONFIG_NETFILTER_XT_MATCH_HL=y
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
CONFIG_NETFILTER_XT_MATCH_IPVS=y
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
CONFIG_NETFILTER_XT_MATCH_LENGTH=y
CONFIG_NETFILTER_XT_MATCH_LIMIT=y
@ -847,6 +851,7 @@ CONFIG_NETFILTER_XT_MATCH_MARK=y
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
CONFIG_NETFILTER_XT_MATCH_POLICY=y
# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
CONFIG_NETFILTER_XT_MATCH_ONESHOT=y
@ -866,8 +871,63 @@ CONFIG_NETFILTER_XT_MATCH_STRING=y
CONFIG_NETFILTER_XT_MATCH_TIME=y
CONFIG_NETFILTER_XT_MATCH_U32=y
CONFIG_NF_HISTORY=y
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set
CONFIG_IP_SET=y
CONFIG_IP_SET_MAX=256
# CONFIG_IP_SET_BITMAP_IP is not set
# CONFIG_IP_SET_BITMAP_IPMAC is not set
# CONFIG_IP_SET_BITMAP_PORT is not set
# CONFIG_IP_SET_HASH_IP is not set
# CONFIG_IP_SET_HASH_IPMARK is not set
# CONFIG_IP_SET_HASH_IPPORT is not set
# CONFIG_IP_SET_HASH_IPPORTIP is not set
# CONFIG_IP_SET_HASH_IPPORTNET is not set
# CONFIG_IP_SET_HASH_MAC is not set
# CONFIG_IP_SET_HASH_NETPORTNET is not set
CONFIG_IP_SET_HASH_NET=y
# CONFIG_IP_SET_HASH_NETNET is not set
# CONFIG_IP_SET_HASH_NETPORT is not set
# CONFIG_IP_SET_HASH_NETIFACE is not set
# CONFIG_IP_SET_LIST_SET is not set
CONFIG_IP_VS=y
# CONFIG_IP_VS_IPV6 is not set
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#
# CONFIG_IP_VS_PROTO_TCP is not set
# CONFIG_IP_VS_PROTO_UDP is not set
# CONFIG_IP_VS_PROTO_AH_ESP is not set
# CONFIG_IP_VS_PROTO_ESP is not set
# CONFIG_IP_VS_PROTO_AH is not set
# CONFIG_IP_VS_PROTO_SCTP is not set
#
# IPVS scheduler
#
# CONFIG_IP_VS_RR is not set
# CONFIG_IP_VS_WRR is not set
# CONFIG_IP_VS_LC is not set
# CONFIG_IP_VS_WLC is not set
# CONFIG_IP_VS_FO is not set
# CONFIG_IP_VS_OVF is not set
# CONFIG_IP_VS_LBLC is not set
# CONFIG_IP_VS_LBLCR is not set
# CONFIG_IP_VS_DH is not set
# CONFIG_IP_VS_SH is not set
# CONFIG_IP_VS_SED is not set
# CONFIG_IP_VS_NQ is not set
#
# IPVS SH scheduler
#
CONFIG_IP_VS_SH_TAB_BITS=8
#
# IPVS application helper
#
# CONFIG_IP_VS_NFCT is not set
#
# IP: Netfilter Configuration
@ -936,17 +996,21 @@ CONFIG_IP6_NF_RAW=y
CONFIG_IP6_NF_NAT=y
CONFIG_IP6_NF_TARGET_MASQUERADE=y
# CONFIG_IP6_NF_TARGET_NPT is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
CONFIG_STP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
@ -1009,6 +1073,7 @@ CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_U32=y
# CONFIG_NET_EMATCH_META is not set
# CONFIG_NET_EMATCH_TEXT is not set
# CONFIG_NET_EMATCH_IPSET is not set
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=y
CONFIG_NET_ACT_GACT=y
@ -1450,7 +1515,7 @@ CONFIG_NET_CORE=y
# CONFIG_NET_POLL_CONTROLLER is not set
CONFIG_TUN=y
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_VETH is not set
CONFIG_VETH=y
# CONFIG_NLMON is not set
#
@ -3305,6 +3370,7 @@ CONFIG_USB_SERIAL_PL2303=y
# CONFIG_USB_PHY is not set
# CONFIG_USB_OTG_WAKELOCK is not set
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_DUAL_ROLE_USB_INTF is not set
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_ISP1301 is not set
# CONFIG_USB_ULPI is not set
@ -3367,7 +3433,6 @@ CONFIG_USB_CONFIGFS_F_ADB=y
CONFIG_USB_CONFIGFS_F_MTP=y
CONFIG_USB_CONFIGFS_F_PTP=y
CONFIG_USB_CONFIGFS_F_CONN_GADGET=y
CONFIG_USB_F_CONN_GADGET_NDOP=y
CONFIG_USB_CONFIGFS_F_ACC=y
CONFIG_USB_CONFIGFS_F_AUDIO_SRC=y
CONFIG_USB_CONFIGFS_UEVENT=y
@ -3399,7 +3464,6 @@ CONFIG_USB_CONFIGFS_F_MIDI=y
#
# USB Power Delivery and Type-C drivers
#
CONFIG_TYPEC=y
# CONFIG_UWB is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
@ -4353,7 +4417,6 @@ CONFIG_CCIC_VDM=y
CONFIG_CCIC_NOTIFIER=y
# CONFIG_CCIC_ALTERNATE_MODE is not set
# CONFIG_CCIC_EXTERNAL_CAPACITOR is not set
CONFIG_CCIC_TYPEC_PRSWAP=y
# CONFIG_TEE is not set
CONFIG_SENSORS_FINGERPRINT=y
# CONFIG_SENSORS_VFS7XXX is not set
@ -4530,7 +4593,7 @@ CONFIG_QUOTACTL=y
CONFIG_FUSE_FS=y
# CONFIG_CUSE is not set
CONFIG_FUSE_SUPPORT_STLOG=y
# CONFIG_OVERLAY_FS is not set
CONFIG_OVERLAY_FS=y
#
# Caches

View file

@ -0,0 +1,157 @@
Subject: [PATCH] decon fix
---
Index: drivers/video/fbdev/exynos/dpu_7885/decon_core.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/drivers/video/fbdev/exynos/dpu_7885/decon_core.c b/drivers/video/fbdev/exynos/dpu_7885/decon_core.c
--- a/drivers/video/fbdev/exynos/dpu_7885/decon_core.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/drivers/video/fbdev/exynos/dpu_7885/decon_core.c (date 1644158930000)
@@ -703,11 +703,15 @@
return ret;
}
+int decon_set_vsync_int(struct fb_info *info, bool active);
+extern int needs_pan;
+
static int decon_blank(int blank_mode, struct fb_info *info)
{
struct decon_win *win = info->par;
struct decon_device *decon = win->decon;
int ret = 0;
+ struct fb_info *fb_info;
decon_info("%s + blank_mode: %d, decon-%d %s mode: %dtype (0: DSI, 1: eDP, 2:DP, 3: WB)\n",
__func__, blank_mode,
@@ -741,6 +745,10 @@
goto blank_exit;
}
atomic_set(&decon->ffu_flag, 2);
+
+ needs_pan = true;
+ fb_info = decon->win[decon->dt.dft_win]->fbinfo;
+ decon_set_vsync_int(fb_info, true);
break;
case FB_BLANK_VSYNC_SUSPEND:
case FB_BLANK_HSYNC_SUSPEND:
@@ -2152,18 +2160,6 @@
return ret;
}
-static ssize_t decon_fb_read(struct fb_info *info, char __user *buf,
- size_t count, loff_t *ppos)
-{
- return 0;
-}
-
-static ssize_t decon_fb_write(struct fb_info *info, const char __user *buf,
- size_t count, loff_t *ppos)
-{
- return 0;
-}
-
int decon_release(struct fb_info *info, int user)
{
struct decon_win *win = info->par;
@@ -2217,12 +2213,12 @@
.fb_blank = decon_blank,
.fb_setcolreg = decon_setcolreg,
.fb_fillrect = cfb_fillrect,
+ .fb_copyarea = cfb_copyarea,
+ .fb_imageblit = cfb_imageblit,
#ifdef CONFIG_COMPAT
.fb_compat_ioctl = decon_compat_ioctl,
#endif
.fb_ioctl = decon_ioctl,
- .fb_read = decon_fb_read,
- .fb_write = decon_fb_write,
.fb_pan_display = decon_pan_display,
.fb_mmap = decon_mmap,
.fb_release = decon_release,
@@ -2532,6 +2528,7 @@
}
fbinfo->fix.type = FB_TYPE_PACKED_PIXELS;
+ fbinfo->fix.visual = FB_VISUAL_TRUECOLOR,
fbinfo->fix.accel = FB_ACCEL_NONE;
fbinfo->var.activate = FB_ACTIVATE_NOW;
fbinfo->var.vmode = FB_VMODE_NONINTERLACED;
@@ -2846,7 +2843,7 @@
decon->bts.ops->bts_update_qos_disp(decon, decon->dt.disp_freq);
decon_to_init_param(decon, &p);
-#if !defined(BRINGUP_DECON_BIST)
+#if 0// !defined(BRINGUP_DECON_BIST)
if (decon_reg_init(decon->id, decon->dt.out_idx[0], &p) < 0)
goto decon_init_done;
#else
@@ -2879,7 +2876,7 @@
set_bit(decon->dt.dft_idma, &decon->prev_used_dpp);
memset(&config, 0, sizeof(struct decon_win_config));
config.dpp_parm.addr[0] = fbinfo->fix.smem_start;
- config.format = DECON_PIXEL_FORMAT_BGRA_8888;
+ config.format = DECON_PIXEL_FORMAT_ARGB_8888;
config.src.w = fbinfo->var.xres;
config.src.h = fbinfo->var.yres;
config.src.f_w = fbinfo->var.xres;
@@ -2922,10 +2919,11 @@
call_panel_ops(dsim, displayon, dsim);
decon_reg_start(decon->id, &psr);
decon_wait_for_vsync(decon, VSYNC_TIMEOUT_MSEC);
+ decon_set_vsync_int(fbinfo, true);
if (decon_reg_wait_update_done_and_mask(decon->id, &psr,
SHADOW_UPDATE_TIMEOUT) < 0)
decon_err("%s: wait_for_update_timeout\n", __func__);
-#if !defined(BRINGUP_DECON_BIST)
+#if 0 //!defined(BRINGUP_DECON_BIST)
decon_init_done:
#endif
decon->state = DECON_STATE_INIT;
Index: drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c b/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c
--- a/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c (date 1644158930000)
@@ -353,6 +353,8 @@
}
static DEVICE_ATTR(vsync, S_IRUGO, decon_show_vsync, NULL);
+int needs_pan = false;
+
static int decon_vsync_thread(void *data)
{
struct decon_device *decon = data;
@@ -363,6 +365,20 @@
!ktime_equal(timestamp, decon->vsync.timestamp) &&
decon->vsync.active);
+ struct decon_mode_info psr;
+
+ if (needs_pan) {
+ //Verrrry hacky and bad... plox gib better solution
+ struct fb_info *fb_info = decon->win[decon->dt.dft_win]->fbinfo;
+ struct fb_var_screeninfo *var = &fb_info->var;
+ usleep_range(200000, 201000);
+ decon_pan_display(var, fb_info);
+ needs_pan = false;
+ }
+
+ decon_to_psr_info(decon, &psr);
+ decon_reg_start(decon->id, &psr);
+
if (!ret)
sysfs_notify(&decon->dev->kobj, NULL, "vsync");
}
@@ -692,7 +708,7 @@
break;
case 24:
case 32:
- config.format = DECON_PIXEL_FORMAT_ABGR_8888;
+ config.format = DECON_PIXEL_FORMAT_ARGB_8888;
shift = 4;
break;
default:

View file

@ -0,0 +1,25 @@
Subject: [PATCH] dont_skip_initramfs
---
Index: init/initramfs.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/init/initramfs.c b/init/initramfs.c
--- a/init/initramfs.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/init/initramfs.c (date 1740665050412)
@@ -620,13 +620,7 @@
static int __init populate_rootfs(void)
{
char *err;
-
- if (do_skip_initramfs) {
- if (initrd_start)
- free_initrd();
- return default_rootfs();
- }
-
+
err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
if (err)
panic("%s", err); /* Failed to decompress INTERNAL initramfs */

View file

@ -0,0 +1 @@
../../.shared-patches/linux/fix-check-lxdialog.patch

View file

@ -0,0 +1,37 @@
Index: drivers/leds/leds-s2mu106.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/drivers/leds/leds-s2mu106.c b/drivers/leds/leds-s2mu106.c
--- a/drivers/leds/leds-s2mu106.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/drivers/leds/leds-s2mu106.c (date 1644158930000)
@@ -1058,6 +1058,7 @@
int create_flash_sysfs(void)
{
+#ifdef CONFIG_VIDEO_EXYNOS_FIMC_IS2
int err = -ENODEV;
if (IS_ERR_OR_NULL(camera_class)) {
@@ -1080,7 +1081,7 @@
pr_err("flash_sysfs: failed to create device file, %s\n",
dev_attr_rear_torch_flash.attr.name);
}
-
+#endif
return 0;
}
@@ -1166,8 +1167,10 @@
{
device_remove_file(flash_dev, &dev_attr_rear_flash);
device_remove_file(flash_dev, &dev_attr_rear_torch_flash);
+#ifdef CONFIG_VIDEO_EXYNOS_FIMC_IS2
device_destroy(camera_class, 0);
class_destroy(camera_class);
+#endif
mutex_destroy(&g_fled_data->lock);
return 0;
}

View file

@ -0,0 +1,95 @@
Subject: [PATCH] ifdef knox ncm nf_conntrack_core.c
---
Index: net/netfilter/nf_conntrack_core.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
--- a/net/netfilter/nf_conntrack_core.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/net/netfilter/nf_conntrack_core.c (date 1644158930000)
@@ -52,9 +52,11 @@
#include <net/netfilter/nf_nat.h>
#include <net/netfilter/nf_nat_core.h>
#include <net/netfilter/nf_nat_helper.h>
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
#include <net/ncm.h>
/* END_OF_KNOX_NPA */
+#endif
#define NF_CONNTRACK_VERSION "0.5.0"
@@ -252,7 +254,7 @@
static void nf_ct_add_to_dying_list(struct nf_conn *ct)
{
struct ct_pcpu *pcpu;
-
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
del_timer(&ct->npa_timeout);
/* send dying conntrack entry to collect data */
@@ -260,7 +262,7 @@
knox_collect_conntrack_data(ct, NCM_FLOW_TYPE_CLOSE, 10);
}
/* END_OF_KNOX_NPA */
-
+#endif
/* add this conntrack to the (per cpu) dying list */
ct->cpu = smp_processor_id();
pcpu = per_cpu_ptr(nf_ct_net(ct)->ct.pcpu_lists, ct->cpu);
@@ -429,7 +431,7 @@
return true;
}
EXPORT_SYMBOL_GPL(nf_ct_delete);
-
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
/* Use this function only if struct nf_conn->timeout is of type struct timer_list */
static void death_by_timeout_npa(unsigned long ul_conntrack)
@@ -450,13 +452,15 @@
return;
}
/* END_OF_KNOX_NPA */
-
+#endif
static void death_by_timeout(unsigned long ul_conntrack)
{
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
struct nf_conn *tmp = (struct nf_conn *)ul_conntrack;
atomic_set(&tmp->intermediateFlow, 0);
del_timer(&tmp->npa_timeout);
+#endif
/* END_OF_KNOX_NPA */
nf_ct_delete((struct nf_conn *)ul_conntrack, 0, 0);
}
@@ -863,10 +867,11 @@
gfp_t gfp, u32 hash)
{
struct nf_conn *ct;
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
struct timespec open_timespec;
/* END_OF_KNOX_NPA */
-
+#endif
if (unlikely(!nf_conntrack_hash_rnd)) {
init_nf_conntrack_hash_rnd();
/* recompute the hash as nf_conntrack_hash_rnd is initialized */
@@ -894,6 +899,7 @@
goto out;
spin_lock_init(&ct->lock);
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
/* initialize the conntrack structure members when memory is allocated */
if (ct != NULL) {
@@ -916,6 +922,7 @@
atomic_set(&ct->intermediateFlow, 0);
}
/* END_OF_KNOX_NPA */
+#endif
ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple = *orig;
ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode.pprev = NULL;
ct->tuplehash[IP_CT_DIR_REPLY].tuple = *repl;

View file

@ -0,0 +1,88 @@
Subject: [PATCH] ifdef knox ncm sock.c
---
Index: net/core/sock.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/net/core/sock.c b/net/core/sock.c
--- a/net/core/sock.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/net/core/sock.c (date 1644158930000)
@@ -148,11 +148,13 @@
#include <net/busy_poll.h>
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
#include <linux/sched.h>
#include <linux/pid.h>
#include <net/ncm.h>
/* END_OF_KNOX_NPA */
+#endif
static DEFINE_MUTEX(proto_list_mutex);
static LIST_HEAD(proto_list);
@@ -671,6 +673,7 @@
return ret;
}
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
/** The function sets the domain name associated with the socket. **/
static int sock_set_domain_name(struct sock *sk, char __user *optval,
@@ -758,7 +761,7 @@
out:
return ret;
}
-
+#endif
/* END_OF_KNOX_NPA */
static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool)
@@ -808,7 +811,7 @@
if (optname == SO_BINDTODEVICE)
return sock_setbindtodevice(sk, optval, optlen);
-
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
if (optname == SO_SET_DOMAIN_NAME)
return sock_set_domain_name(sk, optval, optlen);
@@ -817,6 +820,7 @@
if (optname == SO_SET_DNS_PID)
return sock_set_dns_pid(sk, optval, optlen);
/* END_OF_KNOX_NPA */
+#endif
if (optlen < sizeof(int))
return -EINVAL;
@@ -1567,7 +1571,7 @@
struct proto *prot, int kern)
{
struct sock *sk;
-
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
struct pid *pid_struct = NULL;
struct task_struct *task = NULL;
@@ -1578,10 +1582,11 @@
int parent_returnValue = -1;
char full_parent_process_name[PROCESS_NAME_LEN_NAP] = {0};
/* END_OF_KNOX_NPA */
-
+#endif
sk = sk_prot_alloc(prot, priority | __GFP_ZERO, family);
if (sk) {
sk->sk_family = family;
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
/* assign values to members of sock structure when npa flag is present */
sk->knox_uid = current->cred->uid.val;
@@ -1624,6 +1629,7 @@
}
}
}
+#endif
/* END_OF_KNOX_NPA */
/*
* See comment in struct sock definition to understand

View file

@ -0,0 +1,82 @@
Subject: [PATCH] ifdef knox ncm udp.c
---
Index: net/ipv4/udp.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
--- a/net/ipv4/udp.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/net/ipv4/udp.c (date 1644158930000)
@@ -113,9 +113,11 @@
#include <trace/events/skb.h>
#include <net/busy_poll.h>
#include "udp_impl.h"
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
#include <net/ncm.h>
/* END_OF_KNOX_NPA */
+#endif
struct udp_table udp_table __read_mostly;
EXPORT_SYMBOL(udp_table);
@@ -1804,6 +1806,7 @@
if (sk) {
struct dst_entry *dst = skb_dst(skb);
int ret;
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
struct nf_conn *ct = NULL;
enum ip_conntrack_info ctinfo;
@@ -1811,10 +1814,11 @@
char srcaddr[INET6_ADDRSTRLEN_NAP];
char dstaddr[INET6_ADDRSTRLEN_NAP];
/* END_OF_KNOX_NPA */
+#endif
if (unlikely(sk->sk_rx_dst != dst))
udp_sk_rx_dst_set(sk, dst);
-
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
/* function to handle open flows with incoming udp packets */
if (check_ncm_flag()) {
@@ -1866,6 +1870,7 @@
}
}
}
+#endif
// KNOX NPA - END
ret = udp_queue_rcv_skb(sk, skb);
@@ -1885,12 +1890,14 @@
sk = __udp4_lib_lookup_skb(skb, uh->source, uh->dest, udptable);
if (sk) {
int ret;
+#ifdef CONFIG_KNOX_NCM
/* START_OF_KNOX_NPA */
struct nf_conn *ct = NULL;
enum ip_conntrack_info ctinfo;
struct nf_conntrack_tuple *tuple = NULL;
char srcaddr[INET6_ADDRSTRLEN_NAP];
char dstaddr[INET6_ADDRSTRLEN_NAP];
+#endif
/* END_OF_KNOX_NPA */
if (inet_get_convert_csum(sk) && uh->check && !IS_UDPLITE(sk))
@@ -1898,6 +1905,7 @@
inet_compute_pseudo);
/* START_OF_KNOX_NPA */
+#ifdef CONFIG_KNOX_NCM
/* function to handle open flows with incoming udp packets */
if (check_ncm_flag()) {
if ( (sk) && (sk->sk_protocol == IPPROTO_UDP) ) {
@@ -1948,6 +1956,7 @@
}
}
}
+#endif
// KNOX NPA - END
ret = udp_queue_rcv_skb(sk, skb);

View file

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

View file

@ -0,0 +1,44 @@
diff --git a/Makefile b/Makefile
index 849aba7c4..5dc9bfc70 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,8 @@ NAME = Blurry Fish Butt
# o Look for make include files relative to root of kernel src
MAKEFLAGS += -rR --include-dir=$(CURDIR)
+export ANDROID_MAJOR_VERSION=o
+
# Avoid funny character set dependencies
unexport LC_ALL
LC_COLLATE=C
@@ -256,7 +258,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= $(SUBARCH)
-CROSS_COMPILE ?=$(srctree)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
+CROSS_COMPILE ?=
# Architecture as present in compile.h
UTS_MACHINE := $(ARCH)
@@ -302,7 +304,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi ; fi)
-HOSTCC = gcc
+HOSTCC = ccache gcc
HOSTCXX = g++
HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
HOSTCXXFLAGS = -O2
diff --git a/firmware/Makefile b/firmware/Makefile
index be4d8f834..dfed7f0b0 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -171,7 +171,7 @@ fw-shipped-$(CONFIG_TOUCHSCREEN_IST3038H) += tsp_imagis/ist3038h_a40.fw tsp_imag
fw-shipped-$(CONFIG_TOUCHSCREEN_HIMAX_INCELL) += tsp_himax/hx83112a_m20lte.fw tsp_himax/hx83102d_a20e.fw tsp_himax/hx83102d_a20e_al.fw
fw-shipped-$(CONFIG_TOUCHSCREEN_HIMAX_CHIPSET) += tsp_himax/hx83102p_gta4s.fw
-TSPFIRMWARE_DIRECTORY = firmware/tsp_zinitix
+TSPFIRMWARE_DIRECTORY = $(srctree)/firmware/tsp_zinitix
ifeq ($(shell test -d $(TSPFIRMWARE_DIRECTORY) && echo yes),yes)
fw-shipped-$(CONFIG_TOUCHSCREEN_ZINITIX_ZT75XX) += tsp_zinitix/zt7538_xcover4s.fw
fw-shipped-$(CONFIG_TOUCHSCREEN_ZINITIX_ZT75XX_TCLM) += tsp_zinitix/zt7548_a6.fw tsp_zinitix/zt7548_feel2.fw tsp_zinitix/zt7548_a40.fw tsp_zinitix/zt7548_a20.fw tsp_zinitix/zt7548_a40s.fw tsp_zinitix/zt7548_m10s.fw

View file

@ -0,0 +1,25 @@
Subject: [PATCH] rem android ifdef
---
Index: drivers/usb/gadget/function/f_conn_gadget.ioctl.h
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/drivers/usb/gadget/function/f_conn_gadget.ioctl.h b/drivers/usb/gadget/function/f_conn_gadget.ioctl.h
--- a/drivers/usb/gadget/function/f_conn_gadget.ioctl.h (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/drivers/usb/gadget/function/f_conn_gadget.ioctl.h (date 1644158930000)
@@ -25,8 +25,6 @@
CONN_GADGET_IOCTL_BIND_STATUS_UNBIND = 2
};
-#if defined(__ANDROID__)||defined(__TIZEN__)
-
enum {
CONN_GADGET_IOCTL_NR_0 = 0,
CONN_GADGET_IOCTL_NR_1,
@@ -43,5 +41,3 @@
#define CONN_GADGET_IOCTL_BIND_GET_STATUS _IOR(CONN_GADGET_IOCTL_MAGIC_SIG, CONN_GADGET_IOCTL_NR_2, int)
#define CONN_GADGET_IOCTL_MAX_NR CONN_GADGET_IOCTL_NR_MAX
#endif
-
-#endif

View file

@ -0,0 +1,28 @@
Subject: [PATCH] skip abox_itmon_notifier
---
Index: sound/soc/samsung/abox/abox.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/sound/soc/samsung/abox/abox.c b/sound/soc/samsung/abox/abox.c
--- a/sound/soc/samsung/abox/abox.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/sound/soc/samsung/abox/abox.c (date 1740664990038)
@@ -5591,17 +5591,6 @@
static int abox_itmon_notifier(struct notifier_block *nb,
unsigned long action, void *nb_data)
{
- struct abox_data *data = container_of(nb, struct abox_data, itmon_nb);
- struct device *dev = &data->pdev->dev;
- struct itmon_notifier *itmon_data = nb_data;
-
- if (itmon_data && itmon_data->dest && (strncmp("ABOX", itmon_data->dest,
- sizeof("ABOX") - 1) == 0)) {
- dev_info(dev, "%s(%lu)\n", __func__, action);
- data->enabled = false;
- return NOTIFY_OK;
- }
-
return NOTIFY_DONE;
}

View file

@ -0,0 +1,52 @@
Subject: [PATCH] use-pmos-fw-loc
---
Index: drivers/misc/samsung/scsc/mx140_file.c
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/drivers/misc/samsung/scsc/mx140_file.c b/drivers/misc/samsung/scsc/mx140_file.c
--- a/drivers/misc/samsung/scsc/mx140_file.c (revision 5eeafe2bfcb93847b403fd92bd92f9d0a9f6341d)
+++ b/drivers/misc/samsung/scsc/mx140_file.c (date 1740664879089)
@@ -21,13 +21,9 @@
#define SCSC_MULTI_RF_CHIP_ID /* Select FW by RF chip ID, not rev */
-#if defined(CONFIG_SCSC_CORE_FW_LOCATION) && !defined(CONFIG_SCSC_CORE_FW_LOCATION_AUTO)
#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"
-#endif
+
/* Paths for vendor utilities, used when CONFIG_SCSC_CORE_FW_LOCATION_AUTO=n */
#define MX140_EXE_DIR_VENDOR "/vendor/bin" /* Oreo */
@@ -521,26 +517,6 @@
/* 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 platform isn't ready yet.
- * Android M and N still have /vendor, though we don't use it.
- */
- r = vfs_stat("/vendor", &stat);
- if (r != 0) {
- SCSC_TAG_ERR(MX_FILE, "/vendor not mounted yet\n");
- r = -EAGAIN;
- goto done;
- }
-
- /* Now partitions are mounted, so let's see what's in them. */
-
/* Try /vendor partition (post-Oreo) */
strlcpy(base_dir, MX140_FW_BASE_DIR_VENDOR_ETC_WIFI, sizeof(base_dir));
fw_base_dir = MX140_FW_BASE_DIR_VENDOR_ETC_WIFI;