Index: format/app_mouse.format
===================================================================
--- /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/format/app_mouse.format	(revision 2302)
+++ /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/format/app_mouse.format	(working copy)
@@ -461,6 +461,8 @@
 0X06 MOUSE_RM_BUTTON
 0X07 MOUSE_LMR_BUTTON
 0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
 0x14 MOUSE_M_FW_BUTTON
 0X18 MOUSE_BK_FW_BUTTON
 //mouse default gpio
Index: output/eeprom.dat
===================================================================
--- /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/output/eeprom.dat	(revision 2302)
+++ /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-9a
+d2
 18
 c2
 84
@@ -67,7 +67,7 @@
 c0
 68
 05
-f0
+f1
 c0
 69
 03
@@ -555,7 +555,7 @@
 70
 8a
 39
-04
+0a
 70
 8a
 3a
@@ -3911,7 +3911,7 @@
 20
 40
 06
-20
+21
 d8
 40
 00
@@ -4211,7 +4211,7 @@
 20
 40
 06
-23
+24
 68
 48
 c9
@@ -4243,7 +4243,7 @@
 20
 40
 06
-20
+21
 20
 40
 04
@@ -4271,7 +4271,7 @@
 20
 40
 06
-23
+24
 70
 4c
 20
@@ -6079,11 +6079,15 @@
 20
 40
 05
-f0
+f1
+20
+40
+06
+27
 20
 20
 41
-1d
+1e
 6f
 e0
 cb
@@ -6099,15 +6103,15 @@
 20
 40
 05
-f7
+f8
 20
 40
 06
-06
+07
 20
 40
 06
-13
+14
 20
 20
 41
@@ -6119,7 +6123,7 @@
 20
 40
 06
-20
+21
 20
 40
 41
@@ -6139,7 +6143,7 @@
 20
 40
 06
-20
+21
 20
 40
 41
@@ -6159,7 +6163,7 @@
 20
 40
 06
-20
+21
 20
 40
 41
@@ -6203,7 +6207,7 @@
 c0
 7f
 86
-0f
+10
 20
 20
 41
@@ -6215,7 +6219,7 @@
 20
 40
 06
-23
+24
 68
 48
 c9
@@ -6255,7 +6259,7 @@
 c0
 7f
 86
-1c
+1d
 20
 20
 41
@@ -6267,7 +6271,7 @@
 20
 40
 06
-23
+24
 68
 48
 c9
@@ -6300,8 +6304,60 @@
 20
 61
 2c
-49
-e8
+70
+4b
+a9
+00
+70
+4b
+aa
+00
+70
+4b
+ab
+00
+1f
+e2
+04
+00
+20
+40
+06
+2e
+20
+40
+06
+31
+20
+20
+41
+33
+18
+41
+7e
+11
+c0
+08
+c1
+4e
+20
+60
+00
+00
+18
+41
+7e
+0a
+c0
+05
+41
+4e
+20
+60
+00
+00
+b7
+ac
 aa
 55
 40
@@ -7660,64 +7716,8 @@
 55
 b6
 91
-7f
-9c
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+2c
+77
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-5c
-0a
+e9
+57
Index: output/program.lis
===================================================================
--- /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/output/program.lis	(revision 2302)
+++ /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/output/program.lis	(working copy)
@@ -15,7 +15,7 @@
 000c c06685cc beq patch19_5 ,p_mouse_motion 
 000d c0670466 beq patch19_6 ,p_mouse_dpi_process 
 000e c0678499 beq patch19_7 ,p_mouse_seting_dpi 
-000f c06805f0 beq patch1a_0 ,p_mouse_check_key_gpio 
+000f c06805f1 beq patch1a_0 ,p_mouse_check_key_gpio 
 0010 c0690392 beq patch1a_2 ,p_mouse_init_sunt 
 0011 c06983aa beq patch1a_3 ,p_mouse_sensor_poweron 
 0012 c06a84d6 beq patch1a_5 ,p_mouse_priority_bb_event 
@@ -175,7 +175,7 @@
 0088 20201226 branch set_rf_ldo_cfg89 
 
 p_set_tx_power_pair:
