diff --git a/device/testing/linux-samsung-a30/APKBUILD b/device/testing/linux-samsung-a30/APKBUILD index f1ed1d75c..12e01554a 100644 --- a/device/testing/linux-samsung-a30/APKBUILD +++ b/device/testing/linux-samsung-a30/APKBUILD @@ -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 " diff --git a/device/testing/linux-samsung-a30/config-samsung-a30.aarch64 b/device/testing/linux-samsung-a30/config-samsung-a30.aarch64 index 3910f5c57..884b97d46 100644 --- a/device/testing/linux-samsung-a30/config-samsung-a30.aarch64 +++ b/device/testing/linux-samsung-a30/config-samsung-a30.aarch64 @@ -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 diff --git a/device/testing/linux-samsung-a30/decon_fix.patch b/device/testing/linux-samsung-a30/decon_fix.patch new file mode 100644 index 000000000..fd0c7d5e8 --- /dev/null +++ b/device/testing/linux-samsung-a30/decon_fix.patch @@ -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: diff --git a/device/testing/linux-samsung-a30/dont_skip_initramfs.patch b/device/testing/linux-samsung-a30/dont_skip_initramfs.patch new file mode 100644 index 000000000..0c0e3d21c --- /dev/null +++ b/device/testing/linux-samsung-a30/dont_skip_initramfs.patch @@ -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 */ diff --git a/device/testing/linux-samsung-a30/fix-check-lxdialog.patch b/device/testing/linux-samsung-a30/fix-check-lxdialog.patch new file mode 120000 index 000000000..bfb5653df --- /dev/null +++ b/device/testing/linux-samsung-a30/fix-check-lxdialog.patch @@ -0,0 +1 @@ +../../.shared-patches/linux/fix-check-lxdialog.patch \ No newline at end of file diff --git a/device/testing/linux-samsung-a30/ifdef_exynos_fimc_is2.patch b/device/testing/linux-samsung-a30/ifdef_exynos_fimc_is2.patch new file mode 100644 index 000000000..f9dbae93c --- /dev/null +++ b/device/testing/linux-samsung-a30/ifdef_exynos_fimc_is2.patch @@ -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; + } + diff --git a/device/testing/linux-samsung-a30/ifdef_knox_ncm_nf_conntrack_core_c.patch b/device/testing/linux-samsung-a30/ifdef_knox_ncm_nf_conntrack_core_c.patch new file mode 100644 index 000000000..869281147 --- /dev/null +++ b/device/testing/linux-samsung-a30/ifdef_knox_ncm_nf_conntrack_core_c.patch @@ -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 + #include + #include ++#ifdef CONFIG_KNOX_NCM + /* START_OF_KNOX_NPA */ + #include + /* 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; diff --git a/device/testing/linux-samsung-a30/ifdef_knox_ncm_sock_c.patch b/device/testing/linux-samsung-a30/ifdef_knox_ncm_sock_c.patch new file mode 100644 index 000000000..fbe0198fa --- /dev/null +++ b/device/testing/linux-samsung-a30/ifdef_knox_ncm_sock_c.patch @@ -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 + ++#ifdef CONFIG_KNOX_NCM + /* START_OF_KNOX_NPA */ + #include + #include + #include + /* 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 diff --git a/device/testing/linux-samsung-a30/ifdef_knox_ncm_udp_c.patch b/device/testing/linux-samsung-a30/ifdef_knox_ncm_udp_c.patch new file mode 100644 index 000000000..b4a154089 --- /dev/null +++ b/device/testing/linux-samsung-a30/ifdef_knox_ncm_udp_c.patch @@ -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 + #include + #include "udp_impl.h" ++#ifdef CONFIG_KNOX_NCM + /* START_OF_KNOX_NPA */ + #include + /* 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); diff --git a/device/testing/linux-samsung-a30/linux4.2-gcc10-extern_YYLOC_global_declaration.patch b/device/testing/linux-samsung-a30/linux4.2-gcc10-extern_YYLOC_global_declaration.patch new file mode 120000 index 000000000..094195829 --- /dev/null +++ b/device/testing/linux-samsung-a30/linux4.2-gcc10-extern_YYLOC_global_declaration.patch @@ -0,0 +1 @@ +../../.shared-patches/linux/linux4.2-gcc10-extern_YYLOC_global_declaration.patch \ No newline at end of file diff --git a/device/testing/linux-samsung-a30/makefiles_fix.patch b/device/testing/linux-samsung-a30/makefiles_fix.patch new file mode 100644 index 000000000..db4493e7e --- /dev/null +++ b/device/testing/linux-samsung-a30/makefiles_fix.patch @@ -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 diff --git a/device/testing/linux-samsung-a30/rem_android_ifdef.patch b/device/testing/linux-samsung-a30/rem_android_ifdef.patch new file mode 100644 index 000000000..479329d47 --- /dev/null +++ b/device/testing/linux-samsung-a30/rem_android_ifdef.patch @@ -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 diff --git a/device/testing/linux-samsung-a30/skip_abox_itmon_notifier.patch b/device/testing/linux-samsung-a30/skip_abox_itmon_notifier.patch new file mode 100644 index 000000000..e0cc5feef --- /dev/null +++ b/device/testing/linux-samsung-a30/skip_abox_itmon_notifier.patch @@ -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; + } + diff --git a/device/testing/linux-samsung-a30/use-pmos-fw-loc.patch b/device/testing/linux-samsung-a30/use-pmos-fw-loc.patch new file mode 100644 index 000000000..98225247d --- /dev/null +++ b/device/testing/linux-samsung-a30/use-pmos-fw-loc.patch @@ -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;