Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/output/eeprom.dat	(revision 390)
+++ /1306ac/branch/mouse/branch/mouse_public/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-2a
+72
 04
 c2
 84
@@ -27,11 +27,11 @@
 c0
 27
 00
-94
+a6
 c0
 29
 00
-a7
+b9
 c0
 2d
 00
@@ -123,11 +123,11 @@
 20
 40
 00
-e0
+f2
 20
 40
-00
-f8
+01
+0a
 d8
 40
 00
@@ -543,7 +543,11 @@
 c0
 1e
 00
-88
+89
+c0
+1d
+00
+95
 20
 20
 59
@@ -596,6 +600,74 @@
 20
 5e
 17
+6f
+e0
+c5
+4b
+24
+3a
+5d
+80
+6f
+e0
+c5
+2d
+c0
+01
+5d
+f4
+c0
+02
+00
+9c
+c0
+01
+80
+a1
+20
+20
+5d
+ed
+6f
+e4
+48
+64
+c3
+17
+dd
+ed
+6f
+e0
+c8
+6c
+c0
+00
+dd
+ed
+20
+20
+5d
+cb
+6f
+e4
+48
+64
+c3
+17
+dd
+ed
+c2
+89
+dd
+ed
+c2
+89
+5d
+ed
+20
+20
+5d
+c4
 20
 40
 53
@@ -651,7 +723,7 @@
 20
 40
 00
-a3
+b5
 20
 20
 5a
@@ -683,7 +755,7 @@
 20
 40
 00
-be
+d0
 df
 e0
 07
@@ -695,7 +767,7 @@
 20
 40
 01
-04
+16
 6f
 e2
 49
@@ -703,7 +775,7 @@
 20
 3a
 00
-b6
+c8
 67
 e2
 49
@@ -731,7 +803,7 @@
 20
 20
 00
-ac
+be
 6f
 e2
 49
@@ -775,7 +847,7 @@
 20
 40
 00
-ec
+fe
 6f
 e0
 c9
@@ -783,7 +855,7 @@
 20
 3a
 00
-ca
+dc
 67
 e0
 c9
@@ -811,7 +883,7 @@
 20
 20
 00
-c0
+d2
 6f
 e0
 c9
@@ -823,7 +895,7 @@
 20
 3a
 00
-d3
+e5
 6f
 e0
 c6
@@ -891,7 +963,7 @@
 20
 22
 80
-cf
+e1
 1a
 40
 a5
@@ -899,7 +971,7 @@
 20
 20
 00
-cf
+e1
 df
 e0
 07
@@ -911,15 +983,15 @@
 20
 40
 00
-ec
+fe
 6f
 e0
 c9
 07
 20
 3a
-00
-ef
+01
+01
 67
 e0
 c9
@@ -938,8 +1010,8 @@
 00
 24
 21
-00
-ef
+01
+01
 1a
 42
 7e
@@ -947,7 +1019,7 @@
 20
 20
 00
-e2
+f4
 d8
 40
 00
@@ -974,16 +1046,16 @@
 f0
 20
 3a
-00
-f5
+01
+07
 1f
 f1
 fe
 00
 20
 20
-00
-f6
+01
+08
 1a
 62
 7e
@@ -1007,7 +1079,7 @@
 20
 40
 01
-04
+16
 6f
 e2
 49
@@ -1015,7 +1087,7 @@
 20
 3a
 01
-07
+19
 67
 e2
 49
@@ -1035,15 +1107,15 @@
 24
 21
 01
-07
+19
 1a
 42
 7e
 00
 20
 20
-00
-fa
+01
+0c
 d8
 40
 00
@@ -1068,8 +1140,8 @@
 60
 00
 00
-a5
-11
+cd
+4a
 aa
 55
 06
@@ -1611,5 +1683,5 @@
 55
 09
 a0
-3f
-6e
+34
+dc
Index: output/program.lis
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/output/program.lis	(revision 390)
+++ /1306ac/branch/mouse/branch/mouse_public/output/program.lis	(working copy)
@@ -5,8 +5,8 @@
 0002 c01e8068 beq patch07_5 ,p_mouse_setgpio_hibernate 
 0003 c023007a beq patch08_6 ,p_mouse_3io6key_check 
 0004 c0260085 beq patch09_4 ,p_mouse_priority_bb_event 
