[Feature][T8TSK-304] merge mtk official patch 5th AP patch release
--bsp,kernel part

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: I178a62705346db5188af3159e31f660d27c6df35
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/fsm/ccci_fsm.c b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/fsm/ccci_fsm.c
index 26b9810..c5a5c51 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/fsm/ccci_fsm.c
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/fsm/ccci_fsm.c
@@ -40,13 +40,13 @@
 
 static int needforcestop;
 static bool sForceWakeup;
-/*jb.qi change for medmcu sleep fail on 20230418 start*/
+
 int ccci_fsm_get_md_force_stop_state(void)
 {
        return needforcestop;
 }
 EXPORT_SYMBOL_GPL(ccci_fsm_get_md_force_stop_state);
-/*jb.qi change for medmcu sleep fail on 20230418 end*/
+
 int force_md_stop(struct ccci_fsm_monitor *monitor_ctl)
 {
 	int ret = -1;
@@ -458,7 +458,7 @@
 	ctl->curr_state = CCCI_FSM_GATED;
 	fsm_broadcast_state(ctl, GATED);
 	fsm_finish_command(ctl, cmd, 1);
-	needforcestop = 0;//jb.qi change for medmcu sleep fail on 20230418
+	needforcestop = 0;
 }
 
 static void fsm_routine_wdt(struct ccci_fsm_ctl *ctl,
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.c b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.c
index 3f638f1..c8df8aa 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.c
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.c
@@ -65,6 +65,7 @@
 	0 * 1024, 0 * 1024, 0 * 1024, 0 * 1024, 0 * 1024, 0 * 1024,
 	0 * 1024, 0 * 1024,
 };
+
 static void md_ccif_dump(unsigned char *title, unsigned char hif_id)
 {
 	int idx;
@@ -201,7 +202,7 @@
 		i += 4;
 	}
 
-	if (test_and_clear_bit((D2H_SRAM), &md_ctrl->wakeup_ch)) { //jb.qi change for abnormal resume on 20230328
+	if (test_and_clear_bit((D2H_SRAM), &md_ctrl->wakeup_ch)) {
 		CCCI_NOTICE_LOG(md_ctrl->md_id, TAG,
 			"CCIF_MD wakeup source:(SRX_IDX/%d)(%u)\n",
 			ccci_h->channel, md_ctrl->wakeup_count);
@@ -373,15 +374,13 @@
 		}
 		ccci_h = (struct ccci_header *)skb->data;
 
-		if (test_and_clear_bit(queue->index, &md_ctrl->wakeup_ch)) { //jb.qi change for abnormal resume on 20230328
+		if (test_and_clear_bit(queue->index, &md_ctrl->wakeup_ch)) {
 			CCCI_NOTICE_LOG(md_ctrl->md_id, TAG,
 				"CCIF_MD wakeup source:(%d/%d/%x)(%u)\n",
 				queue->index, ccci_h->channel,
 				ccci_h->reserved, md_ctrl->wakeup_count);
-			/*jb.qi change for abnormal resume start on 20230328*/
 			if (ccci_h->channel == CCCI_FS_RX)
 				ccci_h->data[0] |= CCCI_FS_AP_CCCI_WAKEUP;
-			/*jb.qi change for abnormal resume end on 20230328*/
 		}
 
 		ccci_hdr = *ccci_h;
@@ -714,7 +713,7 @@
 	if (md_ctrl->channel_id & (1 << AP_MD_CCB_WAKEUP)) {
 		clear_bit(AP_MD_CCB_WAKEUP, &md_ctrl->channel_id);
 		CCCI_DEBUG_LOG(md_ctrl->md_id, TAG, "CCB wakeup\n");
-		if (test_and_clear_bit(AP_MD_CCB_WAKEUP, &md_ctrl->wakeup_ch)) { //jb.qi change for abnormal resume on 20230328
+		if (test_and_clear_bit(AP_MD_CCB_WAKEUP, &md_ctrl->wakeup_ch)) {
 			CCCI_NOTICE_LOG(md_ctrl->md_id, TAG,
 			"CCIF_MD wakeup source:(CCB)(%u)\n",
 			md_ctrl->wakeup_count);
@@ -1259,7 +1258,7 @@
 	md_ctrl->md_id = md_id;
 	md_ctrl->hif_id = hif_id;
 	atomic_set(&md_ctrl->reset_on_going, 1);
-	md_ctrl->wakeup_ch = 0; //jb.qi change for abnormal resume on 20230328
+	md_ctrl->wakeup_ch = 0;
 	ccci_reset_seq_num(&md_ctrl->traffic_info);
 
 	/*init queue */
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.h b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.h
index 29b2286..90b8bfc 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.h
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_ccif.h
@@ -21,11 +21,11 @@
 #else
 #define QUEUE_NUM   8
 #endif
-/*jb.qi change for abnormal resume start on 20230328*/
+
 /* speciall for user: ccci_fsd data[0] */
 #define CCCI_FS_AP_CCCI_WAKEUP (0x40000000)
 #define CCCI_FS_REQ_SEND_AGAIN 0x80000000
-/*jb.qi change for abnormal resume end on 20230328*/
+
 /*#define FLOW_CTRL_ENABLE*/
 #define FLOW_CTRL_HEAD		0x464C4F57	/*FLOW*/
 #define FLOW_CTRL_TAIL		0x4354524C	/*CTRL*/
@@ -95,7 +95,7 @@
 	struct timer_list bus_timeout_timer;
 	void __iomem *ccif_ap_base;
 	void __iomem *ccif_md_base;
-	unsigned long wakeup_ch; //jb.qi change for abnormal resume on 20230328
+	unsigned long wakeup_ch;
 	unsigned int wakeup_count;
 
 	struct work_struct wdt_work;
@@ -233,8 +233,8 @@
 {
 	struct md_ccif_ctrl *md_ctrl =
 		(struct md_ccif_ctrl *)ccci_hif_get_by_id(hif_id);
-	unsigned int ccif_ch = 0; //jb.qi change for abnormal resume on 20230328
-	/*jb.qi change for abnormal resume start on 20230328 */
+	unsigned int ccif_ch = 0;
+
 	if (md_ctrl) {
 		ccif_ch = ccif_read32(md_ctrl->ccif_ap_base, APCCIF_RCHNUM);
 		pr_notice("[ccci1/cif] CCIF wakeup channel: 0x%x\n", ccif_ch);
@@ -244,7 +244,6 @@
 		}
 		return value;
 	}
-	/*jb.qi change for abnormal resume end on 20230328 */
 	else
 		return -1;
 }
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_dpmaif.c b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_dpmaif.c
index a0e9fa6..dc65976 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_dpmaif.c
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/hif/ccci_hif_dpmaif.c
@@ -355,7 +355,7 @@
 
 	}
 }
-
+//xy.he [Bugfix][API-1384] add debug patch for command ping fail (tx_busy) -- start on Nov 25 2023 
 void* getDRBtableAddress(int qid)
 {
 	struct dpmaif_tx_queue *txq;
@@ -366,7 +366,7 @@
 	return NULL;
 }
 EXPORT_SYMBOL_GPL(getDRBtableAddress);
-
+//xy.he [Bugfix][API-1384] add debug patch for command ping fail (tx_busy) -- end on Nov 25 2023
 static void dpmaif_dump_txq_remain(struct hif_dpmaif_ctrl *hif_ctrl,
 	unsigned int qno, int dump_multi)
 {
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/inc/ccci_fsm.h b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/inc/ccci_fsm.h
index 59656ed..70dc76a 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/inc/ccci_fsm.h
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/inc/ccci_fsm.h
@@ -21,6 +21,6 @@
 
 extern void mdee_set_ex_time_str(unsigned char md_id, unsigned int type,
 	char *str);
-int ccci_fsm_get_md_force_stop_state(void); //jb.qi change for medmcu sleep fail on 20230418
+int ccci_fsm_get_md_force_stop_state(void);
 #endif /* __CCCI_FSM_H__ */
 
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6880/modem_secure_base.h b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6880/modem_secure_base.h
index 4e28fa7..0f66f48 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6880/modem_secure_base.h
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6880/modem_secure_base.h
@@ -38,9 +38,8 @@
 #define mdreg_write32(reg_id, value)								\
 	{																\
 		struct arm_smccc_res res;									\
-		arm_smccc_smc(MTK_SIP_KERNEL_CCCI_CONTROL, MD_POWER_CONFIG,	\
-				MD_DBGSYS_REG_DUMP,									\
-				reg_id, value, 0, 0, 0, &res);						\
+		arm_smccc_smc(MTK_SIP_KERNEL_CCCI_CONTROL, MD_DBGSYS_REG_DUMP,	\
+				reg_id, value, 0, 0, 0, 0, &res);						\
 	}
 
 #endif				/* __MODEM_SECURE_BASE_H__ */
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6890/modem_secure_base.h b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6890/modem_secure_base.h
index 19f0182..4897b56 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6890/modem_secure_base.h
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/eccci/mt6890/modem_secure_base.h
@@ -39,9 +39,8 @@
 #define mdreg_write32(reg_id, value)								\
 	{																\
 		struct arm_smccc_res res;									\
-		arm_smccc_smc(MTK_SIP_KERNEL_CCCI_CONTROL, MD_POWER_CONFIG,	\
-				MD_DBGSYS_REG_DUMP,									\
-				reg_id, value, 0, 0, 0, &res);						\
+		arm_smccc_smc(MTK_SIP_KERNEL_CCCI_CONTROL, MD_DBGSYS_REG_DUMP,	\
+				reg_id, value, 0, 0, 0, 0, &res);						\
 	}
 
 #endif				/* __MODEM_SECURE_BASE_H__ */
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/lpm/modules/debug/mt6880/mtk_logger.c b/src/kernel/linux/v4.19/drivers/misc/mediatek/lpm/modules/debug/mt6880/mtk_logger.c
index 0e2fd79..5fb0294 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/lpm/modules/debug/mt6880/mtk_logger.c
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/lpm/modules/debug/mt6880/mtk_logger.c
@@ -834,10 +834,6 @@
 					"MCUSYSOFF", NULL);
 		mtk_logger_help.prev = mtk_logger_help.cur;
 	}
-	/*
-   	else
-		pr_info("[name:spm&][SPM] MCUSYSOFF Didn't enter low power scenario\n");
-	*/
 
 	timer->fired = info->fired;
 	return 0;
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/Makefile b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/Makefile
index e20c3c2..e525ad2 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/Makefile
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/Makefile
@@ -28,7 +28,7 @@
 # include mtk_spm_resource_req
 ccflags-y += -I$(srctree)/drivers/misc/mediatek/base/power/include/
 
-# include ccci_fsm.h jb.qi change for medmcu sleep fail on 202304018
+# include ccci_fsm.h
 ccflags-y += -I$(srctree)/drivers/misc/mediatek/eccci/inc
 
 #ifeq ($(CONFIG_MTK_ENG_BUILD),y)
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/medmcu_helper.h b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/medmcu_helper.h
index 2fda41b..ee46f48 100644
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/medmcu_helper.h
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/medmcu_helper.h
@@ -88,8 +88,8 @@
 	RESET_TYPE_CMD = 2,
 	RESET_TYPE_TIMEOUT = 3,
 	RESET_TYPE_MD_EXCEP = 4,
-	RESET_TYPE_MD_FORCE_STOP = 5, //jb.qi change for medmcu sleep fail on 20230418
-	RESET_TYPE_RESUME = 6, //jb.qi change for medmcu sleep fail on 20230418
+	RESET_TYPE_MD_FORCE_STOP = 5,
+	RESET_TYPE_RESUME = 6,
 };
 
 struct scp_regs {
diff --git a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_helper.c b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_helper.c
old mode 100755
new mode 100644
index 892dc0f..a6275e2
--- a/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_helper.c
+++ b/src/kernel/linux/v4.19/drivers/misc/mediatek/medmcu/rv33/v02/medmcu_helper.c
@@ -30,7 +30,7 @@
 #include <mt-plat/sync_write.h>
 //#include <mt-plat/aee.h>
 #include <linux/delay.h>
-#include <linux/pm_wakeup.h> //jb.qi change for medmcu sleep fail on 20230418
+#include <linux/pm_wakeup.h>
 #include <linux/syscore_ops.h>
 #include "medmcu_helper.h"
 #include "medmcu_ipi_pin.h"
@@ -39,15 +39,17 @@
 #include "medmcu_excep.h"
 #include "medmcu_scpctl.h"
 #include "medmcu_dvfs.h"
-#include "ccci_fsm.h" //jb.qi change for medmcu sleep fail on 20230418
+#include "ccci_fsm.h"
+
 void __iomem *medhw_base;
 EXPORT_SYMBOL_GPL(medhw_base);
 
 #define MEDHW_BASE           medhw_base
 #define MEDHW_INT_MNG_BASE          (MEDHW_BASE + 0x3000)
-#define MEDHW_INT_EXCEP_W1C         (MEDHW_INT_MNG_BASE + 0x00) //jb.qi change for medmcu sleep fail on 20230418
+#define MEDHW_INT_EXCEP_W1C         (MEDHW_INT_MNG_BASE + 0x00)
 #define MEDHW_INT_EXCEP_SET         (MEDHW_INT_MNG_BASE + 0x08)
-#define MEDHW_INT_NOTIF_W1C         (MEDHW_INT_MNG_BASE + 0x20) //jb.qi change for medmcu sleep fail on 20230418
+#define MEDHW_INT_NOTIF_W1C         (MEDHW_INT_MNG_BASE + 0x20)
+
 void __iomem *fe_base;
 #define FE_BASE           fe_base
 
@@ -230,7 +232,8 @@
 static unsigned int scp_timeout_times;
 #endif
 static struct scp_work_struct scp_A_notify_work;
-static unsigned int g_ignore_stop_ipi_flag = 0; //jb.qi change for medmcu sleep fail on 20230418
+static unsigned int g_ignore_stop_ipi_flag = 0;
+
 //represent the suspend response from medmcu, 0: no response, 1: idle, -1: can't suspend
 atomic_t medmcu_suspend_response;
 //represent the medmcu is ready for suspend query or not
@@ -247,10 +250,10 @@
 
 char *core_ids[SCP_CORE_TOTAL] = {"SCP A"};
 DEFINE_SPINLOCK(scp_awake_spinlock);
-DEFINE_SPINLOCK(medmcu_resume_spinlock);//jb.qi change for medmcu sleep fail on 20230418
+DEFINE_SPINLOCK(medmcu_resume_spinlock);
 /* set flag after driver initial done */
 static bool driver_init_done;
-static struct wakeup_source *medmcu_dl_wakelock;//jb.qi change for medmcu sleep fail on 20230418
+static struct wakeup_source *medmcu_dl_wakelock;
 
 struct scp_ipi_irq {
 	const char *name;
@@ -281,7 +284,7 @@
 	}
 	return 0;
 }