-0089 708a3904 jam 0x04 ,core_tx_pwr_ctrl0 
+0089 708a390a jam 0x0a ,core_tx_pwr_ctrl0 
 008a 708a3a00 jam 0x00 ,core_tx_pwr_ctrl1 
 008b 20201226 branch set_rf_ldo_cfg89 
 
@@ -1304,7 +1304,7 @@
 03cd 6848c914 fetcht 1 ,mem_matrix_public_gpio 
 03ce 204060e6 call gpio_clr_wake 
 03cf 6fe0c924 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-03d0 20400620 call p_mouse_gpio_config_output_high 
+03d0 20400621 call p_mouse_gpio_config_output_high 
 03d1 d8400003 arg 3 ,temp 
 03d2 20403f96 call mouse_gpio_config_input_pu 
 03d3 20403e80 call mouse_lpm_before_common 
@@ -1405,7 +1405,7 @@
 
 p_mouse_3io6key_dpi_check:
 041a 6fe0c913 fetch 1 ,mem_dpi_button_gpio 
-041b 20400623 call p_mouse_gpio_config_output_low 
+041b 20400624 call p_mouse_gpio_config_output_low 
 041c 6848c913 fetcht 1 ,mem_dpi_button_gpio 
 041d 202041d5 branch mouse_3io6key_check 
 
@@ -1417,7 +1417,7 @@
 
 p_mouse_dpi_another_gpio_connect_gnd_check:
 0422 6fe0cc1c fetch 1 ,mem_dpi_another_button_gpio 
-0423 20400620 call p_mouse_gpio_config_output_high 
+0423 20400621 call p_mouse_gpio_config_output_high 
 0424 20400437 call p_mouse_dpi_another_check 
 0425 6848cc1c fetcht 1 ,mem_dpi_another_button_gpio 
 0426 20203f96 branch mouse_gpio_config_input_pu 
@@ -1426,7 +1426,7 @@
 0427 6fe0cc1c fetch 1 ,mem_dpi_another_button_gpio 
 0428 793ffe07 set0 gpio_active_bit ,pdata 
 0429 67e0cc1c store 1 ,mem_dpi_another_button_gpio 
-042a 20400623 call p_mouse_gpio_config_output_low 
+042a 20400624 call p_mouse_gpio_config_output_low 
 042b 704c2000 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
 042c 6848cc1c fetcht 1 ,mem_dpi_another_button_gpio 
 042d 6fe0cc1d fetch 1 ,mem_dpi_another_press_status 
@@ -2044,82 +2044,102 @@
 05ed 20204758 branch mouse_drawing_optima 
 
 p_mouse_key:
-05ee 204005f0 call p_mouse_check_key_gpio 
-05ef 2020411d branch mouse_key + 1 
+05ee 204005f1 call p_mouse_check_key_gpio 
+05ef 20400627 call p_mouse_ghost_key_check 
+05f0 2020411e branch mouse_key + 2 
 
 p_mouse_check_key_gpio:
-05f0 6fe0cbf2 fetch 1 ,mem_sensor_shutdown_flag 
-05f1 245a4161 ncall mouse_check_key_gpio_once ,blank 
-05f2 da200000 arg 0 ,rega 
-05f3 204005f7 call p_mouse_check_lkey_gpio 
-05f4 20400606 call p_mouse_check_bkkey_gpio 
-05f5 20400613 call p_mouse_check_fwkey_gpio 
-05f6 2020415e branch mouse_check_key_gpio_next 
+05f1 6fe0cbf2 fetch 1 ,mem_sensor_shutdown_flag 
+05f2 245a4161 ncall mouse_check_key_gpio_once ,blank 
+05f3 da200000 arg 0 ,rega 
+05f4 204005f8 call p_mouse_check_lkey_gpio 
+05f5 20400607 call p_mouse_check_bkkey_gpio 
+05f6 20400614 call p_mouse_check_fwkey_gpio 
+05f7 2020415e branch mouse_check_key_gpio_next 
 
 p_mouse_check_lkey_gpio:
-05f7 6fe0c91c fetch 1 ,mem_lbutton_gpio 
-05f8 20400620 call p_mouse_gpio_config_output_high 
-05f9 20404164 call mouse_check_lkey_gpio 
-05fa 6848c91c fetcht 1 ,mem_lbutton_gpio 
-05fb 20403f96 call mouse_gpio_config_input_pu 
+05f8 6fe0c91c fetch 1 ,mem_lbutton_gpio 
+05f9 20400621 call p_mouse_gpio_config_output_high 
+05fa 20404164 call mouse_check_lkey_gpio 
+05fb 6848c91c fetcht 1 ,mem_lbutton_gpio 
+05fc 20403f96 call mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-05fc 6fe0c91d fetch 1 ,mem_rbutton_gpio 
-05fd 20400620 call p_mouse_gpio_config_output_high 
-05fe 2040416a call mouse_check_rkey_gpio 
-05ff 6848c91d fetcht 1 ,mem_rbutton_gpio 
-0600 20403f96 call mouse_gpio_config_input_pu 
+05fd 6fe0c91d fetch 1 ,mem_rbutton_gpio 
+05fe 20400621 call p_mouse_gpio_config_output_high 
+05ff 2040416a call mouse_check_rkey_gpio 
+0600 6848c91d fetcht 1 ,mem_rbutton_gpio 
+0601 20403f96 call mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-0601 6fe0c91e fetch 1 ,mem_mbutton_gpio 
-0602 20400620 call p_mouse_gpio_config_output_high 
-0603 20404170 call mouse_check_mkey_gpio 
-0604 6848c91e fetcht 1 ,mem_mbutton_gpio 
-0605 20203f96 branch mouse_gpio_config_input_pu 
+0602 6fe0c91e fetch 1 ,mem_mbutton_gpio 
+0603 20400621 call p_mouse_gpio_config_output_high 
+0604 20404170 call mouse_check_mkey_gpio 
+0605 6848c91e fetcht 1 ,mem_mbutton_gpio 
+0606 20203f96 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-0606 6fe0c911 fetch 1 ,mem_bk_button_gpio 
-0607 c17f8000 rtneq gpio_disable 
-0608 704ba703 jam mouse_bk_key ,mem_mouse_key_temp 
-0609 6fe0cba2 fetch 1 ,mem_mouse_bkkey_press_status 
-060a 1fe22600 copy pdata ,regc 
-060b 6848c911 fetcht 1 ,mem_bk_button_gpio 
-060c 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
-060d c07f860f beq gpio_disable ,p_mouse_3io6key_bk_check 
-060e 2020417e branch mouse_check_bkkey_gpio_next 
+0607 6fe0c911 fetch 1 ,mem_bk_button_gpio 
+0608 c17f8000 rtneq gpio_disable 
+0609 704ba703 jam mouse_bk_key ,mem_mouse_key_temp 
+060a 6fe0cba2 fetch 1 ,mem_mouse_bkkey_press_status 
+060b 1fe22600 copy pdata ,regc 
+060c 6848c911 fetcht 1 ,mem_bk_button_gpio 
+060d 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
+060e c07f8610 beq gpio_disable ,p_mouse_3io6key_bk_check 
+060f 2020417e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-060f 6fe0c911 fetch 1 ,mem_bk_button_gpio 
-0610 20400623 call p_mouse_gpio_config_output_low 
-0611 6848c911 fetcht 1 ,mem_bk_button_gpio 
-0612 2020418b branch mouse_3io6key_bk_check 
+0610 6fe0c911 fetch 1 ,mem_bk_button_gpio 
+0611 20400624 call p_mouse_gpio_config_output_low 
+0612 6848c911 fetcht 1 ,mem_bk_button_gpio 
+0613 2020418b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-0613 6fe0c912 fetch 1 ,mem_fw_button_gpio 
-0614 c17f8000 rtneq gpio_disable 
-0615 704ba704 jam mouse_fw_key ,mem_mouse_key_temp 
-0616 6fe0cba3 fetch 1 ,mem_mouse_fwkey_press_status 
-0617 1fe22600 copy pdata ,regc 
-0618 6848c912 fetcht 1 ,mem_fw_button_gpio 
-0619 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
-061a c07f861c beq gpio_disable ,p_mouse_3io6key_fw_check 
-061b 20204197 branch mouse_check_fwkey_gpio_next 
+0614 6fe0c912 fetch 1 ,mem_fw_button_gpio 
+0615 c17f8000 rtneq gpio_disable 
+0616 704ba704 jam mouse_fw_key ,mem_mouse_key_temp 
+0617 6fe0cba3 fetch 1 ,mem_mouse_fwkey_press_status 
+0618 1fe22600 copy pdata ,regc 
+0619 6848c912 fetcht 1 ,mem_fw_button_gpio 
+061a 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
+061b c07f861d beq gpio_disable ,p_mouse_3io6key_fw_check 
+061c 20204197 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-061c 6fe0c912 fetch 1 ,mem_fw_button_gpio 
-061d 20400623 call p_mouse_gpio_config_output_low 
-061e 6848c912 fetcht 1 ,mem_fw_button_gpio 
-061f 202041a4 branch mouse_3io6key_fw_check 
+061d 6fe0c912 fetch 1 ,mem_fw_button_gpio 
+061e 20400624 call p_mouse_gpio_config_output_low 
+061f 6848c912 fetcht 1 ,mem_fw_button_gpio 
+0620 202041a4 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-0620 c17f8000 rtneq gpio_disable 
-0621 d840003f arg gpcfg_output_high ,temp 
-0622 2020612c branch gpio_config_function_int 
+0621 c17f8000 rtneq gpio_disable 
+0622 d840003f arg gpcfg_output_high ,temp 
+0623 2020612c branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-0623 c17f8000 rtneq gpio_disable 
-0624 d840003e arg gpcfg_output_low ,temp 
-0625 2020612c branch gpio_config_function_int 
+0624 c17f8000 rtneq gpio_disable 
+0625 d840003e arg gpcfg_output_low ,temp 
+0626 2020612c branch gpio_config_function_int 
+
+p_mouse_ghost_key_check:
+0627 704ba900 jam 0 ,mem_mouse_matrix_key_cow_count 
+0628 704baa00 jam 0 ,mem_mouse_matrix_key_row_count 
+0629 704bab00 jam 0 ,mem_mouse_ghost_flag 
+062a 1fe20400 copy pdata ,temp 
+062b 2040062e call p_mouse_ghost_key_check_l_fw 
+062c 20400631 call p_mouse_ghost_key_check_r_bk 
+062d 20204133 branch mouse_ghost_key_check + 6 
+
+p_mouse_ghost_key_check_l_fw:
+062e 18417e11 and temp ,mouse_l_fw_button ,pdata 
+062f c008c14e beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
+0630 20600000 rtn 
+
+p_mouse_ghost_key_check_r_bk:
+0631 18417e0a and temp ,mouse_r_bk_button ,pdata 
+0632 c005414e beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+0633 20600000 rtn 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/program/patch.prog	(revision 2302)
+++ /YC1308AF/branch/mouse/YDN_Project/Only_24G_G222/program/patch.prog	(working copy)
@@ -202,7 +202,7 @@
 	branch set_rf_ldo_cfg89
 
 p_set_tx_power_pair:
-	jam 0x04,core_tx_pwr_ctrl0
+	jam 0x0a,core_tx_pwr_ctrl0
 	jam 0x00,core_tx_pwr_ctrl1
 	branch set_rf_ldo_cfg89
 
@@ -2566,7 +2566,8 @@
 	nbranch p_fire_key_process,blank
 endif	
 	call p_mouse_check_key_gpio
-	branch mouse_key+1
+	call p_mouse_ghost_key_check
+	branch mouse_key+2
 
 p_mouse_check_key_gpio:
 	fetch 1,mem_sensor_shutdown_flag
@@ -2645,6 +2646,25 @@
 	arg gpcfg_output_low,temp
 	branch gpio_config_function_int
 
+p_mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,temp
+	call p_mouse_ghost_key_check_L_FW
+	call p_mouse_ghost_key_check_R_BK
+	branch mouse_ghost_key_check+6
+
+p_mouse_ghost_key_check_L_FW:
+	and temp,MOUSE_L_FW_BUTTON,pdata
+	beq MOUSE_L_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
+p_mouse_ghost_key_check_R_BK:
+	and temp,MOUSE_R_BK_BUTTON,pdata
+	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
 
 ///////////////////////////// 2.4g ota  start ///////////////////////////////////////////////////////////
 ifdef G24_OTA