-0005 c0270094 beq patch09_6 ,p_mouse_bb_event_timer 
-0006 c02900a7 beq patch0a_2 ,p_mouse_store_device_info 
+0005 c02700a6 beq patch09_6 ,p_mouse_bb_event_timer 
+0006 c02900b9 beq patch0a_2 ,p_mouse_store_device_info 
 0007 c02d005d beq patch0b_2 ,p_mouse_24g_package_data 
 0008 c02f002e beq patch0b_6 ,p_mouse_ui_led_off_static 
 0009 c02f8032 beq patch0b_7 ,p_mouse_ui_led_on_static 
@@ -39,8 +39,8 @@
 001c c40b8000 rtnbit0 mouse_enable_otp 
 
 p_mouse_load_otp_info_check:
-001d 204000e0 call p_mouse_read_otp_dpi 
-001e 204000f8 call p_mouse_read_otp_24g_addr 
+001d 204000f2 call p_mouse_read_otp_dpi 
+001e 2040010a call p_mouse_read_otp_24g_addr 
 
 p_mouse_otp_load_app_initflag:
 001f d8400002 arg 2 ,temp 
@@ -180,184 +180,208 @@
 
 p_mouse_priority_bb_event:
 0085 1a627e00 copy regc ,pdata 
-0086 c01e0088 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-0087 20205914 branch mouse_priority_bb_event + 2 
+0086 c01e0089 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+0087 c01d0095 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+0088 20205914 branch mouse_priority_bb_event + 2 
 
 p_mouse_24g_attempt_success:
-0088 6fe244da fetch 4 ,mem_24g_addr 
-0089 67e24533 store 4 ,mem_24g_receiver_addr 
-008a 67e24640 store 4 ,mem_mouse_24g_addr 
-008b 20404bce call g24_ch_syncword_crc8_init 
-008c 20405e1b call mouse_device_poweron_led_config 
-008d 20405aa9 call mouse_no_data_timer_init 
-008e 204058c4 call mouse_init_sensor_reset 
-008f 70476800 jam 0 ,mem_mouse_long_mult_flag 
-0090 70454700 jam 0 ,mem_24g_conn_sm 
-0091 70452d00 jam 0 ,mem_24g_reconn_type 
-0092 684a4533 fetcht 4 ,mem_24g_receiver_addr 
-0093 20205e17 branch mouse_24g_attempt_success + 11 
+0089 6fe244da fetch 4 ,mem_24g_addr 
+008a 67e24533 store 4 ,mem_24g_receiver_addr 
+008b 67e24640 store 4 ,mem_mouse_24g_addr 
+008c 20404bce call g24_ch_syncword_crc8_init 
+008d 20405e1b call mouse_device_poweron_led_config 
+008e 20405aa9 call mouse_no_data_timer_init 
+008f 204058c4 call mouse_init_sensor_reset 
+0090 70476800 jam 0 ,mem_mouse_long_mult_flag 
+0091 70454700 jam 0 ,mem_24g_conn_sm 
+0092 70452d00 jam 0 ,mem_24g_reconn_type 
+0093 684a4533 fetcht 4 ,mem_24g_receiver_addr 
+0094 20205e17 branch mouse_24g_attempt_success + 11 
+
+p_mouse_24g_attempt_fail:
+0095 6fe0c54b fetch 1 ,mem_24g_attempt_fail_flag 
+0096 243a5d80 nbranch mouse_24g_hibernate_set ,blank 
+0097 6fe0c52d fetch 1 ,mem_24g_reconn_type 
+0098 c0015df4 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+0099 c002009c beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
+009a c00180a1 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
+009b 20205ded branch mouse_24g_attempt_fail_enter_hibernate_next 
+
+p_mouse_24g_auto_pair_attempt_fail:
+009c 6fe44864 fetch mouse_flag_len ,mem_mouse_flag 
+009d c317dded bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate_next 
+009e 6fe0c86c fetch 1 ,mem_device_number 
+009f c000dded beq 1 ,mouse_24g_attempt_fail_enter_hibernate_next 
+00a0 20205dcb branch mouse_24g_first_bluetooth_reconnect 
+
+p_mouse_reconn_dongle_attempt_fail:
+00a1 6fe44864 fetch mouse_flag_len ,mem_mouse_flag 
+00a2 c317dded bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate_next 
+00a3 c289dded bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate_next 
+00a4 c2895ded bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate_next 
+00a5 20205dc4 branch mouse_24g_start_auto_pair + 1 
 
 p_mouse_bb_event_timer:
-0094 204053c6 call mouse_adc_read 
-0095 20405f47 call mouse_low_voltage_led_timer 
-0096 20404907 call g24_pair_timeout_timer 
-0097 20404ba5 call g24_reconn_timeout_timer 
-0098 20405d6b call mouse_24g_long_sleep_param_update_timer 
-0099 20405e9a call mouse_device_poweron_timer 
-009a 20405ecb call mouse_dpi_led_blink_delay_timer 
-009b 20405ac1 call mouse_led_multi_timer 
-009c 20405af3 call mouse_logo_led_on_timer 
-009d 2040561c call mouse_dpi_key_check_long_press 
-009e 20405a36 call mouse_bt_discovery_check 
-009f 20405a46 call mouse_commbination_key_process 
-00a0 20405a69 call mouse_check_discovery_timeout_timer 
-00a1 204000a3 call p_mouse_check_direct_timeout_timer 
-00a2 20205a2d branch mouse_bb_event_timer + 15 
+00a6 204053c6 call mouse_adc_read 
+00a7 20405f47 call mouse_low_voltage_led_timer 
+00a8 20404907 call g24_pair_timeout_timer 
+00a9 20404ba5 call g24_reconn_timeout_timer 
+00aa 20405d6b call mouse_24g_long_sleep_param_update_timer 
+00ab 20405e9a call mouse_device_poweron_timer 
+00ac 20405ecb call mouse_dpi_led_blink_delay_timer 
+00ad 20405ac1 call mouse_led_multi_timer 
+00ae 20405af3 call mouse_logo_led_on_timer 
+00af 2040561c call mouse_dpi_key_check_long_press 
+00b0 20405a36 call mouse_bt_discovery_check 
+00b1 20405a46 call mouse_commbination_key_process 
+00b2 20405a69 call mouse_check_discovery_timeout_timer 
+00b3 204000b5 call p_mouse_check_direct_timeout_timer 
+00b4 20205a2d branch mouse_bb_event_timer + 15 
 
 p_mouse_check_direct_timeout_timer:
-00a3 da604831 arg mem_mouse_direct_timer ,regc 
-00a4 da405a74 arg mouse_check_direct_timeout ,regb 
-00a5 20404dcc call timer_single_step 
-00a6 20205a71 branch mouse_check_direct_timeout_timer + 3 
+00b5 da604831 arg mem_mouse_direct_timer ,regc 
+00b6 da405a74 arg mouse_check_direct_timeout ,regb 
+00b7 20404dcc call timer_single_step 
+00b8 20205a71 branch mouse_check_direct_timeout_timer + 3 
 
 p_mouse_store_device_info:
-00a7 20405b90 call mouse_store_device_info + 1 
-00a8 c40b8000 rtnbit0 mouse_enable_otp 
+00b9 20405b90 call mouse_store_device_info + 1 
+00ba c40b8000 rtnbit0 mouse_enable_otp 
 
 p_mouse_store_otp_device_info:
-00a9 204000be call p_mouse_otp_store_dpi 
+00bb 204000d0 call p_mouse_otp_store_dpi 
 
 p_mouse_otp_store_24g_addr:
-00aa dfe00790 arg otp_offset_24g_addr ,pdata 
-00ab 1fe22400 copy pdata ,regb 
+00bc dfe00790 arg otp_offset_24g_addr ,pdata 
+00bd 1fe22400 copy pdata ,regb 
 
 p_mouse_otp_store_24g_addr_loop:
-00ac 20400104 call p_mouse_read_otp_24g_addr_common 
-00ad 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
-00ae 203a00b6 branch p_mouse_24g_addr_store ,blank 
-00af 67e24909 store 4 ,mem_mouse_24g_addr_last 
-00b0 1a40a404 increase 4 ,regb 
-00b1 dfe007cf arg otp_offset_24g_addr_end ,pdata 
-00b2 9a467c00 isub regb ,null 
-00b3 24610000 nrtn positive 
-00b4 1a427e00 copy regb ,pdata 
-00b5 202000ac branch p_mouse_otp_store_24g_addr_loop 
+00be 20400116 call p_mouse_read_otp_24g_addr_common 
+00bf 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
+00c0 203a00c8 branch p_mouse_24g_addr_store ,blank 
+00c1 67e24909 store 4 ,mem_mouse_24g_addr_last 
+00c2 1a40a404 increase 4 ,regb 
+00c3 dfe007cf arg otp_offset_24g_addr_end ,pdata 
+00c4 9a467c00 isub regb ,null 
+00c5 24610000 nrtn positive 
+00c6 1a427e00 copy regb ,pdata 
+00c7 202000be branch p_mouse_otp_store_24g_addr_loop 
 
 p_mouse_24g_addr_store:
-00b6 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
-00b7 684a4640 fetcht 4 ,mem_mouse_24g_addr 
-00b8 98467c00 isub temp ,null 
-00b9 20628000 rtn zero 
-00ba df200004 arg 4 ,loopcnt 
-00bb da204640 arg mem_mouse_24g_addr ,rega 
-00bc 1a427e00 copy regb ,pdata 
-00bd 20206883 branch otp_write 
+00c8 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
+00c9 684a4640 fetcht 4 ,mem_mouse_24g_addr 
+00ca 98467c00 isub temp ,null 
+00cb 20628000 rtn zero 
+00cc df200004 arg 4 ,loopcnt 
+00cd da204640 arg mem_mouse_24g_addr ,rega 
+00ce 1a427e00 copy regb ,pdata 
+00cf 20206883 branch otp_write 
 
 p_mouse_otp_store_dpi:
-00be dfe00760 arg otp_offset_dpi ,pdata 
-00bf 1fe22400 copy pdata ,regb 
+00d0 dfe00760 arg otp_offset_dpi ,pdata 
+00d1 1fe22400 copy pdata ,regb 
 
 p_mouse_otp_store_dpi_loop:
-00c0 204000ec call p_mouse_read_otp_dpi_common 
-00c1 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
-00c2 203a00ca branch p_mouse_dpi_store ,blank 
-00c3 67e0c906 store 1 ,mem_mouse_dpi_last 
-00c4 1a40a401 increase 1 ,regb 
-00c5 dfe0078f arg otp_offset_dpi_end ,pdata 
-00c6 9a467c00 isub regb ,null 
-00c7 24610000 nrtn positive 
-00c8 1a427e00 copy regb ,pdata 
-00c9 202000c0 branch p_mouse_otp_store_dpi_loop 
+00d2 204000fe call p_mouse_read_otp_dpi_common 
+00d3 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
+00d4 203a00dc branch p_mouse_dpi_store ,blank 
+00d5 67e0c906 store 1 ,mem_mouse_dpi_last 
+00d6 1a40a401 increase 1 ,regb 
+00d7 dfe0078f arg otp_offset_dpi_end ,pdata 
+00d8 9a467c00 isub regb ,null 
+00d9 24610000 nrtn positive 
+00da 1a427e00 copy regb ,pdata 
+00db 202000d2 branch p_mouse_otp_store_dpi_loop 
 
 p_mouse_dpi_store:
-00ca 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
-00cb 1fe17ef0 and pdata ,0xf0 ,pdata 
-00cc 203a00d3 branch p_mouse_dpi_store_next ,blank 
-00cd 6fe0c63f fetch 1 ,mem_mouse_dpi 
-00ce 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
+00dc 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
+00dd 1fe17ef0 and pdata ,0xf0 ,pdata 
+00de 203a00e5 branch p_mouse_dpi_store_next ,blank 
+00df 6fe0c63f fetch 1 ,mem_mouse_dpi 
+00e0 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
 
 p_mouse_dpi_store_end:
-00cf df200001 arg 1 ,loopcnt 
-00d0 1a427e00 copy regb ,pdata 
-00d1 da204908 arg mem_mouse_otp_dpi_value ,rega 
-00d2 20206883 branch otp_write 
+00e1 df200001 arg 1 ,loopcnt 
+00e2 1a427e00 copy regb ,pdata 
+00e3 da204908 arg mem_mouse_otp_dpi_value ,rega 
+00e4 20206883 branch otp_write 
 
 p_mouse_dpi_store_next:
-00d3 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
-00d4 6848c63f fetcht 1 ,mem_mouse_dpi 
-00d5 98467c00 isub temp ,null 
-00d6 20628000 rtn zero 
-00d7 18520400 lshift4 temp ,temp 
-00d8 9840fe00 iadd temp ,pdata 
-00d9 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
-00da 1a427e00 copy regb ,pdata 
-00db d8400760 arg otp_offset_dpi ,temp 
-00dc 98467c00 isub temp ,null 
-00dd 202280cf branch p_mouse_dpi_store_end ,zero 
-00de 1a40a5ff increase -1 ,regb 
-00df 202000cf branch p_mouse_dpi_store_end 
+00e5 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
+00e6 6848c63f fetcht 1 ,mem_mouse_dpi 
+00e7 98467c00 isub temp ,null 
+00e8 20628000 rtn zero 
+00e9 18520400 lshift4 temp ,temp 
+00ea 9840fe00 iadd temp ,pdata 
+00eb 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
+00ec 1a427e00 copy regb ,pdata 
+00ed d8400760 arg otp_offset_dpi ,temp 
+00ee 98467c00 isub temp ,null 
+00ef 202280e1 branch p_mouse_dpi_store_end ,zero 
+00f0 1a40a5ff increase -1 ,regb 
+00f1 202000e1 branch p_mouse_dpi_store_end 
 
 p_mouse_read_otp_dpi:
-00e0 dfe00760 arg otp_offset_dpi ,pdata 
-00e1 1fe22400 copy pdata ,regb 
+00f2 dfe00760 arg otp_offset_dpi ,pdata 
+00f3 1fe22400 copy pdata ,regb 
 
 p_mouse_read_otp_dpi_loop:
-00e2 204000ec call p_mouse_read_otp_dpi_common 
-00e3 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
-00e4 203a00ef branch p_mouse_dpi_load ,blank 
-00e5 67e0c906 store 1 ,mem_mouse_dpi_last 
-00e6 1a40a401 increase 1 ,regb 
-00e7 dfe0078f arg otp_offset_dpi_end ,pdata 
-00e8 9a467c00 isub regb ,null 
-00e9 242100ef nbranch p_mouse_dpi_load ,positive 
-00ea 1a427e00 copy regb ,pdata 
-00eb 202000e2 branch p_mouse_read_otp_dpi_loop 
+00f4 204000fe call p_mouse_read_otp_dpi_common 
+00f5 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
+00f6 203a0101 branch p_mouse_dpi_load ,blank 
+00f7 67e0c906 store 1 ,mem_mouse_dpi_last 
+00f8 1a40a401 increase 1 ,regb 
+00f9 dfe0078f arg otp_offset_dpi_end ,pdata 
+00fa 9a467c00 isub regb ,null 
+00fb 24210101 nbranch p_mouse_dpi_load ,positive 
+00fc 1a427e00 copy regb ,pdata 
+00fd 202000f4 branch p_mouse_read_otp_dpi_loop 
 
 p_mouse_read_otp_dpi_common:
-00ec d8400001 arg 1 ,temp 
-00ed da204907 arg mem_mouse_dpi_temp ,rega 
-00ee 202068c5 branch otpd_read_data_with_pwr_operation 
+00fe d8400001 arg 1 ,temp 
+00ff da204907 arg mem_mouse_dpi_temp ,rega 
+0100 202068c5 branch otpd_read_data_with_pwr_operation 
 
 p_mouse_dpi_load:
-00ef 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
-00f0 1fe22600 copy pdata ,regc 
-00f1 1fe17ef0 and pdata ,0xf0 ,pdata 
-00f2 203a00f5 branch p_mouse_dpi_load_next ,blank 
-00f3 1ff1fe00 rshift4 pdata ,pdata 
-00f4 202000f6 branch p_mouse_dpi_load_end 
+0101 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
+0102 1fe22600 copy pdata ,regc 
+0103 1fe17ef0 and pdata ,0xf0 ,pdata 
+0104 203a0107 branch p_mouse_dpi_load_next ,blank 
+0105 1ff1fe00 rshift4 pdata ,pdata 
+0106 20200108 branch p_mouse_dpi_load_end 
 
 p_mouse_dpi_load_next:
-00f5 1a627e00 copy regc ,pdata 
+0107 1a627e00 copy regc ,pdata 
 
 p_mouse_dpi_load_end:
-00f6 67e0c63f store 1 ,mem_mouse_dpi 
-00f7 20600000 rtn 
+0108 67e0c63f store 1 ,mem_mouse_dpi 
+0109 20600000 rtn 
 
 p_mouse_read_otp_24g_addr:
-00f8 dfe00790 arg otp_offset_24g_addr ,pdata 
-00f9 1fe22400 copy pdata ,regb 
+010a dfe00790 arg otp_offset_24g_addr ,pdata 
+010b 1fe22400 copy pdata ,regb 
 
 p_mouse_read_otp_24g_addr_loop:
-00fa 20400104 call p_mouse_read_otp_24g_addr_common 
-00fb 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
-00fc 203a0107 branch p_mouse_24g_addr_load ,blank 
-00fd 67e24909 store 4 ,mem_mouse_24g_addr_last 
-00fe 1a40a404 increase 4 ,regb 
-00ff dfe007cf arg otp_offset_24g_addr_end ,pdata 
-0100 9a467c00 isub regb ,null 
-0101 24210107 nbranch p_mouse_24g_addr_load ,positive 
-0102 1a427e00 copy regb ,pdata 
-0103 202000fa branch p_mouse_read_otp_24g_addr_loop 
+010c 20400116 call p_mouse_read_otp_24g_addr_common 
+010d 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
+010e 203a0119 branch p_mouse_24g_addr_load ,blank 
+010f 67e24909 store 4 ,mem_mouse_24g_addr_last 
+0110 1a40a404 increase 4 ,regb 
+0111 dfe007cf arg otp_offset_24g_addr_end ,pdata 
+0112 9a467c00 isub regb ,null 
+0113 24210119 nbranch p_mouse_24g_addr_load ,positive 
+0114 1a427e00 copy regb ,pdata 
+0115 2020010c branch p_mouse_read_otp_24g_addr_loop 
 
 p_mouse_read_otp_24g_addr_common:
-0104 d8400004 arg 4 ,temp 
-0105 da20490d arg mem_mouse_24g_addr_temp ,rega 
-0106 202068c5 branch otpd_read_data_with_pwr_operation 
+0116 d8400004 arg 4 ,temp 
+0117 da20490d arg mem_mouse_24g_addr_temp ,rega 
+0118 202068c5 branch otpd_read_data_with_pwr_operation 
 
 p_mouse_24g_addr_load:
-0107 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
-0108 67e24640 store 4 ,mem_mouse_24g_addr 
-0109 20600000 rtn 
+0119 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
+011a 67e24640 store 4 ,mem_mouse_24g_addr 
+011b 20600000 rtn 
               org 0x3800
 
 start:
@@ -13474,6 +13498,8 @@
 mouse_24g_attempt_fail_enter_hibernate:
 5deb 6fe44864 fetch mouse_flag_len ,mem_mouse_flag 
 5dec c29e5d80 bbit1 mouse_enable_wheel_wake_up_cancel ,mouse_24g_hibernate_set 
+
+mouse_24g_attempt_fail_enter_hibernate_next:
 5ded 20405efb call mouse_device_led_off 
 5dee 20405da6 call mouse_24g_stop 
 5def 6fe0c76a fetch 1 ,mem_reconn_times 
Index: program/app_mouse.prog
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/program/app_mouse.prog	(revision 390)
+++ /1306ac/branch/mouse/branch/mouse_public/program/app_mouse.prog	(working copy)
@@ -4102,6 +4102,7 @@
 mouse_24g_attempt_fail_enter_hibernate:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit1 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL,mouse_24g_hibernate_set
+mouse_24g_attempt_fail_enter_hibernate_next:
 	call mouse_device_led_off
 	call mouse_24g_stop
 	fetch 1,mem_reconn_times
Index: program/patch.prog
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/program/patch.prog	(revision 390)
+++ /1306ac/branch/mouse/branch/mouse_public/program/patch.prog	(working copy)
@@ -358,6 +358,7 @@
 p_mouse_priority_bb_event:
 	copy regc,pdata
 	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
 	branch mouse_priority_bb_event+2
 
 p_mouse_24g_attempt_success:
@@ -374,6 +375,28 @@
 	fetcht 4,mem_24g_receiver_addr
 	branch mouse_24g_attempt_success+11
 	
+p_mouse_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,p_mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,p_mouse_reconn_dongle_attempt_fail
+	branch mouse_24g_attempt_fail_enter_hibernate_next
+	
+p_mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate_next
+	fetch 1,mem_device_number
+	beq 1,mouse_24g_attempt_fail_enter_hibernate_next		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+p_mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate_next
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate_next
+	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate_next
+	branch mouse_24g_start_auto_pair+1
 	
 p_mouse_bb_event_timer:
 	call mouse_adc_read