-/*jb.qi change for medmcu sleep fail on 20230418 start*/
+
 static void medmcu_set_ignore_stop_ipi_flag(unsigned int flag)
 {
 	g_ignore_stop_ipi_flag = flag;
@@ -291,7 +294,6 @@
 {
 	return (g_ignore_stop_ipi_flag == 1);
 }
-/*jb.qi change for medmcu sleep fail on 20230418 end*/
 
 void fdma_init(struct net_device *dev)
 {
@@ -438,7 +440,7 @@
 	//Enable DMA check WDONE bit by 0x15104204[28]=1
 	//Disable 2-byte offset by 0x15104204[31]=0
 	//Disable TX_DMA writing back DDONE into TXD: 0x15104204[6]=0
-	reg_write(MDMA_GLO_CFG, 0x10404825);//jb.qi change for medmcu sleep fail on 20230803
+	reg_write(MDMA_GLO_CFG, 0x10404825);
 }
 
 int mdma_init(struct net_device *dev, struct MDMA_END_DEVICE *ei_local)
@@ -772,14 +774,12 @@
 			if (!is_scp_ready(SCP_A_ID)) {
 				pr_notice("[MEDMCU] %s(): scp_extern_notify SCP_EVENT_STOP_ACK\n", __func__);
 				scp_extern_notify(SCP_EVENT_STOP_ACK);
-			/*jb.qi change for medmcu sleep fail on 20230417 start*/
 			} else if (medmcu_ignore_stop_ipi()) {
 				medmcu_set_ignore_stop_ipi_flag(0);
 				pr_notice("[MEDMCU] %s(): scp_extern_notify SCP_EVENT_STOP_ACK\n", __func__);
 				scp_extern_notify(SCP_EVENT_STOP_ACK);
 			} else
 				handle_dpmaif_stop();
-			/*jb.qi change for medmcu sleep fail on 20230417 start*/
 			break;
 		case CCCI_DPMAIF_EVENT_READY:
 			if (!is_scp_ready(SCP_A_ID)) {
@@ -876,7 +876,7 @@
 	unsigned long spin_flags;
 	struct scp_work_struct *sws =
 		container_of(ws, struct scp_work_struct, work);
-	unsigned int scp_notify_flag = sws->flags; //jb.qi change for medmcu sleep fail on20230417
+	unsigned int scp_notify_flag = sws->flags;
 
 
 	if (scp_notify_flag) {
@@ -897,13 +897,13 @@
 			, SCP_EVENT_READY, NULL);
 		mutex_unlock(&scp_A_notify_mutex);
 		//for resume medmcu, need dpamif ready event.
-		spin_lock_irqsave(&medmcu_resume_spinlock, spin_flags); //jb.qi change for medmcu sleep fail on20230417
+		spin_lock_irqsave(&medmcu_resume_spinlock, spin_flags);
 		if (atomic_read(&medmcu_resume_need_dpmaif_ready) == 1) {
 			//ask ccci to send dpmaif ready, since dpmaif hw/sw is still alive after resume
 			ccci_dpmaif_resend_ready();
 			atomic_set(&medmcu_resume_need_dpmaif_ready, 0);
 		}
-		spin_unlock_irqrestore(&medmcu_resume_spinlock, spin_flags); //jb.qi change for medmcu sleep fail on20230417
+		spin_unlock_irqrestore(&medmcu_resume_spinlock, spin_flags);
 	}
 
 	/* register scp dvfs*/
@@ -1102,9 +1102,9 @@
 static int med_stop_ack_ipi_handler(unsigned int id, void *prdata, void *data,
 				    unsigned int len)
 {
-	int md_force_stop;//jb.qi change for medmcu sleep fail on 20230418
+	int md_force_stop;
 	scp_reset_counts = 9999;
-	/*jb.qi change for medmcu sleep fail on 20230418 start*/
+
 	md_force_stop = ccci_fsm_get_md_force_stop_state();
 
 	if (md_force_stop == 1) {
@@ -1115,7 +1115,7 @@
 		   scp_reset_by_md_excep = 1;
 		   scp_send_reset_wq(RESET_TYPE_MD_EXCEP);
 	}
-	/*jb.qi change for medmcu sleep fail on 20230418 end*/
+
 	return 0;
 }
 
@@ -2211,7 +2211,6 @@
 
 /******************************************************************************
  *****************************************************************************/
-/*jb.qi change for medmcu sleep fail on 20230418 start */
 void print_med_registers(void)
 {
 	uint32_t medhw_int_exp_w1c, medhw_int_notif_w1c;
@@ -2221,7 +2220,7 @@
 	pr_notice("MEDHW_INT_EXCEP_W1C = 0x%08x\n", medhw_int_exp_w1c);
 	pr_notice("MEDHW_INT_NOTIFY_W1C = 0x%08x\n", medhw_int_notif_w1c);
 }
-/*jb.qi change for medmcu sleep fail on 20230418 end */
+
 void print_clk_registers(void)
 {
 	void __iomem *cfg = scpreg.cfg;
@@ -2264,7 +2263,7 @@
 
 	while (timeout--) {
 		core0_halt = readl(R_CORE0_STATUS) & B_CORE_HALT;
-		if (core0_halt) { //jb.qi change for medmcu sleep fail on 20230418
+		if (core0_halt) {
 			/* SCP stops any activities
 			 * and parks at wfi
 			 */
@@ -2311,15 +2310,12 @@
 		 * reset type scp WDT, CMD or MD_EXCEP
 		 * make sure scp is in idle state
 		 */
-		/*jb.qi change for medmcu sleep fail on 20230418 start*/
 		if (scp_reset_type == RESET_TYPE_WDT)
 			medmcu_set_ignore_stop_ipi_flag(1);
-		/*jb.qi change for medmcu sleep fail on 20230418 end*/
 		scp_reset_wait_timeout();
 		writel(1, R_CORE0_SW_RSTN_SET);
 		writel(1, R_CORE1_SW_RSTN_SET);
 		writel(CORE_REBOOT_OK, SCP_GPR_CORE0_REBOOT);
-		writel(CORE_REBOOT_OK, SCP_GPR_CORE1_REBOOT);
 		dsb(SY); /* may take lot of time */
 		pr_notice("[MEDMCU] rstn core0 %x core1 %x\n",
 		readl(R_CORE0_SW_RSTN_SET), readl(R_CORE1_SW_RSTN_SET));
@@ -2334,35 +2330,32 @@
 
 	/* start scp */
 	pr_notice("[MEDMCU] start scp\n");
-	/*jb.qi change for medmcu sleep fail on 20230418 start*/
+
 	if (scp_reset_type == RESET_TYPE_RESUME) {
 		pr_notice("[MEDMCU] get spinlock for atomic medmcu resume rstn sequence\n");
 		spin_lock_irqsave(&medmcu_resume_spinlock, spin_flags);
 	}
-	/*jb.qi change for medmcu sleep fail on 20230418 end*/
 	writel(1, R_CORE0_SW_RSTN_CLR);
 	dsb(SY); /* may take lot of time */
 
 	atomic_set(&medmcu_resume_need_dpmaif_ready, 0);
 
 	if (scp_reset_type == RESET_TYPE_MD_EXCEP) {
-		/*notify scp functions stop*/
+		/* notify scp functions stop */
 		pr_notice("[MEDMCU] %s(): scp_extern_notify SCP_EVENT_STOP_ACK\n", __func__);
 		scp_extern_notify(SCP_EVENT_STOP_ACK);
 	} else if (scp_reset_type == RESET_TYPE_WDT) {
-		/*notify scp functions stop*/
+		/* notify scp functions stop */
 		pr_notice("[MEDMCU] %s(): scp_extern_notify SCP_EVENT_STOP_BY_WDT\n", __func__);
 		scp_extern_notify(SCP_EVENT_STOP_BY_WDT);
 	} else if (scp_reset_type == RESET_TYPE_RESUME) {
-		//wait scp ready and ask for dpmaif_ready_event
+		/* wait scp ready and ask for dpmaif_ready_event */
 		atomic_set(&medmcu_resume_need_dpmaif_ready, 1);
-		/*jb.qi change for medmcu sleep fail on 20230418 start*/
 		spin_unlock_irqrestore(&medmcu_resume_spinlock, spin_flags);
 		pr_notice("[MEDMCU] %s(): need dpmaif ready flag set in RESET_TYPE_RESUME\n", __func__);
-		/*jb.qi change for medmcu sleep fail on 20230418 end*/
-
 	}
-	pr_notice("[MEDMCU] rstn core0 %x\n", readl(R_CORE0_SW_RSTN_CLR)); //jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("[MEDMCU] rstn core0 %x\n", readl(R_CORE0_SW_RSTN_CLR));
+
 #if SCP_BOOT_TIME_OUT_MONITOR
 	mod_timer(&scp_ready_timer[SCP_A_ID], jiffies + SCP_READY_TIMEOUT);
 #endif
@@ -2399,13 +2392,13 @@
 	unsigned int scp_reset_type = sws->flags;
 
 	pr_notice("[MEDMCU] %s(): remain %d times\n", __func__, scp_reset_counts);
-	/*jb.qi change for medmcu sleep fail on 20230418 start */
+
 	if (scp_reset_type == RESET_TYPE_MD_FORCE_STOP) {
 		scp_extern_notify(SCP_EVENT_STOP_ACK);
 		return;
 	}
-	/*jb.qi change for medmcu sleep fail on 20230418 end*/
-	/*notify scp functions stop*/
+
+	/* notify scp functions stop */
 	pr_debug("[MEDMCU] %s(): scp_extern_notify SCP_EVENT_STOP\n", __func__);
 	scp_extern_notify(SCP_EVENT_STOP);
 	/*
@@ -2423,7 +2416,7 @@
 	}
 
 	/* print_clk and scp_aed before pll enable to keep ori CLK_SEL */
-	print_med_registers();//jb.qi change for medmcu sleep fail on 20230803
+	print_med_registers();
 	print_clk_registers();
 	/*workqueue for scp ee, scp reset by cmd will not trigger scp ee*/
 	if (scp_reset_by_cmd == 0 && scp_reset_by_md_excep == 0) {
@@ -2562,13 +2555,13 @@
 	struct net_device *netdev;
 
 	struct MDMA_END_DEVICE *ei_local = &mdma_device;
-	/*jb.qi change for medmcu sleep fail on20230418 start*/
+
 	medmcu_dl_wakelock = wakeup_source_register(NULL, "medmcu_dl_wakelock");
 	if (!medmcu_dl_wakelock) {
 		pr_err("%s %d: init dl wakeup source fail!", __func__, __LINE__);
 		return -1;
 	}
-	/*jb.qi change for medmcu sleep fail on20230418 end*/
+
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	scpreg.sram = devm_ioremap_resource(dev, res);
 	if (IS_ERR((void const *) scpreg.sram)) {
@@ -2749,7 +2742,7 @@
 int medmcu_pm_suspend(struct device *device)
 {
 	if (sync_medmcu_can_suspend() == -1) {
-		__pm_wakeup_event(medmcu_dl_wakelock, jiffies_to_msecs(HZ)); //jb.qi change for medmcu sleep fail on 20230418
+		__pm_wakeup_event(medmcu_dl_wakelock, jiffies_to_msecs(HZ));
 		return -1;
 	}
 	writel(V_DISABLE_WDT, R_CORE0_WDT_CFG);
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 b933751..e240df7 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
@@ -799,13 +799,14 @@
 extern phys_addr_t gMedmcuDrb0PhyBase;
 extern phys_addr_t gMedmcuDrb1PhyBase;
 
-extern void* getDRBtableAddress(int qid);
+extern void* getDRBtableAddress(int qid);  //xy.he [Bugfix][API-1384] add debug patch for command ping fail (tx_busy) -- on Nov 25 2023 
 
 int print_medhw_dram(struct seq_file *seq) {
 	u32 i;
 	u32 *p;
 	char buf[100];
-	pr_notice("Dump TX_DESC...\n"); //jb.qi change for medmcu sleep fail on 20230418
+
+	pr_notice("Dump TX_DESC...\n");
 	p = (u32 *)medmcu_tx_desc_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<TX_DESC DUMP>>\n");
@@ -829,7 +830,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump RX_DESC...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump RX_DESC...\n");
 	p = (u32 *)medmcu_rx_desc_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<RX_DESC DUMP>>\n");
@@ -853,7 +854,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump HNAT_INFO...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump HNAT_INFO...\n");
 	p = (u32 *)medmcu_hnat_info_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<HNAT_INFO DUMP>>\n");
@@ -877,7 +878,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump HNAT_INFO_HOST...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump HNAT_INFO_HOST...\n");
 	p = (u32 *)medmcu_hnat_info_host_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<HNAT_INFO_HOST DUMP>>\n");
@@ -901,7 +902,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump PIT_NAT...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump PIT_NAT...\n");
 	p = (u32 *)medmcu_pit_nat_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<PIT_NAT DUMP>>\n");
@@ -925,7 +926,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump PIT...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump PIT...\n");
 	p = (u32 *)medmcu_pit_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<PIT DUMP>>\n");
@@ -949,7 +950,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump DRB0...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump DRB0...\n");
 	p = (u32 *)medmcu_drb0_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<DRB0 DUMP>>\n");
@@ -973,7 +974,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump DRB1...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump DRB1...\n");
 	p = (u32 *)medmcu_drb1_base_virt;
 	if (seq != NULL) {
 		seq_puts(seq, "        <<DRB1 DUMP>>\n");
@@ -996,7 +997,7 @@
 	} else {
 		pr_notice("+-----------------------------------------------+\n");
 	}
-	
+    //xy.he [Bugfix][API-1384] add debug patch for command ping fail (tx_busy) -- start on Nov 25 2023 
 	pr_notice("Dump DRB2...\n");
 	p = (u32 *)getDRBtableAddress(2);
 	if (seq != NULL) {
@@ -1048,7 +1049,7 @@
 	} else {
 		pr_notice("+-----------------------------------------------+\n");
 	}
-
+    //xy.he [Bugfix][API-1384] add debug patch for command ping fail (tx_busy) -- end on Nov 25 2023 
 	medhw_dram_logged = 1;//jb.qi change for medmcu sleep fail on 20230418
 	pr_notice("[MEDHW] read dram end\n");//jb.qi change for medmcu sleep fail on 20230418
 
@@ -1087,8 +1088,8 @@
 
 	unsigned char *medhw_bat_sw_map_buf = (unsigned char *)(SCP_TCM + bat_addr);
 	unsigned char *medhw_fbat_sw_map_buf = (unsigned char *)(SCP_TCM + fbat_addr);
-	
-	pr_notice("Dump MEDHW_INT_MNG...\n");//jb.qi change for medmcu sleep fail on 20230418
+
+	pr_notice("Dump MEDHW_INT_MNG...\n");
 	if (seq != NULL) {
 		seq_puts(seq, "       <<MEDHW_INT_MNG CR DUMP>>\n");
 	} else {
@@ -1111,7 +1112,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump MEDHW_BMP...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump MEDHW_BMP...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<MEDHW_BMP CR DUMP>>\n");
 	} else {
@@ -1134,7 +1135,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump MEDHW_SSR0...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump MEDHW_SSR0...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<MEDHW_SSR0 CR DUMP>>\n");
 	} else {
@@ -1157,7 +1158,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump MEDHW_SSR1...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump MEDHW_SSR1...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<MEDHW_SSR1 CR DUMP>>\n");
 	} else {
@@ -1180,7 +1181,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump MEDHW_SSR2...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump MEDHW_SSR2...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<MEDHW_SSR2 CR DUMP>>\n");
 	} else {
@@ -1203,7 +1204,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump DPMAIF_INT...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump DPMAIF_INT...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<DPMAIF_INT CR DUMP>>\n");
 	} else {
@@ -1226,7 +1227,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump DPMAIF_DL...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump DPMAIF_DL...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<DPMAIF_DL CR DUMP>>\n");
 	} else {
@@ -1249,7 +1250,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump DPMAIF_UL...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump DPMAIF_UL...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<DPMAIF_UL CR DUMP>>\n");
 	} else {
@@ -1343,7 +1344,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump MDMA_RX_DESC...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump MDMA_RX_DESC...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<MDMA_RX_DESC CR DUMP>>\n");
 	} else {
@@ -1366,7 +1367,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump MDMA_TXRX_DESC_INFO...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump MDMA_TXRX_DESC_INFO...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<MDMA_TXRX_DESC_INFO CR DUMP>>\n");
 	} else {
@@ -1389,7 +1390,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump FDMA_HNAT_INFO...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump FDMA_HNAT_INFO...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<FDMA_HNAT_INFO CR DUMP>>\n");
 	} else {
@@ -1412,7 +1413,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump FDMA_HNAT_INFO_INFO...\n");//jb.qi change for medmcu sleep fail on 20230418
+	pr_notice("Dump FDMA_HNAT_INFO_INFO...\n");
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<FDMA_HNAT_INFO_INFO CR DUMP>>\n");
 	} else {
@@ -1435,7 +1436,7 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	pr_notice("Dump BAT_SW_MAP...\n");//jb.qi change for medmcu sleep fail on 20230418
+
 	if (!sw_map_flush(false)) {
 		seq_puts(seq, "BAT_SW_MAP flush error\n");
 		return 0;
@@ -1445,6 +1446,7 @@
 		return 0;
 	}
 
+	pr_notice("Dump BAT_SW_MAP...\n");
 	p = (u32 *)medhw_bat_sw_map_buf;
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<BAT_SW_MAP DUMP>>\n");
@@ -1461,7 +1463,8 @@
 			pr_notice("[MEDHW] %s", buf);
 		}
 	}
-	pr_notice("Dump FBAT_SW_MAP...\n");//jb.qi change for medmcu sleep fail on 20230418
+
+	pr_notice("Dump FBAT_SW_MAP...\n");
 	p = (u32 *)medhw_fbat_sw_map_buf;
 	if (seq != NULL) {
 		seq_puts(seq, " 	  <<FBAT_SW_MAP DUMP>>\n");
@@ -1486,22 +1489,21 @@
 		pr_notice("+-----------------------------------------------+\n");
 	}
 
-	medhw_cr_dump_logged = 1;//jb.qi change for medmcu sleep fail on 20230418
-	pr_notice("[MEDHW] read cr_dump end\n");//jb.qi change for medmcu sleep fail on 20230418
+	medhw_cr_dump_logged = 1;
+	pr_notice("[MEDHW] read cr_dump end\n");
 
-	return 0;//jb.qi change for medmcu sleep fail on 20230418
+	return 0;
 }
 
 static int dram_seq_show(struct seq_file *seq, void *v)
 {
-	return print_medhw_dram(seq);//jb.qi change for medmcu sleep fail on 20230418
+    return print_medhw_dram(seq);
 }
 
-
 static int dram_seq_open(struct inode *inode, struct file *file)
 {
 	pr_notice("[MEDHW] read dram start\n");
-	return single_open_size(file, dram_seq_show, NULL, (PAGE_SIZE << 11));//jb.qi change for medmcu sleep fail on 20230418
+	return single_open_size(file, dram_seq_show, NULL, (PAGE_SIZE << 11));
 }
 
 static const struct file_operations dram_fops = {
@@ -1513,15 +1515,13 @@
 
 static int cr_dump_seq_show(struct seq_file *seq, void *v)
 {
-
-	return print_medhw_cr_dump(seq);//jb.qi change for medmcu sleep fail on 20230418
+	return print_medhw_cr_dump(seq);
 }
 
 static int cr_dump_seq_open(struct inode *inode, struct file *file)
 {
-	
 	pr_notice("[MEDHW] read cr_dump start\n");
-	return single_open_size(file, cr_dump_seq_show, NULL, (PAGE_SIZE << 4));//jb.qi change for medmcu sleep fail on 20230418
+	return single_open_size(file, cr_dump_seq_show, NULL, (PAGE_SIZE << 4));
 }
 
 static const struct file_operations cr_dump_fops = {
diff --git a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand/device_slc.c b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand/device_slc.c
index 0963660..b309b34 100755
--- a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand/device_slc.c
+++ b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand/device_slc.c
@@ -297,9 +297,9 @@
 				&slc_endurance, &slc_array_timing),
 		SLC_DRIVE_STRENGTH(0x80, 0x00, 0x01, 0x02, 0x03),
 		&onfi_extend_cmds,
-		CHIP_TIMING_MODE2, //jb.qi change for ubi problem on 20221129
+		CHIP_TIMING_MODE2,
 		&timing_mode[0],
-		sdr_timing_micron_slc //zhengzhou for MT29GZ6A6BPIET-046AAT.112 
+		sdr_timing_micron_slc
 	},
 	/* Winbond */
 	{
diff --git a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.c b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.c
index 81f8755..d038970 100755
--- a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.c
+++ b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.c
@@ -63,6 +63,7 @@
 		}
 		nand->performance->read_data_time = (int)time_cons;
 #endif
+
 		ret_max = max_t(int, ret_max, ops[i].status);
 		ret_min = min_t(int, ret_min, ops[i].status);
 #if NANDX_PAGE_PERFORMANCE_TRACE
@@ -160,7 +161,6 @@
 	return ret;
 }
 
-/*jb.qi change for ubi problem on 20221129 start*/
 static inline void nand_bit_invert(u8 *buf, int len)
 {
 	int i;
@@ -259,7 +259,6 @@
 restore_ecc:
 	nandx_ioctl(NFI_CTRL_ECC, &nfi_ecc_en_old);
 }
-/*jb.qi change for ubi problem on 20221129 end*/
 
 static int nand_chip_erase_block(struct nand_chip *chip,
 				 struct nand_ops *ops,
@@ -276,12 +275,11 @@
 
 		nand->addressing(nand, &row, &col);
 
-		/*jb.qi change for ubi problem on 20221129 start*/
 		/* void type to avoid mis-judging this block as bad in ubi,
 		 * nand block erase operation can continue
 		 */
 		nand_chip_erase_prepare(chip, row, col);
-		/*jb.qi change for ubi problem on 20221129 end*/
+
 		ops[i].status = nand->write_enable(nand);
 		if (ops[i].status) {
 			pr_debug("Write Protect at %x!\n", row);
@@ -435,6 +433,6 @@
 		nand_spi_exit(chip->nand);
 	else
 		nand_exit(chip->nand);
-	mem_free(chip->raw_buf); //jb.qi change for ubi problem on 20221129
+	mem_free(chip->raw_buf);
 	mem_free(chip);
 }
diff --git a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.h b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.h
index 997fad0..cdcfaa3 100755
--- a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.h
+++ b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nand_chip.h
@@ -75,7 +75,8 @@
 	u32 fdm_reg_size;
 
 	void *nand;
-	u8 *raw_buf; //jb.qi add for ubi problem on 20221129
+	u8 *raw_buf;
+
 	int (*read_page)(struct nand_chip *chip, struct nand_ops *ops,
 			 int count);
 	int (*write_page)(struct nand_chip *chip, struct nand_ops *ops,
diff --git a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nfi/nfi_base.c b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nfi/nfi_base.c
index e6528f5..69e499d 100755
--- a/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nfi/nfi_base.c
+++ b/src/kernel/linux/v4.19/drivers/mtd/nandx/core/nfi/nfi_base.c
@@ -558,7 +558,7 @@
 	case NFI_CTRL_BAD_MARK_SWAP:
 		nb->bad_mark_swap_en = *(bool *)args;
 		break;
-	/*jb.qi change for ubi problem on 20221129 start*/
+
 	case NFI_CTRL_BAD_MARK_SWAP_GET_SWAP_EN:
 		*(bool *)args = nb->bad_mark_swap_en;
 		break;
@@ -566,7 +566,7 @@
 	case NFI_CTRL_ECC_GET_ECC_EN:
 		*(bool *)args = nb->ecc_en;
 		break;
-	/*jb.qi change for ubi problem on 20221129 end*/
+
 #ifdef NANDX_TEST_BUF_ALIGN
 	case NFI_ADDR_ALIGNMENT_EN:
 		if (*(u8 *)args)
@@ -1146,15 +1146,14 @@
 	if (read) {
 		is_empty = nb->is_page_empty(nb, data, fdm, nb->rw_sectors);
 		if (is_empty) {
- 			nb->read_status = 0;
+			nb->read_status = 0;
 
 			/* try to memset 0xff for empty page */
 			if (data)
 				memset(data, 0xff, nb->access_len);
 			if (nb->ecc_en && fdm)
 				memset(fdm, 0xff, nb->nfi.fdm_size * nb->rw_sectors);
-		}/*jb.qi change for ubi1_0 problem on 20220921 end*/
-
+		}
 	}
 
 	/* whether it's reading or writing, we all check if nee swap
@@ -1343,7 +1342,7 @@
 	void *regs = nb->res.nfi_regs;
 	u32 tpoecs, tprecs, tc2r, tw2r, twh, twst, trlt, tstrobe;
 	u32 rate, val;
-	u16 thold; //jb.qi change for ubi problem on 20221129
+	u16 thold;
 	int ret;
 
 	ret = wait_flash_macro_idle(regs);
@@ -1353,13 +1352,14 @@
 	}
 
 	/* turn clock rate into KHZ */
-	rate = div_down(nb->res.clock_1x, 1000);  //jb.qi change for ubi problem on 20221129
-	tpoecs = max(sdr->tALH, sdr->tCLH);    
+	rate = div_down(nb->res.clock_1x, 1000);
+
+	tpoecs = max(sdr->tALH, sdr->tCLH);
 	tpoecs = div_up(tpoecs * rate, 1000000);
 	tpoecs &= 0xf;
 
 	tprecs = max(sdr->tCLS, sdr->tALS);
-	tprecs = div_up(tprecs * rate, 1000000) + 1;  //jb.qi change for ubi problem on 20221129
+	tprecs = div_up(tprecs * rate, 1000000) + 1;
 	tprecs &= 0x3f;
 
 	/* tc2r is in unit of 2T */
@@ -1375,32 +1375,26 @@
 	twh = div_up(twh * rate, 1000000) - 1;
 	twh &= 0xf;
 
-	/*jb.qi change for ubi problem on 20221129 start*/
 	twst = 0;
 	thold = div_down((twh + 1) * 1000000, rate);
 	if (thold < sdr->tWC)
 		twst = sdr->tWC - thold;
 	twst = max((u32)sdr->tWP, twst);
 	twst = div_up(twst * rate, 1000000) - 1;
-	/*jb.qi change for ubi problem on 20221129 end*/
 	twst &= 0xf;
 
-	/*jb.qi change for ubi problem on 20221129 start*/
 	trlt = 0;
 	if (thold < sdr->tRC)
 		trlt = sdr->tRC - thold;
 	trlt = max((u32)sdr->tRP, trlt);
 	trlt = div_up(trlt * rate, 1000000) - 1;
-	/*jb.qi change for ubi problem on 20221129 end*/
 	trlt &= 0xf;
 
-	tstrobe = 0; //jb.qi change for ubi problem on 20221129
+	tstrobe = 0;
 	/* If tREA is bigger than tRP, setup strobe sel here */
-	/*jb.qi change for ubi problem on 20221129 start*/
 	if (div_down((trlt + 1) * 1000000, rate) < sdr->tREA) {
 		tstrobe = div_up(sdr->tREA * rate, 1000000);
 		tstrobe -= trlt + 1;
-	/*jb.qi change for ubi problem on 20221129 end*/
 		val = readl(regs + NFI_DEBUG_CON1);
 		val &= ~STROBE_MASK;
 		val |= tstrobe << STROBE_SHIFT;
@@ -1421,7 +1415,7 @@
 	 * 03:00: trlt, read wait states
 	 */
 	val = ACCTIMING(tpoecs, tprecs, tc2r, tw2r, twh, twst, trlt);
-	pr_debug("NAND acctiming: 0x%x, strobe_sel:0x%x\n", val, tstrobe); //jb.qi change for ubi problem on 20221129
+	pr_debug("NAND acctiming: 0x%x, strobe_sel:0x%x\n", val, tstrobe);
 	writel(val, regs + NFI_ACCCON);
 
 	/* set NAND type */
diff --git a/src/kernel/linux/v4.19/drivers/mtd/nandx/include/internal/nandx_core.h b/src/kernel/linux/v4.19/drivers/mtd/nandx/include/internal/nandx_core.h
index 61d1288..4e45bd7 100755
--- a/src/kernel/linux/v4.19/drivers/mtd/nandx/include/internal/nandx_core.h
+++ b/src/kernel/linux/v4.19/drivers/mtd/nandx/include/internal/nandx_core.h
@@ -67,11 +67,10 @@
 	NFI_CTRL_ECC_DECODE_MODE,
 	NFI_CTRL_ECC_ERRNUM0,
 	NFI_CTRL_ECC_GET_STATUS, /*20*/
-	NFI_CTRL_ECC_GET_ECC_EN, //jb.qi change for ubi problem on 20221129
-
+	NFI_CTRL_ECC_GET_ECC_EN,
 
 	NFI_CTRL_BAD_MARK_SWAP,
-	NFI_CTRL_BAD_MARK_SWAP_GET_SWAP_EN, //jb.qi change for ubi problem on 20221129
+	NFI_CTRL_BAD_MARK_SWAP_GET_SWAP_EN,
 	NFI_CTRL_IOCON,
 
 	SNFI_CTRL_OP_MODE,
diff --git a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_edma.c b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_edma.c
index 86123c0..29d23de 100644
--- a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_edma.c
+++ b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_edma.c
@@ -569,11 +569,10 @@
 	//EDMA_GLO_CFG: TX_WB_DDONE | RX_DMA_EN |
 	//   PDMA_BT_SIZE_16DWORDS | PDMA_DESC_32B_E |
 	//   MULTI_EN | ADMA_RX_BT_SIZE_32DWORDS  RX_2B_OFFSET
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+
 	/* Set EDMA0_GLO_CFG and EDMA1_GLO_CFG [23:16] to 0x80 since CDM FIFO overrun issue */
 	mtk_w32(eth, 0x80801C64, MTK_EDMA0_GLO_CFG);
 	mtk_w32(eth, 0x80801C64, MTK_EDMA1_GLO_CFG);
-	/*jb.qi change for reboot after sleep on 20230417 end*/
 }
 
 void mtk_stop_dma_edma(struct mtk_eth *eth, u32 glo_cfg)
diff --git a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_dbg.c b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
index 3e92205..b0f0f68 100644
--- a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
+++ b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_dbg.c
@@ -695,7 +695,7 @@
 
 	cr_max = 5000 * 4;
 	seq_puts(seq, "       <<FE CR DUMP>>\n");
-	for (i = 0x0; i < cr_max; i = i + 0x10) { //jb.qi change for reboot after sleep on20230417
+	for (i = 0x0; i < cr_max; i = i + 0x10) {
 		seq_printf(seq, "0x%08x : 0x%08x 0x%08x 0x%08x 0x%08x\n", cr_base + i,
 			mtk_r32(eth, i), mtk_r32(eth, i + 4),
 			mtk_r32(eth, i + 8), mtk_r32(eth, i + 0xc));
diff --git a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 709b7c9..42510fa 100755
--- a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -831,10 +831,10 @@
 				  DMA_FROM_DEVICE);
 	if (unlikely(dma_mapping_error(eth->dev, dma_addr)))
 		return -ENOMEM;
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+
 	eth->phy_scratch_head = dma_addr;
 	eth->scratch_head_size = cnt * MTK_QDMA_PAGE_SIZE;
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	memset(eth->scratch_ring, 0x0, sizeof(struct mtk_tx_dma) * cnt);
 	phy_ring_tail = eth->phy_scratch_ring +
 			(sizeof(struct mtk_tx_dma) * (cnt - 1));
@@ -2932,7 +2932,7 @@
 		for (i = 1; i < MTK_MAX_RX_RING_NUM; i++)
 			mtk_rx_clean(eth, &eth->rx_ring[i]);
 	}
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+
 	if (eth->phy_scratch_head) {
 		dma_unmap_single(eth->dev, eth->phy_scratch_head,
 			eth->scratch_head_size,	DMA_FROM_DEVICE);
@@ -2944,7 +2944,7 @@
 		kfree(eth->scratch_head);
 		eth->scratch_head = NULL;
 	}
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	if (eth->hwedmarx) {
 		for (i = 0; i < MTK_MAX_EDMA_RX_RING_NUM; i++) {
 			mtk_rx_clean_edma(eth, &eth->rx_ring_edma0[i]);
@@ -3238,10 +3238,10 @@
 		} else {
 			napi_enable(&eth->rx_napi);
 		}
-		/*jb.qi change for reboot after sleep on 20230417 start*/
+
 		if (eth->hwedmarx)
 			napi_enable_edma(eth);
-		/*jb.qi change for reboot after sleep on 20230417 end*/
+
 		/* enable IRQ Top */
 		mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
 		if (eth->hwrss) {
@@ -3253,7 +3253,7 @@
 			mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
 		}
 
-		if (eth->hwedmarx) //jb.qi change for reboot after sleep on 20230417
+		if (eth->hwedmarx)
 			mtk_rx_irq_enable_edma_all(eth);
 
 #if defined(CONFIG_HW_NAT)
@@ -3301,7 +3301,7 @@
 	struct mtk_mac *mac = netdev_priv(dev);
 	struct mtk_eth *eth = mac->hw;
 
-	pr_info("%s in mac[%d]\n", __func__, mac->id); //jb.qi change for reboot after sleep on 20230417
+	pr_info("%s in mac[%d]\n", __func__, mac->id);
 
 	netif_tx_disable(dev);
 
@@ -3311,11 +3311,11 @@
 	/* only shutdown DMA if this is the last user */
 	if (!refcount_dec_and_test(&eth->dma_refcnt))
 		return 0;
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
 #if defined(CONFIG_HW_NAT)
 	mtk_unregister_fast_path();
 #endif
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	mtk_gdma_config(eth, MTK_GDMA_DROP_ALL);
 
 	/* disable IRQ Top */
@@ -3329,13 +3329,13 @@
 	} else {
 		mtk_rx_irq_disable(eth, MTK_RX_DONE_INT);
 	}
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+
 	if (eth->hwedmarx)
 		mtk_rx_irq_disable_edma_all(eth);
 
 	if (eth->int_ext)
 		disable_irq_nosync(eth->irq[8]);
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	/* disable IRQ Bottom */
 	napi_disable(&eth->tx_napi);
 
@@ -3347,12 +3347,12 @@
 	} else {
 		napi_disable(&eth->rx_napi);
 	}
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+
 	if (eth->hwedmarx) {
 		napi_disable(&eth->rx_napi_edma0);
 		napi_disable(&eth->rx_napi_edma1);
 	}
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
 	mtk_stop_dma(eth, MTK_PDMA_GLO_CFG);
 
@@ -3744,10 +3744,9 @@
 
 static int mtk_hw_deinit(struct mtk_eth *eth)
 {
-	/*jb.qi change for reboot after sleep on 20230417 start*/
 	//if (!test_and_clear_bit(MTK_HW_INIT, &eth->state))
 	//	return 0;
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	if (!MTK_HAS_CAPS(eth->soc->caps, MTK_FPGA_CLK)) {
 		mtk_clk_disable(eth);
 		pm_runtime_put_sync(eth->dev);
@@ -4281,7 +4280,6 @@
 		dev_err(&pdev->dev, "no wo regmap found\n");
 		return PTR_ERR(eth->wo);
 	}
-	/*jb.qi change for reboot after sleep on 20230417 start*/
 	regmap_write(eth->wo, 0x0070, 0x1);
 	regmap_write(eth->wo, 0x0074, 0x1);
 	pr_notice("%s reset wo\n", __func__);
@@ -4301,7 +4299,7 @@
 	}
 	regmap_write(eth->wed2, 0x057c, 0x0);
 	pr_notice("%s reset wed2\n", __func__);
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	if (MTK_HAS_CAPS(eth->soc->caps, MTK_INFRA)) {
 		eth->infra = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
 							"mediatek,infracfg");
@@ -4573,7 +4571,7 @@
 
 	return 0;
 }
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
 int netsys_pm_check_status(struct mtk_eth *eth, u32 idle)
 {
 	u32 val = 0, tmp = 0, cnt = 0, pass = 0;
@@ -4667,7 +4665,7 @@
 void netsys_pm_recovery(struct mtk_eth *eth)
 {
 }
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
 int netsys_pm_suspend(struct device *device)
 {
 	struct platform_device *pdev = to_platform_device(device);
@@ -4677,12 +4675,12 @@
 	pr_notice("ethernet suspend time start = %lx\n", jiffies);
 
 	if (pdev == NULL) {
-		pr_notice("%s pdev == NULL\n", __func__); //jb.qi change for reboot after sleep on 20230417
+		pr_notice("%s pdev == NULL\n", __func__);
 		return -1;
 	}
 
 	eth = platform_get_drvdata(pdev);
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+
 	regmap_write(eth->ethsys, 0x10, 0xb6000000);
 	regmap_write(eth->ethsys, 0x58, 0x20000000);
 	regmap_write(eth->ethsys, 0xf0, 0x007f0000);
@@ -4711,7 +4709,7 @@
 		}
 	}
 	pr_notice("ethernet suspend time phy stop = %lx\n", jiffies);
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 #if 0
 	regmap_update_bits(eth->ethsys, MTK_PPE_TB_CFG,
 			   SCAN_MODE_MASK,
@@ -4726,10 +4724,10 @@
 	if (eth->soc->sgmii_pm)
 		regulator_set_voltage(eth->dvfsrc_vcore_power,
 				      SGMII_VCORE_NON_OPS, INT_MAX);
-	pr_notice("ethernet suspend time set vcore 0.55V = %lx\n", jiffies);//jb.qi change for reboot after sleep on 20230417
+	pr_notice("ethernet suspend time set vcore 0.55V = %lx\n", jiffies);
 
 	mtk_gdma_config(eth, MTK_GDMA_DROP_ALL);
-	pr_notice("ethernet suspend time set GDM ingress pkt drop = %lx\n", jiffies);//jb.qi change for reboot after sleep on 20230417
+	pr_notice("ethernet suspend time set GDM ingress pkt drop = %lx\n", jiffies);
 
 	mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
 	if (eth->hwrss) {
@@ -4744,15 +4742,15 @@
 	if (eth->int_ext)
 		disable_irq_nosync(eth->irq[8]);
 
-	pr_notice("ethernet suspend time disable irq = %lx\n", jiffies);//jb.qi change for reboot after sleep on 20230417
+	pr_notice("ethernet suspend time disable irq = %lx\n", jiffies);
 
 	if (eth->hwedmarx) {
 		mtk_rx_irq_disable_edma_all(eth);
 		mtk_stop_dma_edma(eth, MTK_EDMA0_GLO_CFG);
 		mtk_stop_dma_edma(eth, MTK_EDMA1_GLO_CFG);
 	}
-	pr_notice("ethernet suspend time stop EDMA = %lx\n", jiffies);//jb.qi change for reboot after sleep on 20230417
-	/*jb.qi change for reboot after sleep on 20230417 start*/
+	pr_notice("ethernet suspend time stop EDMA = %lx\n", jiffies);
+
 	//napi_disable(&eth->tx_napi);
 	//napi_disable(&eth->rx_napi);
 	/*disable ADMA*/
@@ -4775,7 +4773,7 @@
 	mtk_clk_disable(eth);
 	pr_notice("ethernet suspend time clk disable = %lx\n", jiffies);
 	pr_notice("ethernet suspend time end = %lx\n", jiffies);
-	/*jb.qi change for reboot after sleep on 20230417 end*/
+
 	return 0;
 }
 
@@ -4790,7 +4788,7 @@
 	pr_notice("ethernet resume time start = %lx\n", jiffies);
 
 	if (pdev == NULL) {
-		pr_notice("%s pdev == NULL\n", __func__); //jb.qi change for reboot after sleep on 20230417
+		pr_notice("%s pdev == NULL\n", __func__);
 		return -1;
 	}
 
@@ -4805,9 +4803,9 @@
 			   SCAN_MODE);
 #endif
 
-	mtk_clk_enable(eth);//jb.qi change for reboot after sleep on 20230417
+	mtk_clk_enable(eth);
 	mtk_hw_init_resume(eth);
-	pr_notice("ethernet resume time clk enable = %lx\n", jiffies);//jb.qi change for reboot after sleep on 20230417
+	pr_notice("ethernet resume time clk enable = %lx\n", jiffies);
 
 	//mtk_w32(eth, 0x27fb5, MTK_PPE_TB_CFG);
 	//mtk_w32(eth, 0x27fb5, MTK_PPE1_TB_CFG);
@@ -4890,7 +4888,7 @@
 	for (i = 0; i < MTK_MAC_COUNT; i++) {
 		if (!eth->netdev[i])
 			continue;
-		/*jb.qi change for reboot after sleep on 20230417 start*/
+
 		pr_notice("restore %s state=%d mac%d=0x%x",
 			eth->netdev[i]->name,
 			eth->suspend_data.eth_state[i],
@@ -4901,14 +4899,14 @@
 				phy_start(eth->netdev[i]->phydev);
 			netif_start_queue(eth->netdev[i]);
 		}
-		/*jb.qi change for reboot after sleep on 20230417 end*/
 	}
 
-	pr_notice("ethernet resume time eth up = %lx\n", jiffies);//jb.qi change for reboot after sleep on 20230417
+	pr_notice("ethernet resume time eth up = %lx\n", jiffies);
 	pr_notice("ethernet resume time end = %lx\n", jiffies);
 
 	return 0;
 }
+
 static const struct dev_pm_ops netsys_pm_ops = {
 	.suspend_noirq = netsys_pm_suspend,
 	.resume_noirq = netsys_pm_resume,
diff --git a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index bcfe59c..8b1c23e 100644
--- a/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/src/kernel/linux/v4.19/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -1026,12 +1026,12 @@
 	u32             flags[MTK_MAX_DEVS];
 	u32             ana_rgc3;
 };
-/*jb.qi change for reboot after sleep on 20230417 start*/
+
 struct mtk_suspend_data {
 	int		eth_state[MTK_MAX_DEVS];
 	u32		mcr[MTK_MAX_DEVS];
 };
-/*jb.qi change for reboot after sleep on 20230417 end*/
+
 /* struct mtk_eth -	This is the main datasructure for holding the state
  *			of the driver
  * @dev:		The device pointer
@@ -1083,8 +1083,8 @@
 	struct regmap			*ethsys;
 	struct regmap                   *infra;
 	struct regmap                   *wo;
-	struct regmap                   *wed;//jb.qi change for reboot after sleep on 20230417
-	struct regmap                   *wed2;//jb.qi change for reboot after sleep on 20230417
+	struct regmap                   *wed;
+	struct regmap                   *wed2;
 	struct mtk_sgmii                *sgmii;
 	struct regmap			*pctl;
 	u32				hwlro;
@@ -1136,7 +1136,7 @@
 	unsigned int			irq_work;
 	struct work_struct		link_work;
 
-	struct mtk_suspend_data		suspend_data;//jb.qi change for reboot after sleep on 20230417
+	struct mtk_suspend_data		suspend_data;
 };
 
 /* struct mtk_mac -	the structure that holds the info about the MACs of the
diff --git a/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c b/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c
index 7783c74..404fc55 100644
--- a/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c
+++ b/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c
@@ -180,10 +180,10 @@
 	struct regmap_field	*spare[SPARE_RG_MAX];
 	struct regmap_field	*cali[CALI_FILED_MAX];
 	bool			cali_is_supported;
-	ktime_t		wakeup_time; //jb.qi change for rtc resume API on 2022.11.18 start
+	ktime_t		wakeup_time;
 };
 
-bool wakeup_by_rtc; //jb.qi change for rtc resume API on 2022.11.18 start
+bool wakeup_by_rtc;
 #define RTC_WAKEUP_THRESHOLD	1500000000 // 1500ms jb.qi change for rtc resume API on 20230802
 
 static int mtk_rtc_write_trigger(struct mt6330_rtc *rtc);
@@ -534,9 +534,9 @@
 		if (i == RTC_OFFSET_DOW)
 			continue;
 		ret = rtc_update_bits(rtc,
-					 rtc->addr_base + rtc_pwron_reg[i][RTC_REG],
-					 rtc_pwron_reg[i][RTC_MASK],
-					 data[i]);
+				rtc->addr_base + rtc_pwron_reg[i][RTC_REG],
+				rtc_pwron_reg[i][RTC_MASK],
+				data[i]);
 
 		if (ret < 0)
 			goto exit;
@@ -577,8 +577,6 @@
 	if (ret < 0)
 		goto exit;
 
-//	mtk_rtc_write_trigger(rtc);
-
 	return;
 
 exit:
@@ -1033,10 +1031,9 @@
 	if (rtc->dev_comp->cali_reg_fields)
 		if (mtk_rtc_config_eosc_cali(&pdev->dev))
 			dev_err(&pdev->dev, "config eosc cali failed\n");
-	/*jb.qi change for rtc resume API on 2022.11.18 start*/
+
 	rtc->wakeup_time = ktime_get();
 	wakeup_by_rtc = false;
-	/*jb.qi change for rtc resume API on 2022.11.18 end*/
 
 	return 0;
 
@@ -1058,12 +1055,11 @@
 }
 
 #ifdef CONFIG_PM_SLEEP
-/*jb.qi change for rtc resume API on 2022.11.18 start*/
 bool isWakeupByRTC(void)
 {
 	return wakeup_by_rtc;
 }
-/*jb.qi change for rtc resume API on 2022.11.18 start*/
+
 static int mt6330_rtc_suspend(struct device *dev)
 {
 	struct mt6330_rtc *rtc = dev_get_drvdata(dev);
@@ -1071,7 +1067,7 @@
 	if (device_may_wakeup(dev))
 		enable_irq_wake(rtc->irq);
 
-	wakeup_by_rtc = false; //jb.qi change for rtc resume API on 2022.11.18 
+	wakeup_by_rtc = false;
 
 	return 0;
 }
@@ -1079,11 +1075,11 @@
 static int mt6330_rtc_resume(struct device *dev)
 {
 	struct mt6330_rtc *rtc = dev_get_drvdata(dev);
-	ktime_t temp; //jb.qi change for rtc resume API on 2022.11.18 
- 
+	ktime_t temp;
+
 	if (device_may_wakeup(dev))
 		disable_irq_wake(rtc->irq);
-	/*jb.qi change for rtc resume API on 2022.11.18 start*/
+
 	temp = ktime_get();
 
 	wakeup_by_rtc = false;
@@ -1091,7 +1087,6 @@
 		wakeup_by_rtc = true;
 
 	dev_info(dev, "%s: wakeup time:%lld, resume_time %lld wakeup_by_rtc %d\n", __func__, rtc->wakeup_time, temp, wakeup_by_rtc);
-	/*jb.qi change for rtc resume API on 2022.11.18 end*/
 	return 0;
 }
 #endif
diff --git a/src/kernel/linux/v4.19/drivers/rtc/rtc-proc.c b/src/kernel/linux/v4.19/drivers/rtc/rtc-proc.c
index 9256596..dfd09b9 100644
--- a/src/kernel/linux/v4.19/drivers/rtc/rtc-proc.c
+++ b/src/kernel/linux/v4.19/drivers/rtc/rtc-proc.c
@@ -106,7 +106,7 @@
 
 	return 0;
 }
-/*jb.qi change for rtc resume API on 2022.11.18 start*/
+
 #ifdef CONFIG_PM_SLEEP
 extern bool isWakeupByRTC(void);
 #endif
@@ -118,14 +118,14 @@
 #endif
 	return 0;
 }
-/*jb.qi change for rtc resume API on 2022.11.18 end*/
+
 void rtc_proc_add_device(struct rtc_device *rtc)
 {
 	if (is_rtc_hctosys(rtc)) {
- 		proc_create_single_data("driver/rtc", 0, NULL, rtc_proc_show,
- 				rtc);
+		proc_create_single_data("driver/rtc", 0, NULL, rtc_proc_show,
+				rtc);
 		proc_create_single_data("driver/rtc_wakeup", 0, NULL, rtc_wakeup_proc_show,
-				rtc); //jb.qi change for rtc resume API on 2022.11.18
+				rtc);
 	}
 }
 
diff --git a/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig b/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig
index 7945f5c..c82a4f4 100755
--- a/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig
+++ b/src/kernel/linux/v4.19/drivers/soc/mediatek/Kconfig
@@ -83,10 +83,6 @@
 	  platform could enter deeper sleep mode when cpu preparing to
 	  power down if it have sufficient time between warmboot.
 
-#Typethree@2023.2.01 modify for TCXO hw version start
-
-#Typethree@2023.2.01 modify for TCXO hw version end
-
 config MTK_IPI
 	tristate "MediaTek IPI Support"
 	depends on RPMSG_MTK
diff --git a/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c b/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c
index 6846443..92ead56 100755
--- a/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c
+++ b/src/kernel/linux/v4.19/drivers/soc/mediatek/mtk-scpsys.c
@@ -1398,7 +1398,7 @@
 	for (i = 0; i < num; i++) {
 		struct scp_domain *scpd = &scp->domains[i];
 		struct generic_pm_domain *genpd = &scpd->genpd;
-		bool on;//jb.qi change for reboot after sleep on 20230417
+		bool on;
 		/*
 		 * Initially turn on the domains to make the domains usable
 		 * with !CONFIG_PM and to get the hardware in sync with the
@@ -1407,7 +1407,6 @@
 		 * Power on the ssusb/netsys/connectivity by default to let each driver
 		 * disable the clock in case of no usage.
 		 */
-		/*jb.qi change for reboot after sleep on 20230417 start*/
 		if (strcmp(genpd->name, "ssusb_phy") == 0 ||
 		    strcmp(genpd->name, "netsys") == 0 ||
 		    strcmp(genpd->name, "conn") == 0) {
@@ -1424,7 +1423,6 @@
 		}
 
 		pm_genpd_init(genpd, NULL, !on);
-		/*jb.qi change for reboot after sleep on 20230417 end*/
 	}
 
 	/*
@@ -1727,12 +1725,10 @@
 		.sram_pdn_ack_bits = GENMASK(12, 12),
 		.basic_clk_name = {"audio"},
 		.caps = MTK_SCPD_STRICT_BUSP,
-		/*jb.qi change for reboot after sleep on 20230417 start*/
 		.bp_table = {
 			BUS_PROT(IFR_TYPE, MT6779_IFR_SET, MT6779_IFR_CLR,
 				0, MT6779_IFR_STA1, BIT(31), BIT(31), 0),
 		},
