[Feature][T8TSK-304] merge mtk official patch 5th AP patch release
Only Configure: No
Affected branch: N/A
Affected module: N/A
Is it affected on both ZXIC and MTK: only MTK
Self-test: Yes
Doc Update: No
Change-Id: I532b4e9177aece17bd716ba6c7a8236db6a4a27d
diff --git a/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_ctl.c b/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_ctl.c
index 79a664e..6c0deee 100755
--- a/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_ctl.c
+++ b/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_ctl.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: MediaTekProprietary
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
diff --git a/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_pcm.c b/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_pcm.c
index 97d0fa1..422d4b9 100755
--- a/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_pcm.c
+++ b/meta/meta-mediatek-ivt/recipes-yummy/mtk_phonecall_ioplugin/files/mtk_phonecall_pcm.c
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: MediaTekProprietary
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
diff --git a/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-base.conf b/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-base.conf
index c2faa57..c9fbb9f 100755
--- a/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-base.conf
+++ b/meta/meta-mediatek-mt2735/conf/machine/auto2735evb-ivt-base.conf
@@ -155,6 +155,7 @@
MODEM_CUSTOM_EXIST = "${@ os.path.exists('${MODEM_CUSTOM}')}"
MODEM_DIR = "${@'${MODEM_INT}/${MODEM_PROJECT}' if ${MODEM_INT_EXIST} == True else '${MODEM_CUSTOM}/${MODEM_PROJECT}'}"
EXTRA_IMAGEDEPENDS += "${@'modem' if ${MODEM_INT_EXIST} == True or ${MODEM_CUSTOM_EXIST} == True else ''}"
+
# MIPC
MIPC_MODEM_PROJECT = "mt2735_ivt_nlwg_wide_temp"
MIPC_INT = "${TOPDIR}/../src/telephonyware/3.0/mipc_internal"
diff --git a/src/connectivity/gps/2.0/gps_hal/src/gpshal_worker.c b/src/connectivity/gps/2.0/gps_hal/src/gpshal_worker.c
index 95fccb2..0b38e6e 100755
--- a/src/connectivity/gps/2.0/gps_hal/src/gpshal_worker.c
+++ b/src/connectivity/gps/2.0/gps_hal/src/gpshal_worker.c
@@ -503,7 +503,6 @@
void connection_broken_basic(void) {
LOGW("connection broken...");
-
if (g_gpshal_ctx.fd_mnl2hal_basic != -1){
mnldinf_epoll_del_fd(g_gpshal_ctx.fd_worker_epoll, g_gpshal_ctx.fd_mnl2hal_basic);
}
@@ -656,7 +655,6 @@
int i;
int n;
memset(events, 0, sizeof(events));
-
n = epoll_wait(g_gpshal_ctx.fd_worker_epoll, events, MAX_EPOLL_EVENT , -1);
if (n == -1) {
if (errno == EINTR) {
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 cac4d53..aab8034 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
@@ -385,7 +385,7 @@
alignment = <0 0x10000>;
reg = <0 0x60040000 0 0x330000>;
};
-
+
reserve-memory-sspm_share {
compatible = "mediatek,reserve-memory-sspm_share";
no-map;
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_logger.c b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_logger.c
index 55391b9..b933751 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_logger.c
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_logger.c
@@ -80,11 +80,14 @@
#define BASE_DPMAIF_INT (0x1022D400)
#define BASE_DPMAIF_DL (0x1022DC00)
#define BASE_DPMAIF_UL (0x1022DD00)
+#define BASE_DPMAIF_PD_DL (0x1022D100)
+#define BASE_DPMAIF_PD_WDMA (0x1022D300)
#define DPMAIF_INT_BASE (DPMAIF_BASE + 0x400)
#define DPMAIF_DL_BASE (DPMAIF_BASE + 0xC00)
#define DPMAIF_UL_BASE (DPMAIF_BASE + 0xD00)
-
+#define DPMAIF_PD_DL_BASE (DPMAIF_BASE + 0x100)
+#define DPMAIF_PD_WDMA_BASE (DPMAIF_BASE + 0x300)
#define MTK_MDMA_BASE (0x15104000)
#define MTK_MDMA_RANGE (0x25C)
@@ -1270,7 +1273,54 @@
pr_notice("+-----------------------------------------------+\n");
}
- pr_notice("Dump MDMA_TX_DESC...\n");//jb.qi change for medmcu sleep fail on 20230418
+ pr_notice("Dump DPMAIF_PD_DL...\n");
+ if (seq != NULL) {
+ seq_puts(seq, " <<DPMAIF_PD_DL CR DUMP>>\n");
+ } else {
+ pr_notice(" <<DPMAIF_PD_DL CR DUMP>>\n");
+ }
+ for (i = 0; i < 0x100; i = i + 0x10) {
+ sprintf(buf, "0x%08x : 0x%08x 0x%08x 0x%08x 0x%08x\n", BASE_DPMAIF_PD_DL + i,
+ reg_read(DPMAIF_PD_DL_BASE + i), reg_read(DPMAIF_PD_DL_BASE + i + 4),
+ reg_read(DPMAIF_PD_DL_BASE + i + 8), reg_read(DPMAIF_PD_DL_BASE + i + 0xc));
+ if (seq != NULL) {
+ seq_printf(seq, "%s", buf);
+ } else {
+ pr_notice("[MEDHW] %s", buf);
+ }
+ }
+ if (seq != NULL) {
+ seq_puts(seq, "+-----------------------------------------------+\n");
+ seq_puts(seq, "\n");
+ } else {
+ pr_notice("+-----------------------------------------------+\n");
+ }
+
+ pr_notice("Dump DPMAIF_PD_WDMA...\n");
+ if (seq != NULL) {
+ seq_puts(seq, " <<DPMAIF_PD_WDMA CR DUMP>>\n");
+ } else {
+ pr_notice(" <<DPMAIF_PD_WDMA CR DUMP>>\n");
+ }
+
+ for (i = 0; i < 0x100; i = i + 0x10) {
+ sprintf(buf, "0x%08x : 0x%08x 0x%08x 0x%08x 0x%08x\n", BASE_DPMAIF_PD_WDMA + i,
+ reg_read(DPMAIF_PD_WDMA_BASE + i), reg_read(DPMAIF_PD_WDMA_BASE + i + 4),
+ reg_read(DPMAIF_PD_WDMA_BASE + i + 8), reg_read(DPMAIF_PD_WDMA_BASE + i + 0xc));
+ if (seq != NULL) {
+ seq_printf(seq, "%s", buf);
+ } else {
+ pr_notice("[MEDHW] %s", buf);
+ }
+ }
+ if (seq != NULL) {
+ seq_puts(seq, "+-----------------------------------------------+\n");
+ seq_puts(seq, "\n");
+ } else {
+ pr_notice("+-----------------------------------------------+\n");
+ }
+
+ pr_notice("Dump MDMA_TX_DESC...\n");
if (seq != NULL) {
seq_puts(seq, " <<MDMA_TX_DESC CR DUMP>>\n");
} else {
diff --git a/src/kernel/linux/v4.19/drivers/tty/serial/8250/8250_mtk.c b/src/kernel/linux/v4.19/drivers/tty/serial/8250/8250_mtk.c
index 45cf1f3..2db30a2 100644
--- a/src/kernel/linux/v4.19/drivers/tty/serial/8250/8250_mtk.c
+++ b/src/kernel/linux/v4.19/drivers/tty/serial/8250/8250_mtk.c
@@ -57,6 +57,8 @@
#define MTK_UART_TX_TRIGGER 1
#define MTK_UART_RX_TRIGGER MTK_UART_RX_SIZE
+#define MAX_POLLING_CNT 8
+
#ifdef CONFIG_SERIAL_8250_DMA
enum dma_rx_status {
DMA_RX_START = 0,
@@ -90,6 +92,20 @@
#ifdef CONFIG_SERIAL_8250_DMA
static void mtk8250_rx_dma(struct uart_8250_port *up);
+static int mtk8250_uart_rx_dma(struct uart_8250_port *up)
+{
+ unsigned int iir = 0;
+ unsigned int tmo = MAX_POLLING_CNT;
+
+ while (tmo--) {
+ iir = serial_in(up, UART_IIR);
+ if (iir & UART_IIR_NO_INT)
+ break;
+ }
+ serial_out(up, UART_IER, 0);
+ return 0;
+}
+
static void mtk8250_dma_rx_complete(void *param)
{
struct uart_8250_port *up = param;
@@ -158,6 +174,7 @@
if (data->rx_status != DMA_RX_START)
return;
+ dma->rx_dma = mtk8250_uart_rx_dma;
dma->rxconf.src_port_window_size = dma->rx_size;
dma->rxconf.src_addr = dma->rx_addr;
@@ -172,6 +189,7 @@
serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
serial_out(up, UART_EFR, UART_EFR_ECB);
serial_out(up, UART_LCR, lcr);
+ serial_out(up, UART_IER, 0);
if (dmaengine_slave_config(dma->rxchan, &dma->rxconf) != 0)
pr_err("failed to configure rx dma channel\n");
@@ -313,6 +331,22 @@
#endif
serial8250_do_set_termios(port, termios, old);
+#ifdef CONFIG_SERIAL_8250_DMA
+ if (up->dma) {
+ if (!uart_console(port)) {
+ unsigned int tmo = MAX_POLLING_CNT;
+ unsigned int iir = 0;
+
+ while (tmo--) {
+ iir = serial_port_in(port, UART_IIR);
+ if (iir & UART_IIR_NO_INT)
+ break;
+ }
+ up->ier = 0;
+ serial_port_out(port, UART_IER, 0x0);
+ }
+ }
+#endif
/*
* Mediatek UARTs use an extra highspeed register (MTK_UART_HIGHS)
@@ -383,6 +417,11 @@
mtk8250_set_flow_ctrl(up, mode);
+#ifdef CONFIG_SERIAL_8250_DMA
+ if (up->dma && (!uart_console(port)))
+ serial_port_out(port, UART_IER, 0x0);
+#endif
+
if (uart_console(port))
up->port.cons->cflag = termios->c_cflag;
@@ -417,11 +456,11 @@
static int __maybe_unused mtk8250_runtime_suspend(struct device *dev)
{
struct mtk8250_data *data = dev_get_drvdata(dev);
- struct uart_8250_port *up = serial8250_get_port(data->line);
+// struct uart_8250_port *up = serial8250_get_port(data->line);
/* wait until UART in idle status */
- while
- (serial_in(up, MTK_UART_DEBUG0));
+// while
+// (serial_in(up, MTK_UART_DEBUG0));
if (data->clk_count == 0U) {
dev_dbg(dev, "%s clock count is 0\n", __func__);
@@ -589,8 +628,10 @@
uart.port.handle_irq = mtk8250_handle_irq;
uart.port.uartclk = clk_get_rate(data->uart_clk);
#ifdef CONFIG_SERIAL_8250_DMA
- if (data->dma)
+ if (data->dma) {
uart.dma = data->dma;
+ uart.dma->rx_dma = mtk8250_uart_rx_dma;
+ }
#endif
/* Disable Rate Fix function */
diff --git a/src/kernel/modules/netsys_driver/nat/hw_nat/frame_engine.h b/src/kernel/modules/netsys_driver/nat/hw_nat/frame_engine.h
index 49e1c6b..a4c06c0 100755
--- a/src/kernel/modules/netsys_driver/nat/hw_nat/frame_engine.h
+++ b/src/kernel/modules/netsys_driver/nat/hw_nat/frame_engine.h
@@ -206,9 +206,9 @@
#define CAH_WDATA (PPE_BASE + 0x32C)
#define CAH_RDATA (PPE_BASE + 0x330)
#define PPE_SBW_CTRL (PPE_BASE + 0x374)
-#define PPE_S0_DBG (PPE_BASE + 0x384)//jb.qi change for reboot after sleep on 20230417
-#define PPE_S1_DBG (PPE_BASE + 0x388)//jb.qi change for reboot after sleep on 20230417
-#define PPE_S2_DBG (PPE_BASE + 0x38C)//jb.qi change for reboot after sleep on 20230417
+#define PPE_S0_DBG (PPE_BASE + 0x384)
+#define PPE_S1_DBG (PPE_BASE + 0x388)
+#define PPE_S2_DBG (PPE_BASE + 0x38C)
#define PS_CFG (PPE_BASE + 0x400)
#define PS_FBC (PPE_BASE + 0x404)
@@ -251,7 +251,7 @@
#define MEDHW_SSR1_DST_RB0_CFG (MED_BASE + 0xa0)
#define MEDHW_SSR1_DST_RB0_STS (MED_BASE + 0xa4)
-//MED_HNAT_INFO_HOST_ADD_ENTRY_CNT (18):\A0
+//MED_HNAT_INFO_HOST_ADD_ENTRY_CNT (18):
#define MEDHW_SSR1_DST_RB0_INC (MED_BASE + 0xb0)
#define MEDHW_SSR1_DST_RB0_DEC (MED_BASE + 0xb4)
@@ -588,9 +588,9 @@
#define MIB_CAH_CTRL_PPE1 (PPE1_BASE + 0x350)
#define PPE1_6RD_ID (PPE1_BASE + 0x36c)
#define PPE1_SBW_CTRL (PPE1_BASE + 0x374)
-#define PPE1_S0_DBG (PPE1_BASE + 0x384)//jb.qi change for reboot after sleep on 20230417
-#define PPE1_S1_DBG (PPE1_BASE + 0x388)//jb.qi change for reboot after sleep on 20230417
-#define PPE1_S2_DBG (PPE1_BASE + 0x38C)//jb.qi change for reboot after sleep on 20230417
+#define PPE1_S0_DBG (PPE1_BASE + 0x384)
+#define PPE1_S1_DBG (PPE1_BASE + 0x388)
+#define PPE1_S2_DBG (PPE1_BASE + 0x38C)
#define NETSYS_DVFS_CFG0 (netsys_base + 0xCC)
#define NETSYS_DVFS_EN BIT(0)
diff --git a/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c b/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c
old mode 100755
new mode 100644
index 6757f3d..7233406
--- a/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c
+++ b/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.c
@@ -3349,7 +3349,7 @@
else
return 0;
}
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
void ppe_resume_foe_hash_mode(void)
{
/* set foe table */
@@ -3497,7 +3497,7 @@
return 0;
}
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
void ppe_setfoe_ebl(uint32_t foe_ebl)
{
u32 ppe_flow_set = 0;
@@ -3895,7 +3895,7 @@
}
-#if (0) //jb.qi change for reboot after sleep on 20230417
+#if (0)
static void foe_free_tbl(uint32_t num_of_entry, struct device *dev)
{
u32 foe_tbl_size, mib_tbl_size;
@@ -3950,7 +3950,7 @@
return 0;
}
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
void ppe_en_scan_mode(void)
{
/* enable scan mode */
@@ -3971,7 +3971,7 @@
return 0;
}
-int ppe_eng_stop(void)
+int ppe_eng_stop(void)
{
/* Set PPE FOE ENABLE */
ppe_setfoe_glocfg_ebl(0);
@@ -3989,7 +3989,7 @@
return 0;
}
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
struct net_device *ra_dev_get_by_name(const char *name)
{
return dev_get_by_name(&init_net, name);
@@ -5105,7 +5105,7 @@
ppe_set_cache_ebl();
/* Initialize PPE related register */
- ppe_en_scan_mode(); //jb.qi change for reboot after sleep on 20230417
+ ppe_en_scan_mode();
ppe_eng_start();
}
diff --git a/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.h b/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.h
index 858b3b5..7972e74 100755
--- a/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.h
+++ b/src/kernel/modules/netsys_driver/nat/hw_nat/hnat_common.h
@@ -59,12 +59,12 @@
#ifndef NEXTHDR_IPIP
#define NEXTHDR_IPIP 4
#endif
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
void ppe_resume_foe_hash_mode(void);
void ppe_set_gdm_fwd(uint32_t ebl);
void ppe_suspend_tbl_clear(void);
int ppe_suspend_check_status(void);
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
int ppe_setfoe_hash_mode(u32 hash_mode, struct device *dev);
void ppe_set_dst_port(uint32_t ebl);
void ppe_set_ip_prot(void);
@@ -140,6 +140,6 @@
void hwnat_config_setting(void);
void fe_feature_setting(void);
void FOE_INFO_DUMP(struct sk_buff *skb);
-int ppe_dis_scan_mode(void);//jb.qi change for reboot after sleep on 20230417
-int ppe_eng_stop(void);//jb.qi change for reboot after sleep on 20230417
+int ppe_dis_scan_mode(void);
+int ppe_eng_stop(void);
#endif
diff --git a/src/kernel/modules/netsys_driver/nat/hw_nat/ra_nat.c b/src/kernel/modules/netsys_driver/nat/hw_nat/ra_nat.c
index 70e8b2b..9f9b2ff 100644
--- a/src/kernel/modules/netsys_driver/nat/hw_nat/ra_nat.c
+++ b/src/kernel/modules/netsys_driver/nat/hw_nat/ra_nat.c
@@ -541,7 +541,7 @@
return ret;
}
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
void ppe_restore_hook(void)
{
if (!(fe_feature & MANUAL_MODE)) {
@@ -607,7 +607,7 @@
ppe_get_dev_stats = NULL;
}
}
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
void ppe_modify_hook(bool clear, unsigned char hook_id, int dir) {
pr_info("ppe_modify_hook, clear = %d, hook_id = %d, dir=%d\n", clear, hook_id, dir);
@@ -697,7 +697,6 @@
int hnat_pm_suspend(struct device *device)
{
- /*jb.qi change for reboot after sleep on 20230417 start*/
int ret;
ppe_clear_hook();
@@ -731,13 +730,12 @@
ppe_restore_hook();
return ret;
- /*jb.qi change for reboot after sleep on 20230417 end*/
}
int hnat_pm_resume(struct device *device)
{
NAT_PRINT("MEDIATEK HW NAT Module Enabled\n");
- /*jb.qi change for reboot after sleep on 20230417 end*/
+
/* Set PPE FOE Hash Mode */
//if (!ppe_setfoe_hash_mode(DFL_FOE_HASH_MODE, &pdev_hnat->dev)) {
// pr_info("PPE0 memory allocation failed\n");
@@ -771,7 +769,7 @@
ppe_restore_hook();
pr_notice("!!!! hnat restore hook\n");
- /*jb.qi change for reboot after sleep on 20230417 end*/
+
pr_notice("!!!! hnat resume done\n");
return 0;
diff --git a/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.c b/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.c
index badf0d2..685cf52 100644
--- a/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.c
+++ b/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.c
@@ -84,7 +84,7 @@
#define FS_WAKE_UNLOCK() release_wake_lock(FS_WAKE_LOCK_NAME)
static char md_id = 0;
-static char debug_wakeup = 0; // jb.qi change for abnormal resume on 20230328
+static char debug_wakeup = 0; // enable all log for wakeup msg
/*
* The maximum log level for messages to be logged to the syslog.
@@ -96,7 +96,7 @@
LOG_LEVEL_INFO,
LOG_LEVEL_DEBUG,
};
-/*jb.qi change for abnormal resume start on 20230328*/
+
#define DEBUGLEVEL LOG_LEVEL_ERR
#define LOGD(fmt, ...) \
do { \
@@ -125,7 +125,7 @@
if (debug_wakeup || LOG_LEVEL_ERR <= DEBUGLEVEL) \
ERROR(fmt, ##__VA_ARGS__); \
} while(0)
-/*jb.qi change for abnormal resume end on 20230328*/
+
#ifdef CCCI_FSD_UT
#define dbg_printf(...) printf(__VA_ARGS__) //__android_log_print(ANDROID_LOG_DEBUG, MD_COMN_TAG, __VA_ARGS__);
#else
@@ -744,7 +744,7 @@
return;
}
-/*jb.qi change for abnormal resume start on 20230328*/
+
static void print_file_name(const char *op_str, char *str, int len)
{
if (!op_str || len < 0)
@@ -763,7 +763,7 @@
else
LOGW("%s: [str_len = %d or no sub str]\n", op_str, len);
}
-/*jb.qi change for abnormal resume end on 20230328*/
+
static bool FS_GetPackInfo(FS_PACKET_INFO* pPackInfo, char* pData)
{
unsigned int PackNum = *((unsigned int*)pData);
@@ -4458,7 +4458,7 @@
stream = (STREAM_DATA *)pkt_buff;
ccci_h = (CCCI_BUFF_T *)&stream->header;
ReqBufIndex = ccci_h->reserved;
- /*jb.qi change for abnormal resume start on 20230328*/
+
if (ccci_h->data[0] & CCCI_FS_AP_CCCI_WAKEUP) {
debug_wakeup = 1;
ccci_h->data[0] &= (~CCCI_FS_AP_CCCI_WAKEUP);
@@ -4476,7 +4476,6 @@
"data[1]=0x%X channel=0x%X reserved=0x%X\n", RetVal,
ReqBufIndex, ccci_h->data[0], ccci_h->data[1],
ccci_h->channel, ccci_h->reserved);
- /*jb.qi change for abnormal resume end on 20230328*/
buffer_slot = (STREAM_DATA *)((char *)g_FsInfo.pFsBuf + (FS_MAX_BUF_SIZE + sizeof(STREAM_DATA))*ReqBufIndex);
p_fs_buff = (char *)buffer_slot;
/******************************************
@@ -4558,7 +4557,7 @@
}
LOGD("OpID = 0X%X\n", pFsBuf->OperateID);
- /*jb.qi change for abnormal resume start on 20230328*/
+
if (debug_wakeup) {
LOGW("[wakeup message] OpID = 0X%X\n", pFsBuf->OperateID);
switch (pFsBuf->OperateID) {
@@ -4605,7 +4604,7 @@
break;
}
}
- /*jb.qi change for abnormal resume end on 20230328*/
+
switch(pFsBuf->OperateID) {
#ifdef CCCI_FSD_UT
/*ut test*/
diff --git a/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.h b/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.h
index 46967d3..5ea2e16 100644
--- a/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.h
+++ b/src/telephonyware/3.0/ccci_fsd/src/ccci_fsd.h
@@ -376,7 +376,7 @@
#define MAX_FS_PKT_BYTE (3584-128)
#define MAX_FS_BUF_BYTE 4096
-#define CCCI_FS_AP_CCCI_WAKEUP (0x40000000) //jb.qi change for abnormal resume on 20230328
+#define CCCI_FS_AP_CCCI_WAKEUP (0x40000000)
#define CCCI_FS_REQ_SEND_AGAIN 0x80000000
#define CCCI_FS_PEER_REQ_SEND_AGAIN(_p) (((((CCCI_BUFF_T*)(_p))->data[0] & CCCI_FS_REQ_SEND_AGAIN) != 0)? 1: 0)
diff --git a/src/telephonyware/3.0/ccci_mdinit/src/md_init_fsm.c b/src/telephonyware/3.0/ccci_mdinit/src/md_init_fsm.c
index c7d7001..e05ffb6 100755
--- a/src/telephonyware/3.0/ccci_mdinit/src/md_init_fsm.c
+++ b/src/telephonyware/3.0/ccci_mdinit/src/md_init_fsm.c
@@ -63,10 +63,9 @@
#endif
// for FSD wake_lock not released
#include <signal.h>
-/*warren add for MTK MR3.0 NVRAM can`t Banckup BinRegion on 2022/09/06 start*/
#include <limits.h>
#include <stdbool.h>
-/*warren add for MTK MR3.0 NVRAM can`t Banckup BinRegion on 2022/09/06 end*/
+
#ifdef NEED_CTRL_AS_SP
int dl_aee_system_exception(const char *module, const char *path, unsigned int flag, const char* msg, ...);
#endif
@@ -942,7 +941,6 @@
#endif
}
-/*warren add for MTK MR3.0 NVRAM can`t Banckup BinRegion on 2022/09/06 start*/
#define NVRAM_INIT_FILE_PATH "/tmp/nvram_init"
static int str2int(char *str, int base, int *err) {
@@ -1026,7 +1024,6 @@
}
return ret;
}
-/*warren add for MTK MR3.0 NVRAM can`t Banckup BinRegion on 2022/09/06 end*/
typedef enum {
MODE_UNKNOWN = -1, /* -1 */
@@ -1371,9 +1368,7 @@
if (!first_boot)
check_to_restart_md();
check_decrypt_ready();
- /*warren add for MTK MR3.0 NVRAM can`t Banckup BinRegion on 2022/09/06 start*/
check_nvram_ready();
- /*warren add for MTK MR3.0 NVRAM can`t Banckup BinRegion on 2022/09/06 end*/
set_md_boot_env_data(md_id, monitor_fd);
start_service_verified(fsd_name, fsd_service_status, MAX_WAIT_FOR_PROPERTY);
diff --git a/src/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/ims/RpImsController.cpp b/src/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/ims/RpImsController.cpp
index 03a64eb..ed7ad74 100644
--- a/src/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/ims/RpImsController.cpp
+++ b/src/telephonyware/3.0/hardware/ril/fusion/libril/rilmipc/telephony/ims/RpImsController.cpp
@@ -1,3 +1,4 @@
+// SPDX-License-Identifier: MediaTekProprietary
/* Copyright Statement:
*
* This software/firmware and related documentation ("MediaTek Software") are
@@ -56,6 +57,7 @@
#include "RfxDispatchThread.h"
#include "Rfx.h"
+#include "rfx_properties.h"
#include "RilParcelUtils.h"
#include <telephony/mtk_ril_request_info.h>
#include "RfxRootController.h"
@@ -157,6 +159,17 @@
}
extern "C" {
+int isImsSupport() {
+ int isImsSupport = 0;
+ char prop_value[RFX_PROPERTY_VALUE_MAX] = {0};
+ rfx_property_get("persist.vendor.ims.support", prop_value, "1");
+ isImsSupport = atoi(prop_value);
+ RFX_LOG_D(RFX_LOG_TAG, "isImsSupport = %d", isImsSupport);
+ return isImsSupport;
+}
+}
+
+extern "C" {
void mipc_ims_set_config_cb(mipc_msg_t *msg_ptr, void *priv_ptr) {
mipc_result_enum result;
mipc_sim_ps_id_enum sim_ps_id;
@@ -194,8 +207,15 @@
uint8_t data[6]={0,0,0,0,1,1};
mipc_msg_t *msg_req_ptr = NULL;
- data[0] = enable;
- RFX_LOG_D(RFX_LOG_TAG,"handleSetImsEnableRequest enalbe = %d\n",enable);
+
+ if (isImsSupport()) {
+ data[0] = enable;
+ } else {
+ data[4] = 0;
+ data[5] = 0;
+ }
+
+ RFX_LOG_D(RFX_LOG_TAG,"handleSetImsEnableRequest enable = %d, ims support = %d\n", data[0], isImsSupport());
msg_req_ptr = mipc_msg_init(MIPC_IMS_SET_CONFIG_REQ, (mipc_msg_sim_ps_id_enum)slot_id_to_mipc_sim_id(request->getSlotId()));
if(msg_req_ptr) {
@@ -219,7 +239,7 @@
Parcel *p = request->getParcel();
int32_t status;
int count;
- if(p != NULL) {
+ if(isImsSupport() && (p != NULL)) {
status = p->readInt32(&count);
if (status != 0) {
RFX_LOG_D(RFX_LOG_TAG,"handleSetImsCfgRequest readerror\n");
@@ -259,8 +279,8 @@
uint8_t data[6]={volte,vilte,vowifi,viwifi,sms,eims};
mipc_msg_t *msg_req_ptr;
- RFX_LOG_D(RFX_LOG_TAG,"handleSetImsCfgRequest volte=%d,vilte=%d,vowifi=%d,viwifi=%d,sms=%d,eims=%d\n",
- volte,vilte,vowifi,viwifi,sms,eims);
+ RFX_LOG_D(RFX_LOG_TAG,"handleSetImsCfgRequest isImsSupport()=%d, volte=%d,vilte=%d,vowifi=%d,viwifi=%d,sms=%d,eims=%d\n",
+ isImsSupport(), volte,vilte,vowifi,viwifi,sms,eims);
msg_req_ptr = mipc_msg_init(MIPC_IMS_SET_CONFIG_REQ, (mipc_msg_sim_ps_id_enum)slot_id_to_mipc_sim_id(request->getSlotId()));
if(msg_req_ptr) {
diff --git a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/ApnContext.cpp b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/ApnContext.cpp
index 758f54a..983bead 100644
--- a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/ApnContext.cpp
+++ b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/ApnContext.cpp
@@ -290,7 +290,6 @@
mApnType.c_str(), RpDataUtils::apnState2string(newState), RpDataUtils::requestOrUrcToString(response->getId()));
// no need config the network for DEFAULT pdn.
- //if (ApnContext::mApnType != TEXT_APN_TYPE_DEFAULT) {
if (ApnContext::mApnType != TEXT_APN_TYPE_DEFAULT && ApnContext::mApnType != TEXT_IOT_APN_TYPE_DEFAULT) {
RpDataUtils::configNetwork(dcResponse.netId, dcResponse.ifname, dcResponse.gateways, dcResponse.dnses);
}
@@ -311,11 +310,6 @@
RFX_LOG_D(RFX_LOG_TAG, "ApnContext(%s) ::notifyStateChange with newState = %s, with Urc: %s",
mApnType.c_str(), RpDataUtils::apnState2string(newState), RpDataUtils::requestOrUrcToString(urc->getId()));
- // no need config the network for DEFAULT pdn.
- //if (ApnContext::mApnType != TEXT_APN_TYPE_DEFAULT) {
- //RpDataUtils::configNetwork(dcResponse.netId, dcResponse.ifname, dcResponse.gateways, dcResponse.dnses);
- //}
-
ApnContext::mRpDataController->notifyWorld(urc);
}
break;
diff --git a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.cpp b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.cpp
index 340d0aa..f6d260e 100755
--- a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.cpp
+++ b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.cpp
@@ -50,7 +50,6 @@
#include <errno.h>
#include <unistd.h>
#include <cutils/jstring.h>
-#include <cutils/properties.h>
#include <string>
using namespace std;
@@ -231,7 +230,7 @@
void RpDataController::handleSetupDataRequest(const sp<RfxMessage>& request) {
logD(RFX_LOG_TAG, "handleSetupDataRequest with clientId: %d, with token: %d",
request->getClientId(), request->getToken());
- //checkMccMnc();
+
if (request->getClientId() > 0) {
RpDataController::mDcTracker.requestNetwork(request);
} else {
@@ -523,6 +522,7 @@
result = ss.isInService(ss.getRilDataRegState());
logD(RFX_LOG_TAG, "RpDataController::isAttached, with result: %s", RpDataUtils::b2s(result).c_str());
+
if (!result) {
sp<RfxMessage> Req = RfxMessage::obtainRequest(m_slot_id,
RADIO_TECH_GROUP_GSM, RIL_REQUEST_DATA_REGISTRATION_STATE);
@@ -537,26 +537,3 @@
RpDataController::sendToGsm(request);;
}
-void RpDataController::checkMccMnc()
-{
- logD(RFX_LOG_TAG, "checkMccMnc");
- String8 mccmnc;
- int count = 0;
- char mccmncvalue[32]={0};
- String8 mccMncKey("");
- mccmnc = getStatusManager(0)->getString8Value(RFX_STATUS_KEY_GSM_OPERATOR_NUMERIC, String8(""));//just support slot 0
- logD(RFX_LOG_TAG, "mccmnc:%s",mccmnc.string());
- while(mccmnc.isEmpty() && (count < 10))
- {
- RpApnController *apnController = (RpApnController *)findController(RFX_OBJ_CLASS_INFO(RpApnController));
- apnController->reloadApnDBPub();
- mccmnc = getStatusManager(0)->getString8Value(RFX_STATUS_KEY_GSM_OPERATOR_NUMERIC, String8(""));
- if (mccmnc.isEmpty())
- {
- sleep(1);
- count++;
- }
- }
- logD(RFX_LOG_TAG, "count:%d,mccmnc:%s",count,mccmnc.string());
-}
-
diff --git a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.h b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.h
index 5a91d35..d270e08 100755
--- a/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.h
+++ b/src/telephonyware/3.0/libvendor-ril/mtk-rilproxy/telephony/data/RpDataController.h
@@ -73,7 +73,6 @@
bool isAttached();
void setApnReady(bool ready);
int getApnReady(void);
- void checkMccMnc();
// Override
protected: