Merge "[Bugfix][API-1211][rtp] there is noise in second rtp media play Only Configure:No Affected branch:unknown Affected module:unknown Is it affected on both ZXIC and MTK:ZK and Gsw Self-test:No Doc Update:No" into GSW3.0-No-Connman
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-misc/liblynq-misc.bb b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-misc/liblynq-misc.bb
new file mode 100755
index 0000000..cc0b881
--- /dev/null
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/liblynq-misc/liblynq-misc.bb
@@ -0,0 +1,55 @@
+inherit externalsrc package
+
+DESCRIPTION = "liblynq-misc.so"
+LICENSE = "MobileTekProprietary"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b1e07e8d88e26263e71d3a9e2aa9a2ff"
+DEPENDS += "platform-libs"
+inherit workonsrc
+WORKONSRC = "${TOPDIR}/../src/lynq/lib/liblynq-misc/"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+BB_INCLUDE_ADD = "--sysroot=${STAGING_DIR_HOST}"
+BB_LDFLAGS_ADD = "--sysroot=${STAGING_DIR_HOST} -Wl,--hash-style=gnu"
+
+
+FILES_${PN} = "${base_libdir}/*.so "
+
+FILES_${PN}-dev = "/test \
+ ${includedir}"
+
+FILES_${PN}-doc = "/doc"
+
+FILES_${PN}-dbg ="${base_bindir}/.debug \
+ ${base_libdir}/.debug \
+ ${base_sbindir}/.debug"
+
+INSANE_SKIP_${PN} += "already-stripped"
+INSANE_SKIP_${PN} += "installed-vs-shipped"
+
+
+#INHIBIT_PACKAGE_STRIP = "1"
+do_compile () {
+ if [ "${PACKAGE_ARCH}" = "cortexa7hf-vfp-vfpv4-neon" ]; then
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -mhard-float -Wl,--hash-style=gnu -DTELEPHONYWARE"
+ elif [ "${PACKAGE_ARCH}" = "cortexa7hf-neon-vfpv4" ]; then
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -mhard-float -Wl,--hash-style=gnu -DTELEPHONYWARE"
+ elif [ "${PACKAGE_ARCH}" = "cortexa53hf-neon-fp-armv8" ]; then
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -mhard-float -Wl,--hash-style=gnu -DTELEPHONYWARE -mhard-float -mfpu=neon-fp-armv8 -mfloat-abi=hard -mcpu=cortex-a53 -mtune=cortex-a53"
+ else
+ oe_runmake all ROOT=${STAGING_DIR_HOST} OFLAGS="--sysroot=${STAGING_DIR_HOST} -Os -Wl,--hash-style=gnu -DTELEPHONYWARE"
+ fi
+}
+
+do_install () {
+ oe_runmake install ROOT=${D}
+
+ if [ -d "${WORKONSRC}" ] ; then
+ install -d ${D}${includedir}/lynq_misc
+ cp -arf ${S}/include/* ${D}${includedir}/lynq_misc/
+ fi
+}
+
+addtask bachclean
+do_bachclean () {
+ oe_runmake clean
+}
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb b/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
index 60fe23a..7c3b8a5 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/packagegroups/packagegroup-lync-mt2735.bb
@@ -56,4 +56,5 @@
tzdata \
lynq-tester-service \
liblynq-shm \
+ liblynq-misc \
"
diff --git a/meta/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service b/meta/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
index e8b027e..36a26c3 100644
--- a/meta/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
+++ b/meta/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service
@@ -21,7 +21,9 @@
[Service]
Environment="TERM=xterm"
+ExecStartPre=/usr/share/init/init_console_log_level %I StartPre
ExecStart=-/sbin/agetty -8 -L %I @BAUDRATE@ $TERM
+ExecStopPost=/usr/share/init/init_console_log_level %I StopPost
Type=idle
Restart=always
RestartSec=0
diff --git a/meta/poky/meta/recipes-core/systemd/systemd/init_console_log_level b/meta/poky/meta/recipes-core/systemd/systemd/init_console_log_level
new file mode 100644
index 0000000..384e538
--- /dev/null
+++ b/meta/poky/meta/recipes-core/systemd/systemd/init_console_log_level
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ "$1" = "ttyS0" ]; then
+ if [ "$2" = "StartPre" ]; then
+ cat /proc/sys/kernel/printk | awk '{print "echo 1 "$2" "$3" "$4" > /proc/sys/kernel/printk"}' | sh
+ elif [ "$2" = "StopPost" ]; then
+ cat /proc/sys/kernel/printk | awk '{print "echo 1 "$2" "$3" "$4" > /proc/sys/kernel/printk"}' | sh
+ fi
+fi
+
diff --git a/meta/poky/meta/recipes-core/systemd/systemd_239.bb b/meta/poky/meta/recipes-core/systemd/systemd_239.bb
index a8120a9..3b1f630 100755
--- a/meta/poky/meta/recipes-core/systemd/systemd_239.bb
+++ b/meta/poky/meta/recipes-core/systemd/systemd_239.bb
@@ -17,6 +17,7 @@
SRC_URI += "file://touchscreen.rules \
file://00-create-volatile.conf \
file://init \
+ file://init_console_log_level \
file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
file://0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
file://0003-implment-systemd-sysv-install-for-OE.patch \
@@ -306,6 +307,9 @@
ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
rm -rf ${D}/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
+
+ install -d ${D}/usr/share/init
+ install -m 0755 ${WORKDIR}/init_console_log_level ${D}${datadir}/init/init_console_log_level
}
@@ -558,6 +562,7 @@
${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \
${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \
+ ${datadir}/init/init_console_log_level \
"
FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
diff --git a/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi b/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi
index 50ee280..ad2444c 100644
--- a/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi
+++ b/src/kernel/linux/v4.19/arch/arm64/boot/dts/mediatek/mt2735.dtsi
@@ -387,7 +387,7 @@
compatible = "mediatek,reserve-memory-medmcu_share";
no-map;
alignment = <0 0x10000>;
- reg = <0 0x60040000 0 0x328700>;
+ reg = <0 0x60040000 0 0x330000>;
};
reserve-memory-sspm_share {
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile
index 00b81ea..ea2fdf2 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/Makefile
@@ -149,6 +149,7 @@
# Set PM 2 always regardless suspend/resume
DHDCFLAGS += -DSUPPORT_PM2_ONLY
+DHDCFLAGS += -DDISABLE_FW_ROAM
# FT roam
DHDCFLAGS += -DWLFBT -DGTK_OFFLOAD_SUPPORT
DHDCFLAGS += -DBCMCCX
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c
index c020db9..1d0bdc4 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/dhd_linux.c
@@ -10327,7 +10327,11 @@
wl_el_tag_params_t *el_tag = NULL;
#endif /* DHD_8021X_DUMP */
#ifdef ROAM_ENABLE
+#ifdef DISABLE_FW_ROAM
+ uint roamvar = 1;
+#else
uint roamvar = 0;
+#endif
int roam_trigger[2] = {CUSTOM_ROAM_TRIGGER_SETTING, WLC_BAND_ALL};
int roam_scan_period[2] = {10, WLC_BAND_ALL};
int roam_delta[2] = {CUSTOM_ROAM_DELTA_SETTING, WLC_BAND_ALL};
diff --git a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c
index 5735440..dab598c 100755
--- a/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c
+++ b/src/kernel/linux/v4.19/drivers/net/wireless/bcmdhd/wl_cfg80211.c
@@ -177,6 +177,7 @@
#endif /* WL_FW_OCE_AP_SELECT && (ROAM_ENABLE || BCMFW_ROAM_ENABLE) */
module_param(fw_ap_select, uint, 0660);
/* this flag enable triggerrs bgscan method from supplicant */
+
uint us_ap_select = false;
module_param(us_ap_select, uint, 0660);
@@ -2443,6 +2444,13 @@
/* Enable buffering of PTK key till EAPOL 4/4 is sent out */
wldev_iovar_setint(ndev, "buf_key_b4_m4", 1);
}
+/*change for fix sta no disconnect event by IFX patch @20230823*/
+#ifdef DISABLE_FW_ROAM
+ if (wl_iftype == WL_IF_TYPE_STA){
+ wldev_iovar_setint(ndev,"roam_off", 1);
+ }
+#endif
+
break;
default:
@@ -16597,9 +16605,10 @@
if (!profile)
return WL_INVALID;
+/*change for fix sta no disconnect event by IFX patch,change by qs.xiong @20230823*/
+// if (!us_ap_select)
+// return 0;
- if (!us_ap_select)
- return 0;
WL_DBG(("Enter: event %d (%d), status=%d\n",
ntoh32(e->event_type), ntoh32(e->status), ntoh32(e->reason)));
diff --git a/src/lynq/framework/lynq-audio-service/src/lynq_audio.service b/src/lynq/framework/lynq-audio-service/src/lynq_audio.service
index c9b68cc..19d6a99 100755
--- a/src/lynq/framework/lynq-audio-service/src/lynq_audio.service
+++ b/src/lynq/framework/lynq-audio-service/src/lynq_audio.service
@@ -5,11 +5,11 @@
#Requires=mtkfusionrild.service
[Service]
-StandardOutput=kmsg+console
+StandardOutput=kmsg
Type=simple
RemainAfterExit=no
ExecStart=/usr/bin/lynq-audio-service
[Install]
Alias=pwrwifid
-WantedBy=multi-user.target
\ No newline at end of file
+WantedBy=multi-user.target
diff --git a/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate.service b/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate.service
index 1b1839f..0c9aeec 100755
--- a/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate.service
+++ b/src/lynq/framework/lynq-logrotate-service/src/lynq_logrotate.service
@@ -5,7 +5,7 @@
#Requires=mtkfusionrild.service
[Service]
-StandardOutput=kmsg+console
+StandardOutput=kmsg
Type=simple
RemainAfterExit=no
#ExecStart=/usr/bin/lynq-default
diff --git a/src/lynq/framework/lynq-ndis-uevent/src/lynq_ndis_uevent.service b/src/lynq/framework/lynq-ndis-uevent/src/lynq_ndis_uevent.service
index f28df24..288f8fa 100755
--- a/src/lynq/framework/lynq-ndis-uevent/src/lynq_ndis_uevent.service
+++ b/src/lynq/framework/lynq-ndis-uevent/src/lynq_ndis_uevent.service
@@ -3,7 +3,7 @@
After=init_usb.service
[Service]
-StandardOutput=kmsg+console
+StandardOutput=kmsg
Type=simple
RemainAfterExit=no
ExecStart=/usr/bin/lynq-ndis-uevent
@@ -12,4 +12,4 @@
Group=root
[Install]
-WantedBy=multi-user.target
\ No newline at end of file
+WantedBy=multi-user.target
diff --git a/src/lynq/framework/lynq-ril-service/src/lynq_ril_service.service b/src/lynq/framework/lynq-ril-service/src/lynq_ril_service.service
index 86df0f9..a547fd4 100755
--- a/src/lynq/framework/lynq-ril-service/src/lynq_ril_service.service
+++ b/src/lynq/framework/lynq-ril-service/src/lynq_ril_service.service
@@ -4,7 +4,7 @@
Requires=mtkfusionrild.service
[Service]
-StandardOutput=kmsg+console
+StandardOutput=kmsg
Type=simple
RemainAfterExit=no
ExecStart=/usr/bin/lynq-ril-service
@@ -16,4 +16,4 @@
[Install]
Alias=rilsvc
-WantedBy=multi-user.target
\ No newline at end of file
+WantedBy=multi-user.target
diff --git a/src/lynq/framework/lynq-sdk-ready/src/lynq_sdk_ready.service b/src/lynq/framework/lynq-sdk-ready/src/lynq_sdk_ready.service
index 5132c86..a771fc0 100755
--- a/src/lynq/framework/lynq-sdk-ready/src/lynq_sdk_ready.service
+++ b/src/lynq/framework/lynq-sdk-ready/src/lynq_sdk_ready.service
@@ -3,7 +3,7 @@
After=lynq_ril_service.service
[Service]
-StandardOutput=kmsg+console
+StandardOutput=kmsg
Type=simple
RemainAfterExit=no
ExecStart=/usr/bin/lynq-sdk-ready
@@ -13,4 +13,4 @@
[Install]
Alias=rilsvc
-WantedBy=multi-user.target
\ No newline at end of file
+WantedBy=multi-user.target
diff --git a/src/lynq/framework/lynq-tester-service/src/lynq_tester.service b/src/lynq/framework/lynq-tester-service/src/lynq_tester.service
index f88b325..906a5a8 100755
--- a/src/lynq/framework/lynq-tester-service/src/lynq_tester.service
+++ b/src/lynq/framework/lynq-tester-service/src/lynq_tester.service
@@ -5,7 +5,7 @@
#Requires=mtkfusionrild.service
[Service]
-StandardOutput=kmsg+console
+StandardOutput=kmsg
Type=simple
RemainAfterExit=no
ExecStart=/usr/bin/lynq-tester-service
diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index f73b76f..1351300 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -232,6 +232,36 @@
}
return ret;
}
+//@return
+//other:this apn has been used in apn table
+//-1:this apn not has been used in apn table
+int check_used_apn(char apnType[])
+{
+ LYINFLOG("check_used_apn.apnType:%s",apnType);
+ int ret = 0;
+ int len = 0;
+ for(ret;ret<LYNQ_APN_CHANNEL_MAX;ret++)
+ {
+ len = strlen(apnType);
+ if(strncmp(lynq_apn_table[ret].apnType,apnType,len)==0)
+ {
+ LYINFLOG("check_used_apn.apnType:%s in apn table",apnType);
+ return ret;
+ }
+ }
+ return -1;
+}
+int get_handle(char apnType[])
+{
+ int call_id = 0;
+ call_id = check_used_apn(apnType);
+ if(call_id == -1)
+ {
+ call_id = updateApn(apnType);
+ }
+ LYINFLOG("handle:%d",call_id);
+ return call_id;
+}
int handleCheck(int handle)
{
@@ -914,7 +944,7 @@
client.paramLen = 0;
bzero(client.param,LYNQ_REQUEST_PARAM_BUF);
LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
- lynq_data_call_id = updateApn("default");
+ lynq_data_call_id = get_handle("default");
if (lynq_data_call_id < 0)
{
LYERRLOG("update apn table fail error id = %d",lynq_data_call_id);
@@ -1119,7 +1149,7 @@
sprintf(client.param,"%s %s %s %s %s %s %s",apn,apnType,argv[1],argv[2],argv[3],argv[4],argv[5]);
#endif //GSW_RIL_CFG
LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
- lynq_data_call_id = updateApn(apnType);
+ lynq_data_call_id = get_handle(apnType);
if (lynq_data_call_id < 0)
{
LYERRLOG("update apn table fail error id = %d",lynq_data_call_id);
diff --git a/src/lynq/lib/liblynq-misc/LICENSE b/src/lynq/lib/liblynq-misc/LICENSE
new file mode 100755
index 0000000..605b7ea
--- /dev/null
+++ b/src/lynq/lib/liblynq-misc/LICENSE
@@ -0,0 +1,31 @@
+Copyright Statement:
+
+This software/firmware and related documentation ("MobileTek Software") are
+protected under relevant copyright laws. The information contained herein is
+confidential and proprietary to MobileTek Inc. and/or its licensors. Without
+the prior written permission of MobileTek inc. and/or its licensors, any
+reproduction, modification, use or disclosure of MobileTek Software, and
+information contained herein, in whole or in part, shall be strictly
+prohibited.
+
+MobileTek Inc. (C) 2015. All rights reserved.
+
+BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MobileTek SOFTWARE")
+RECEIVED FROM MobileTek AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
+ON AN "AS-IS" BASIS ONLY. MobileTek EXPRESSLY DISCLAIMS ANY AND ALL
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+NONINFRINGEMENT. NEITHER DOES MobileTek PROVIDE ANY WARRANTY WHATSOEVER WITH
+RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
+INCORPORATED IN, OR SUPPLIED WITH THE MobileTek SOFTWARE, AND RECEIVER AGREES
+TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
+RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
+OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MobileTek
+SOFTWARE. MobileTek SHALL ALSO NOT BE RESPONSIBLE FOR ANY MobileTek SOFTWARE
+RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
+STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MobileTek'S
+ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE MobileTek SOFTWARE
+RELEASED HEREUNDER WILL BE, AT MobileTek'S OPTION, TO REVISE OR REPLACE THE
+MobileTek SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
+CHARGE PAID BY RECEIVER TO MobileTek FOR SUCH MobileTek SOFTWARE AT ISSUE.
diff --git a/src/lynq/lib/liblynq-misc/include/lynq_misc.h b/src/lynq/lib/liblynq-misc/include/lynq_misc.h
new file mode 100755
index 0000000..4207191
--- /dev/null
+++ b/src/lynq/lib/liblynq-misc/include/lynq_misc.h
@@ -0,0 +1,28 @@
+/**
+ * @file misc.h
+ * @author you.chen
+ * @brief
+ * @version 1.0
+ * @date 2023-08-21
+ *
+ * @copyright Copyright (c) 2023
+ *
+ */
+#ifndef __LYNQ_MISC_H__
+#define __LYNQ_MISC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief lynq_get_security_boot_flag get the flag in efuse
+ * @param enable_flag (output param, 1 for enabled)
+ * @return 0 success, -1 some error occur
+ */
+int lynq_get_security_boot_flag(int * enabled_flag);
+
+#ifdef __cplusplus
+}
+#endif
+#endif //#ifndef __LYNQ_MISC_H__
diff --git a/src/lynq/lib/liblynq-misc/lynq_misc.cpp b/src/lynq/lib/liblynq-misc/lynq_misc.cpp
new file mode 100755
index 0000000..1bada46
--- /dev/null
+++ b/src/lynq/lib/liblynq-misc/lynq_misc.cpp
@@ -0,0 +1,42 @@
+#include <stdio.h>
+#include "lynq_misc.h"
+#include "log/log.h"
+
+#undef LOG_TAG
+#define LOG_TAG "MISC"
+
+int lynq_get_security_boot_flag(int * enabled_flag)
+{
+ int value, ret;
+ if (enabled_flag == NULL)
+ {
+ RLOGE("input param is null ptr");
+ return -1;
+ }
+ *enabled_flag = 0;
+ FILE *pfile=fopen("/proc/device-tree/chosen/atag,devinfo", "r");
+ if (pfile == NULL)
+ {
+ RLOGE("open devinfo fail");
+ return -1;
+ }
+ ret = fseek(pfile, 0x428, 0);
+ if (ret != 0)
+ {
+ RLOGE("seek file fail");
+ fclose(pfile);
+ return -1;
+ }
+ ret = fread(&value, sizeof (value), 1, pfile);
+ if (ret != 1)
+ {
+ RLOGE("read file fail");
+ fclose(pfile);
+ return -1;
+ }
+ fclose(pfile);
+
+ // the third bit of 32bits at 0x428 (big endian?), 1 for enabled, 0 not enabled
+ *enabled_flag = (value & 0x20) == 0 ? 0 : 1;
+ return 0;
+}
diff --git a/src/lynq/lib/liblynq-misc/makefile b/src/lynq/lib/liblynq-misc/makefile
new file mode 100755
index 0000000..5864273
--- /dev/null
+++ b/src/lynq/lib/liblynq-misc/makefile
@@ -0,0 +1,58 @@
+SHELL = /bin/sh
+RM = rm -f
+
+LOCAL_CFLAGS := -Wall \
+ -g -Os \
+ -flto \
+ -fPIC
+
+PWD := $(shell pwd)
+
+$(warning ################# lynq misc ROOT: $(ROOT),includedir:$(includedir), PWD :$(PWD))
+LOCAL_PATH = .
+
+LOCAL_C_INCLUDES = \
+ -I. \
+ -I$(LOCAL_PATH)/include \
+ -I$(ROOT)$(includedir) \
+
+LOCAL_LIBS := \
+ -L. \
+ -ldl \
+ -llog \
+
+SOURCES = $(wildcard *.cpp)
+
+EXECUTABLE = liblynq-misc.so
+
+OBJECTS=$(SOURCES:.c=.o)
+all: $(EXECUTABLE)
+
+$(EXECUTABLE): $(OBJECTS)
+ $(CXX) -shared -Wl,--no-undefined $(OBJECTS) $(LOCAL_LIBS) $(LOCAL_CFLAGS) $(LOCAL_C_INCLUDES) -o $@
+
+%.o : %.c
+ $(CC) $(LOCAL_C_INCLUDES) $(LOCAL_CFLAGS) $(LOCAL_LIBS) -o $@ -c $<
+
+build: $(EXECUTABLE)
+ $(warning ########## build $(EXECUTABLE) ##########)
+
+install:
+ $(warning ################# lynq misc EXECUTABLE: $(EXECUTABLE),base:$(base_libdir))
+ mkdir -p $(ROOT)$(base_libdir)/
+ install $(EXECUTABLE) $(ROOT)$(base_libdir)/
+
+pack_rootfs:
+ $(warning ################# lynq misc PACK: $(PACK_INITRAMFS_TO),base:$(base_libdir))
+ mkdir -p $(PACK_INITRAMFS_TO)$(base_libdir)/
+ cp -af $(EXECUTABLE) $(PACK_INITRAMFS_TO)$(base_libdir)/
+ $(CROSS)strip $(PACK_INITRAMFS_TO)$(base_libdir)/$(EXECUTABLE)
+ mkdir -p $(PACK_TO)$(base_libdir)/
+ cp -af $(EXECUTABLE) $(PACK_TO)$(base_libdir)/
+ $(CROSS)strip $(PACK_TO)$(base_libdir)/$(EXECUTABLE)
+
+.PHONY: clean
+clean:
+ $(RM) $(OBJECTS) $(EXECUTABLE)
+
+
diff --git a/src/lynq/lib/liblynq-wifi6/include/libwifi6.h b/src/lynq/lib/liblynq-wifi6/include/libwifi6.h
index 8caf003..f99af3d 100755
--- a/src/lynq/lib/liblynq-wifi6/include/libwifi6.h
+++ b/src/lynq/lib/liblynq-wifi6/include/libwifi6.h
@@ -157,9 +157,11 @@
int lynq_wifi_sta_connect_timeout(lynq_wifi_index_e idx, char *ssid, lynq_wifi_auth_s auth, char *psw, int timeout);
//disconnect
int lynq_wifi_sta_disconnect(lynq_wifi_index_e idx,char *ssid);
+int lynq_wifi_sta_disconnect_ap(lynq_wifi_index_e idx,char *ssid);
//start sta mode;enable sta
int lynq_wifi_sta_start(lynq_wifi_index_e idx);
+int lynq_wifi_sta_start_auto(lynq_wifi_index_e idx);
//stop sta:disable sta
int lynq_wifi_sta_stop(lynq_wifi_index_e idx);
diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 2772668..f56cc2d 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -46,11 +46,6 @@
volatile int g_ap_watcher_stop_flag = 0;
volatile int g_ap_watcher_started_flag = 0;
-pthread_t g_ap_tmp_watcher_pid = 0;
-volatile int g_ap_tmp_watcher_stop_flag = 0;
-
-
-
pthread_t g_sta_watcher_pid = 0;
volatile int g_sta_watcher_stop_flag = 0;
volatile int g_sta_scan_finish_flag = 1;
@@ -495,34 +490,6 @@
}
}
-
-static void APTmpWatcherThreadProc() {
-
- int i = 0;
- g_ap_tmp_watcher_stop_flag = 0;
- int delytimes = 1800;
-
- RLOGD("APTmpWatcherThreadProc ----> ThreadProc start");
- while(1)
- {
- sleep(1);
- i++;
- if( i == delytimes )
- {
- i = 0;
- system("wl reinit");
- RLOGD("APTmpWatcherThreadProc ----- > do cmd reinit");
- }
- if( g_ap_tmp_watcher_stop_flag == 1 )
- {
- RLOGD("APTmpWatcherThreadProc ----- > ap closed or wifi disabled");
- return;
- }
- }
-
-}
-
-
static void inner_check_connect_error(const char * event_msg, lynq_wifi_sta_status_s state, error_number_s error_num)
{
char * p;
@@ -574,9 +541,10 @@
sprintf(LYNQ_DISABLE_CMD,"DISABLE_NETWORK %d",networkid);
RLOGD("LYNQ_DISABLE_CMD is:%d\n",LYNQ_DISABLE_CMD);
DO_OK_FAIL_REQUEST(LYNQ_DISABLE_CMD);
-
+ DO_OK_FAIL_REQUEST(cmd_save_config);
+
return 0;
-
+
}
@@ -1158,15 +1126,12 @@
g_ap_watcher_stop_flag = 1;
g_sta_watcher_stop_flag = 1;
g_sta_auto_watcher_stop_flag = 1;
- g_ap_tmp_watcher_stop_flag = 1;
if (g_ap_watcher_pid != 0)
pthread_join(g_ap_watcher_pid, NULL);
if (g_sta_watcher_pid != 0)
pthread_join(g_sta_watcher_pid, NULL);
if (g_sta_auto_watcher_pid != 0)
pthread_join(g_sta_auto_watcher_pid, NULL);
- if (g_ap_tmp_watcher_pid != 0)
- pthread_join(g_ap_tmp_watcher_pid, NULL);
if (g_lynq_wpa_ctrl[0] != NULL)
wpa_ctrl_close(g_lynq_wpa_ctrl[0]);
if (g_lynq_wpa_ctrl[1] != NULL)
@@ -1174,7 +1139,6 @@
g_ap_watcher_pid = 0;
g_sta_watcher_pid = 0;
g_sta_auto_watcher_pid = 0;
- g_ap_tmp_watcher_pid = 0;
g_lynq_wpa_ctrl[0] = NULL;
g_lynq_wpa_ctrl[1] = NULL;
system("systemctl stop wg870_drv_insmod.service");
@@ -2317,17 +2281,6 @@
check_tether_and_notify();
- if (g_ap_tmp_watcher_pid == 0)
- {
- if(pthread_create(&g_ap_tmp_watcher_pid,NULL,APTmpWatcherThreadProc,NULL) < 0)
- {
- g_ap_tmp_watcher_pid = 0;
- RLOGE("[wifi error]create APTmpWatcherThreadProc fail");
- return -1;
- }
- RLOGD("[lynq_wifi_ap_start] creat APTmpWatcherThreadProc ok");
- }
-
return 0;
}
@@ -2356,10 +2309,7 @@
RLOGE("lynq_wifi_ap_start excute script fail");
return -1;
}
- g_ap_tmp_watcher_stop_flag = 1;
- if (g_ap_tmp_watcher_pid != 0)
- pthread_join(g_ap_tmp_watcher_pid, NULL);
- g_ap_tmp_watcher_pid = 0;
+
return 0;
}
@@ -3285,6 +3235,42 @@
return inner_sta_start_stop(curr_state.net_no, 0, 0);
}
+int lynq_wifi_sta_disconnect_ap(lynq_wifi_index_e idx, char *ssid)
+{
+ ap_info_s ap;
+ curr_status_info curr_state;
+ ap.ap_ssid[0] = '\0';
+
+ if (ssid == NULL || *ssid == '\0')
+ {
+ RLOGE("input ssid is NULL\n");
+ return -1;
+ }
+
+ CHECK_IDX(idx, CTRL_STA);
+
+
+ curr_state.ap = ≈
+ curr_state.state = NULL;
+
+ if (inner_get_status_info(CTRL_STA, &curr_state) != 0)
+ {
+ return 0;
+ }
+
+ if (strcmp(ap.ap_ssid, ssid) != 0)
+ {
+ return 0;
+ }
+
+ pthread_mutex_lock(&s_global_check_mutex);
+ s_sta_status = INNER_STA_STATUS_DISCONNECTING;
+ pthread_mutex_unlock(&s_global_check_mutex);
+ return lynq_wifi_sta_stop_network(idx, curr_state.net_no);
+
+}
+
+
int lynq_wifi_sta_start(lynq_wifi_index_e idx)
{
// const char *lynq_reconfigure_cmd = "wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=wlan0 RECONFIGURE /data/wifi/wg870/wpa_supplicant.conf";
@@ -3315,6 +3301,29 @@
curr_state.state = state;
return inner_get_status_info(interface, &curr_state);
}
+
+int lynq_wifi_sta_start_auto(lynq_wifi_index_e idx)
+{
+
+ const char *lynq_reconnect_cmd = "wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=wlan0 reconnect";
+
+ CHECK_IDX(idx, CTRL_STA);
+ CHECK_WPA_CTRL(CTRL_STA);
+
+ ret = system_call_v("%s %s", start_stop_sta_script, "start");
+ if (ret != 0)
+ {
+ RLOGE("lynq_wifi_ap_start excute script fail");
+ return -1;
+ }
+
+// system(lynq_enable_sta_cmd);
+ system(lynq_reconnect_cmd);
+
+ return 0;
+}
+
+
int lynq_wifi_sta_stop(lynq_wifi_index_e idx)
{
// char lynq_disable_network_cmd[MAX_CMD];
@@ -3352,7 +3361,7 @@
RLOGD("lynq_wifi_ap_start curr state %s", state);
usleep(SLEEP_TIME_ON_IDLE);
}
-
+
return 0;
// return system("connmanctl disable wifi");
}
diff --git a/src/lynq/lib/libpoweralarm/format_change.c b/src/lynq/lib/libpoweralarm/format_change.c
index d9cac51..8d3e3b1 100644
--- a/src/lynq/lib/libpoweralarm/format_change.c
+++ b/src/lynq/lib/libpoweralarm/format_change.c
@@ -1,4 +1,4 @@
-#include"./include/format_change.h"
+#include"format_change.h"
#include<log/log.h>
@@ -130,4 +130,4 @@
regfree(®_sec);
return sec;
-}
\ No newline at end of file
+}
diff --git a/src/lynq/lib/libpoweralarm/include/format_change.h b/src/lynq/lib/libpoweralarm/format_change.h
similarity index 99%
rename from src/lynq/lib/libpoweralarm/include/format_change.h
rename to src/lynq/lib/libpoweralarm/format_change.h
index 0656c9f..e84c985 100644
--- a/src/lynq/lib/libpoweralarm/include/format_change.h
+++ b/src/lynq/lib/libpoweralarm/format_change.h
@@ -12,4 +12,4 @@
ssize_t format_change(char *buffer);
-#endif
\ No newline at end of file
+#endif
diff --git a/src/lynq/lib/libpoweralarm/include/lynq_alarm.h b/src/lynq/lib/libpoweralarm/include/lynq_alarm.h
new file mode 100644
index 0000000..b72e0f0
--- /dev/null
+++ b/src/lynq/lib/libpoweralarm/include/lynq_alarm.h
@@ -0,0 +1,27 @@
+#ifndef _LYNQ_ALARM_H_
+#define _LYNQ_ALARM_H_
+
+
+#include<stdio.h>
+#include<stdlib.h>
+#include<regex.h>
+#include<stdbool.h>
+#include<time.h>
+#include<string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+ssize_t wakealarm(char *buffer);
+
+ssize_t poweralarm(char *buffer);
+
+int cancel_wakealarm(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/lynq/lib/libpoweralarm/libpoweralarm.c b/src/lynq/lib/libpoweralarm/libpoweralarm.c
index b63d663..aeb3933 100755
--- a/src/lynq/lib/libpoweralarm/libpoweralarm.c
+++ b/src/lynq/lib/libpoweralarm/libpoweralarm.c
@@ -3,24 +3,14 @@
#include<unistd.h>
#include<stdbool.h>
#include<log/log.h>
-#include"./include/format_change.h"
-
+#include"./include/lynq_alarm.h"
+#include"format_change.h"
#define LOG_TAG "libpoweralarm"
#define RTCFILE_POWERALARM "/sys/class/rtc/rtc0/poweralarm"
#define RTCFILE_WAKEALARM "/sys/class/rtc/rtc0/wakealarm"
-extern "C" ssize_t wakealarm(char *buffer);
-
-
-extern "C" ssize_t poweralarm(char *buffer);
-
-ssize_t poweralarm(char *buffer);
-
-ssize_t wakealarm(char *buffer);
-
-int cancel_wakealarm(void);
/*****************************************************************************
*
@@ -31,6 +21,7 @@
* Return Value : -1: error ; >0: set to wake up the devices after seconds
*
*****************************************************************************/
+
ssize_t poweralarm(char *buffer)
{
ssize_t sec;
@@ -101,8 +92,9 @@
int cancel_wakealarm(void)
{
- int ret;
+ int ret;
ret = system("echo +0 > /sys/class/rtc/rtc0/wakealarm");
+ ret = system("echo +315360000 > /sys/class/rtc/rtc0/wakealarm");
RLOGD("close wakealarm ret= %d\n", ret);
return ret;
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config
index 0199bde..afa24ab 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/.config
@@ -511,7 +511,7 @@
#CONFIG_MATCH_IFACE=y
# Disable roaming in wpa_supplicant
-#CONFIG_NO_ROAMING=y
+CONFIG_NO_ROAMING=y
# AP mode operations with wpa_supplicant
# This can be used for controlling AP mode operations with wpa_supplicant. It
diff --git a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c
index 6b36e5e..912bcc9 100755
--- a/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c
+++ b/src/lynq/packages/thirdpart/lynq-wg870/wpa_supplicant/events.c
@@ -2213,6 +2213,10 @@
return 1; /* we are not associated; continue */
if (wpa_s->current_ssid == NULL)
return 1; /* unknown current SSID */
+ //you.chen@20230826 add not roam when connected begin
+ if (wpa_s->wpa_state == WPA_COMPLETED)
+ return 0;
+ //you.chen@20230826 add not roam when connected end
if (wpa_s->current_ssid != ssid)
return 1; /* different network block */