-		/*jb.qi change for reboot after sleep on 20230417 end*/
 	},
 
 	[MT6779_POWER_DOMAIN_MM] = {
diff --git a/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_mutt.c b/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_mutt.c
index 60f2f2a..fff906e 100644
--- a/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_mutt.c
+++ b/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_mutt.c
@@ -131,6 +131,7 @@
 	struct md_cooling_device *md_cdev = cdev->devdata;
 	struct mutt_driver_data *drv_data;
 	struct device *dev;
+	struct thermal_instance *instance;
 	enum md_status status, new_status;
 	unsigned int msg;
 	unsigned long target_lv, final_lv;
@@ -161,6 +162,10 @@
 		mutex_lock(&drv_data->lock);
 		drv_data->current_level = MD_COOLING_UNLIMITED_LV;
 		mutex_unlock(&drv_data->lock);
+		list_for_each_entry(instance, &cdev->thermal_instances, cdev_node) {
+			if (instance->cdev->type == cdev->type)
+				instance->target = MD_COOLING_UNLIMITED_LV;
+		}
 		return 0;
 	}
 
diff --git a/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_scg_off.c b/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_scg_off.c
index a4e244b..93e77ac 100644
--- a/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_scg_off.c
+++ b/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_scg_off.c
@@ -11,6 +11,7 @@
 #include <linux/platform_device.h>
 #include <md_cooling.h>
 #include <mtk_thermal_trace.h>
+#include "../thermal_core.h"
 
 #define SCG_OFF_MAX_LEVEL	(1)
 
@@ -39,6 +40,7 @@
 {
 	struct md_cooling_device *md_cdev = cdev->devdata;
 	struct device *dev = (struct device *)md_cdev->dev_data;
+	struct thermal_instance *instance;
 	enum md_status status;
 	unsigned int msg;
 	int ret = 0;
@@ -53,8 +55,13 @@
 	status = get_md_status();
 	if (is_mutt_enabled(status)) {
 		dev_info(dev, "skip SCG control due to MUTT is enabled\n");
-		if (is_md_off(status))
+		if (is_md_off(status)) {
 			md_cdev->target_level = MD_COOLING_UNLIMITED_LV;
+			list_for_each_entry(instance, &cdev->thermal_instances, cdev_node) {
+				if (instance->cdev->type == cdev->type)
+					instance->target = MD_COOLING_UNLIMITED_LV;
+			}
+		}
 		trace_md_scg_off(md_cdev, status);
 		return -EACCES;
 	}
diff --git a/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_tx_pwr.c b/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_tx_pwr.c
index 3f1e29f..b509f0c 100644
--- a/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_tx_pwr.c
+++ b/src/kernel/linux/v4.19/drivers/thermal/mediatek/md_cooling_tx_pwr.c
@@ -11,6 +11,7 @@
 #include <linux/platform_device.h>
 #include <md_cooling.h>
 #include <mtk_thermal_trace.h>
+#include "../thermal_core.h"
 
 #define DEFAULT_THROTTLE_TX_PWR_LV1	(4)
 #define DEFAULT_THROTTLE_TX_PWR_LV2	(6)
@@ -43,6 +44,7 @@
 	struct device *dev = (struct device *)md_cdev->dev_data;
 	enum md_status status;
 	unsigned int msg, pwr;
+	struct thermal_instance *instance;
 	int ret = 0;
 
 	/* Request state should be less than max_level */
@@ -55,8 +57,13 @@
 	status = get_md_status();
 	if (is_md_inactive(status)) {
 		dev_info(dev, "skip tx pwr control due to MD is inactive\n");
-		if (is_md_off(status))
+		if (is_md_off(status)) {
 			md_cdev->target_level = MD_COOLING_UNLIMITED_LV;
+			list_for_each_entry(instance, &cdev->thermal_instances, cdev_node) {
+				if (instance->cdev->type == cdev->type)
+					instance->target = MD_COOLING_UNLIMITED_LV;
+			}
+		}
 		trace_md_tx_pwr_limit(md_cdev, status);
 		return -EACCES;
 	}