Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/output/eeprom.dat	(revision 350)
+++ /1306ac/branch/mouse/branch/mouse_public/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-fa
-03
+22
+04
 c2
 84
 00
@@ -11,51 +11,55 @@
 c0
 1b
 80
-35
+36
 c0
 1e
 80
-67
+68
 c0
 23
 00
-6e
+78
 c0
 26
 00
-79
+83
 c0
 27
 00
-88
+92
 c0
 29
 00
-9b
+a5
 c0
 2d
 00
-5c
+5d
 c0
 2f
 00
-2d
+2e
 c0
 2f
 80
-31
+32
 c0
 38
 00
-0f
+10
 c0
 71
 80
-62
+63
 20
 20
 3a
 8a
+c0
+30
+80
+6f
 c1
 7f
 80
@@ -75,7 +79,7 @@
 20
 40
 00
-19
+1a
 20
 40
 57
@@ -99,7 +103,7 @@
 20
 40
 00
-4f
+50
 20
 20
 52
@@ -119,11 +123,11 @@
 20
 40
 00
-d4
+de
 20
 40
 00
-ec
+f6
 d8
 40
 00
@@ -155,7 +159,7 @@
 20
 22
 80
-2b
+2c
 20
 40
 5b
@@ -331,7 +335,7 @@
 58
 00
 00
-54
+55
 67
 e1
 45
@@ -391,7 +395,7 @@
 24
 5a
 00
-5a
+5b
 20
 20
 5e
@@ -403,7 +407,7 @@
 c2
 80
 80
-65
+66
 20
 20
 3c
@@ -444,6 +448,42 @@
 20
 5a
 f0
+78
+34
+7c
+00
+20
+40
+3b
+1b
+6f
+e1
+c0
+be
+20
+3a
+74
+ca
+6f
+e0
+c0
+94
+20
+3a
+74
+ca
+6f
+e0
+c8
+99
+24
+7a
+00
+00
+20
+20
+4d
+1c
 1a
 62
 7e
@@ -495,7 +535,7 @@
 c0
 1e
 00
-7c
+86
 20
 20
 59
@@ -603,7 +643,7 @@
 20
 40
 00
-97
+a1
 20
 20
 5a
@@ -635,7 +675,7 @@
 20
 40
 00
-b2
+bc
 df
 e0
 07
@@ -646,8 +686,8 @@
 00
 20
 40
-00
-f8
+01
+02
 6f
 e2
 49
@@ -655,7 +695,7 @@
 20
 3a
 00
-aa
+b4
 67
 e2
 49
@@ -683,7 +723,7 @@
 20
 20
 00
-a0
+aa
 6f
 e2
 49
@@ -727,7 +767,7 @@
 20
 40
 00
-e0
+ea
 6f
 e0
 c9
@@ -735,7 +775,7 @@
 20
 3a
 00
-be
+c8
 67
 e0
 c9
@@ -763,7 +803,7 @@
 20
 20
 00
-b4
+be
 6f
 e0
 c9
@@ -775,7 +815,7 @@
 20
 3a
 00
-c7
+d1
 6f
 e0
 c6
@@ -843,7 +883,7 @@
 20
 22
 80
-c3
+cd
 1a
 40
 a5
@@ -851,7 +891,7 @@
 20
 20
 00
-c3
+cd
 df
 e0
 07
@@ -863,7 +903,7 @@
 20
 40
 00
-e0
+ea
 6f
 e0
 c9
@@ -871,7 +911,7 @@
 20
 3a
 00
-e3
+ed
 67
 e0
 c9
@@ -891,7 +931,7 @@
 24
 21
 00
-e3
+ed
 1a
 42
 7e
@@ -899,7 +939,7 @@
 20
 20
 00
-d6
+e0
 d8
 40
 00
@@ -927,7 +967,7 @@
 20
 3a
 00
-e9
+f3
 1f
 f1
 fe
@@ -935,7 +975,7 @@
 20
 20
 00
-ea
+f4
 1a
 62
 7e
@@ -958,16 +998,16 @@
 00
 20
 40
-00
-f8
+01
+02
 6f
 e2
 49
 0d
 20
 3a
-00
-fb
+01
+05
 67
 e2
 49
@@ -986,8 +1026,8 @@
 00
 24
 21
-00
-fb
+01
+05
 1a
 42
 7e
@@ -995,7 +1035,7 @@
 20
 20
 00
-ee
+f8
 d8
 40
 00
@@ -1020,8 +1060,8 @@
 60
 00
 00
-02
-9f
+b7
+38
 aa
 55
 06
@@ -1556,5 +1596,5 @@
 55
 9b
 9e
-a0
-62
+58
+bf
Index: output/program.lis
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/output/program.lis	(revision 350)
+++ /1306ac/branch/mouse/branch/mouse_public/output/program.lis	(working copy)
@@ -1,347 +1,359 @@
               include "bt_format "
               org 0x0000
 0000 c284000d bbit1 8 ,pf_patch_ext 
-0001 c01b8035 beq patch06_7 ,p_mouse_sensor_set_angle 
-0002 c01e8067 beq patch07_5 ,p_mouse_setgpio_hibernate 
-0003 c023006e beq patch08_6 ,p_mouse_3io6key_check 
-0004 c0260079 beq patch09_4 ,p_mouse_priority_bb_event 
-0005 c0270088 beq patch09_6 ,p_mouse_bb_event_timer 
-0006 c029009b beq patch0a_2 ,p_mouse_store_device_info 
-0007 c02d005c beq patch0b_2 ,p_mouse_24g_package_data 
-0008 c02f002d beq patch0b_6 ,p_mouse_ui_led_off_static 
-0009 c02f8031 beq patch0b_7 ,p_mouse_ui_led_on_static 
-000a c038000f beq patch0e_0 ,p_app_init 
-000b c0718062 beq patch1c_3 ,p_le_enable_phy_by_pdata 
+0001 c01b8036 beq patch06_7 ,p_mouse_sensor_set_angle 
+0002 c01e8068 beq patch07_5 ,p_mouse_setgpio_hibernate 
+0003 c0230078 beq patch08_6 ,p_mouse_3io6key_check 
+0004 c0260083 beq patch09_4 ,p_mouse_priority_bb_event 
+0005 c0270092 beq patch09_6 ,p_mouse_bb_event_timer 
+0006 c02900a5 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 
+000a c0380010 beq patch0e_0 ,p_app_init 
+000b c0718063 beq patch1c_3 ,p_le_enable_phy_by_pdata 
 000c 20203a8a branch assert 
 
 pf_patch_ext:
-000d c17f8000 rtneq patch3f_7 
-000e 20203a8a branch assert 
+000d c030806f beq patch2c_1 ,p_g24_lpm_wait 
+000e c17f8000 rtneq patch3f_7 
+000f 20203a8a branch assert 
 
 p_app_init:
 
 p_mouse_init:
-000f 70808073 jam 0x73 ,core_spid_ctrl 
-0010 20406eb3 call enable_authrom 
-0011 20400019 call p_mouse_setting_config 
-0012 204057a0 call mouse_init_sunt 
-0013 20758000 rtn wake 
-0014 204059bd call mouse_le_name_load 
-0015 2040562e call mouse_dpi_config 
-0016 20405cc5 call mouse_drawing_optima_init 
-0017 2040004f call p_mouse_cb_fuction 
-0018 20205234 branch mouse_init + 8 
+0010 70808073 jam 0x73 ,core_spid_ctrl 
+0011 20406eb3 call enable_authrom 
+0012 2040001a call p_mouse_setting_config 
+0013 204057a0 call mouse_init_sunt 
+0014 20758000 rtn wake 
+0015 204059bd call mouse_le_name_load 
+0016 2040562e call mouse_dpi_config 
+0017 20405cc5 call mouse_drawing_optima_init 
+0018 20400050 call p_mouse_cb_fuction 
+0019 20205234 branch mouse_init + 8 
 
 p_mouse_setting_config:
-0019 20758000 rtn wake 
-001a 2040525e call mouse_setting_config 
-001b c40b8000 rtnbit0 mouse_enable_otp 
+001a 20758000 rtn wake 
+001b 2040525e call mouse_setting_config 
+001c c40b8000 rtnbit0 mouse_enable_otp 
 
 p_mouse_load_otp_info_check:
-001c 204000d4 call p_mouse_read_otp_dpi 
-001d 204000ec call p_mouse_read_otp_24g_addr 
+001d 204000de call p_mouse_read_otp_dpi 
+001e 204000f6 call p_mouse_read_otp_24g_addr 
 
 p_mouse_otp_load_app_initflag:
-001e d8400002 arg 2 ,temp 
-001f dfe007ee arg otp_offset_app_initlag ,pdata 
-0020 da20463d arg mem_store_flag ,rega 
-0021 204068c5 call otpd_read_data_with_pwr_operation 
-0022 6fe1463d fetch 2 ,mem_store_flag 
-0023 d840aa55 arg eeprom_init_flag ,temp 
-0024 98467c00 isub temp ,null 
-0025 2022802b branch p_mouse_load_device_info ,zero 
-0026 20405b76 call mouse_app_initflag_check + 4 
+001f d8400002 arg 2 ,temp 
+0020 dfe007ee arg otp_offset_app_initlag ,pdata 
+0021 da20463d arg mem_store_flag ,rega 
+0022 204068c5 call otpd_read_data_with_pwr_operation 
+0023 6fe1463d fetch 2 ,mem_store_flag 
+0024 d840aa55 arg eeprom_init_flag ,temp 
+0025 98467c00 isub temp ,null 
+0026 2022802c branch p_mouse_load_device_info ,zero 
+0027 20405b76 call mouse_app_initflag_check + 4 
 
 p_mouse_otp_store_app_initflag:
-0027 df200002 arg 2 ,loopcnt 
-0028 da20463d arg mem_store_flag ,rega 
-0029 dfe007ee arg otp_offset_app_initlag ,pdata 
-002a 20206883 branch otp_write 
+0028 df200002 arg 2 ,loopcnt 
+0029 da20463d arg mem_store_flag ,rega 
+002a dfe007ee arg otp_offset_app_initlag ,pdata 
+002b 20206883 branch otp_write 
 
 p_mouse_load_device_info:
-002b 7045e500 jam mode_24g_device ,mem_device_flag 
-002c 20205b81 branch mouse_load_device_info + 1 
+002c 7045e500 jam mode_24g_device ,mem_device_flag 
+002d 20205b81 branch mouse_load_device_info + 1 
 
 p_mouse_ui_led_off_static:
-002d 18427e00 copy temp ,pdata 
-002e 207a0000 rtn blank 
-002f c17f8000 rtneq gpio_disable 
-0030 20205f23 branch mouse_ui_led_off_static + 1 
+002e 18427e00 copy temp ,pdata 
+002f 207a0000 rtn blank 
+0030 c17f8000 rtneq gpio_disable 
+0031 20205f23 branch mouse_ui_led_off_static + 1 
 
 p_mouse_ui_led_on_static:
-0031 18427e00 copy temp ,pdata 
-0032 207a0000 rtn blank 
-0033 c17f8000 rtneq gpio_disable 
-0034 20205f30 branch mouse_ui_led_on_static + 1 
+0032 18427e00 copy temp ,pdata 
+0033 207a0000 rtn blank 
+0034 c17f8000 rtneq gpio_disable 
+0035 20205f30 branch mouse_ui_led_on_static + 1 
 
 p_mouse_sensor_set_angle:
-0035 6fe0c911 fetch 1 ,mem_mouse_ice_sdio_for_sensor_angle 
-0036 203a52c8 branch mouse_sensor_set_angle + 1 ,blank 
-0037 6fe0c5be fetch 1 ,mem_sensor_angle_default 
-0038 67e0c5d5 store 1 ,mem_config_sensor_angle 
-0039 6fe0c5bd fetch 1 ,mem_select_sensor_angle_gpio 
-003a c17f8000 rtneq gpio_disable 
-003b 2040692d call lpm_write_ice_disable 
-003c 6fe0c5bd fetch 1 ,mem_select_sensor_angle_gpio 
-003d d840003e arg gpcfg_output_low ,temp 
-003e 20406bbd call gpio_config_function_int 
-003f 6fe0c5c8 fetch 1 ,mem_mouse_reuse_2ice_gpio 
-0040 d840003e arg gpcfg_output_low ,temp 
-0041 20406bbd call gpio_config_function_int 
-0042 6848c5bc fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-0043 2040547f call mouse_gpio_config_input_pu 
-0044 6848c5bc fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-0045 20406b85 call gpio_get_bit 
-0046 2040d2d2 call mouse_sensor_switch_angle ,true 
-0047 2040547b call mouse_gpio_config_input_pd 
-0048 6848c5bc fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-0049 20406b7c call gpio_config_input 
-004a 20406931 call lpm_write_ice_enable 
+0036 6fe0c911 fetch 1 ,mem_mouse_ice_sdio_for_sensor_angle 
+0037 203a52c8 branch mouse_sensor_set_angle + 1 ,blank 
+0038 6fe0c5be fetch 1 ,mem_sensor_angle_default 
+0039 67e0c5d5 store 1 ,mem_config_sensor_angle 
+003a 6fe0c5bd fetch 1 ,mem_select_sensor_angle_gpio 
+003b c17f8000 rtneq gpio_disable 
+003c 2040692d call lpm_write_ice_disable 
+003d 6fe0c5bd fetch 1 ,mem_select_sensor_angle_gpio 
+003e d840003e arg gpcfg_output_low ,temp 
+003f 20406bbd call gpio_config_function_int 
+0040 6fe0c5c8 fetch 1 ,mem_mouse_reuse_2ice_gpio 
+0041 d840003e arg gpcfg_output_low ,temp 
+0042 20406bbd call gpio_config_function_int 
+0043 6848c5bc fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0044 2040547f call mouse_gpio_config_input_pu 
+0045 6848c5bc fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0046 20406b85 call gpio_get_bit 
+0047 2040d2d2 call mouse_sensor_switch_angle ,true 
+0048 2040547b call mouse_gpio_config_input_pd 
+0049 6848c5bc fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+004a 20406b7c call gpio_config_input 
+004b 20406931 call lpm_write_ice_enable 
 
 p_ice_gpio_set_float:
-004b 6848c5bd fetcht 1 ,mem_select_sensor_angle_gpio 
-004c 20406bae call gpio_set_high_impedance 
-004d 6848c5c8 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
-004e 20206bae branch gpio_set_high_impedance 
+004c 6848c5bd fetcht 1 ,mem_select_sensor_angle_gpio 
+004d 20406bae call gpio_set_high_impedance 
+004e 6848c5c8 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+004f 20206bae branch gpio_set_high_impedance 
 
 p_mouse_cb_fuction:
-004f 58005fad setarg mouse_24g_short_sleep 
-0050 67e14543 store 2 ,mem_cb_24g_transmit_short_sleep 
-0051 58000054 setarg p_mouse_24g_long_sleep 
-0052 67e14545 store 2 ,mem_cb_24g_transmit_long_sleep 
-0053 2020523d branch mouse_cb_fuction + 4 
+0050 58005fad setarg mouse_24g_short_sleep 
+0051 67e14543 store 2 ,mem_cb_24g_transmit_short_sleep 
+0052 58000055 setarg p_mouse_24g_long_sleep 
+0053 67e14545 store 2 ,mem_cb_24g_transmit_long_sleep 
+0054 2020523d branch mouse_cb_fuction + 4 
 
 p_mouse_24g_long_sleep:
-0054 20404d15 call g24_lpm_wait 
-0055 24740000 nrtn user 
-0056 6fe0c863 fetch 1 ,mem_24g_device_led_status 
-0057 247a0000 nrtn blank 
-0058 70490501 jam 1 ,mem_mouse_24g_long_sleep_flag 
-0059 20205fa6 branch mouse_24g_long_sleep + 4 
+0055 20404d15 call g24_lpm_wait 
+0056 24740000 nrtn user 
+0057 6fe0c863 fetch 1 ,mem_24g_device_led_status 
+0058 247a0000 nrtn blank 
+0059 70490501 jam 1 ,mem_mouse_24g_long_sleep_flag 
+005a 20205fa6 branch mouse_24g_long_sleep + 4 
 
 p_mouse_24g_short_sleep_clear_wake:
-005a 204074e0 call clear_wake 
-005b 20203c18 branch lpm_write_gpio_wakeup 
+005b 204074e0 call clear_wake 
+005c 20203c18 branch lpm_write_gpio_wakeup 
 
 p_mouse_24g_package_data:
-005c 2040549b call mouse_motion 
-005d 24740000 nrtn user 
-005e 6fe0c905 fetch 1 ,mem_mouse_24g_long_sleep_flag 
-005f 70490500 jam 0 ,mem_mouse_24g_long_sleep_flag 
-0060 245a005a ncall p_mouse_24g_short_sleep_clear_wake ,blank 
-0061 20205e35 branch mouse_24g_package_data + 4 
+005d 2040549b call mouse_motion 
+005e 24740000 nrtn user 
+005f 6fe0c905 fetch 1 ,mem_mouse_24g_long_sleep_flag 
+0060 70490500 jam 0 ,mem_mouse_24g_long_sleep_flag 
+0061 245a005b ncall p_mouse_24g_short_sleep_clear_wake ,blank 
+0062 20205e35 branch mouse_24g_package_data + 4 
 
 p_le_enable_phy_by_pdata:
-0062 18427e00 copy temp ,pdata 
-0063 c2808065 bbit1 bit_le_2m_phy ,p_le_enable_2m 
-0064 20203ce3 branch le_enable_phy_by_pdata + 3 
+0063 18427e00 copy temp ,pdata 
+0064 c2808066 bbit1 bit_le_2m_phy ,p_le_enable_2m 
+0065 20203ce3 branch le_enable_phy_by_pdata + 3 
 
 p_le_enable_2m:
-0065 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
-0066 20203ce9 branch le_enable_2m 
+0066 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
+0067 20203ce9 branch le_enable_2m 
 
 p_mouse_setgpio_hibernate:
-0067 20405339 call mouse_setgpio_hibernate + 1 
-0068 70807080 jam 0x80 ,0x8070 
-0069 6fe08017 fetch 1 ,mem_gpio_wakeup_low + 1 
-006a 79207e05 set1 5 ,pdata 
-006b 67e08017 store 1 ,mem_gpio_wakeup_low + 1 
-006c 20403c18 call lpm_write_gpio_wakeup 
-006d 20205af0 branch mouse_1io2led_all_off 
+0068 20405339 call mouse_setgpio_hibernate + 1 
+0069 70807080 jam 0x80 ,0x8070 
+006a 6fe08017 fetch 1 ,mem_gpio_wakeup_low + 1 
+006b 79207e05 set1 5 ,pdata 
+006c 67e08017 store 1 ,mem_gpio_wakeup_low + 1 
+006d 20403c18 call lpm_write_gpio_wakeup 
+006e 20205af0 branch mouse_1io2led_all_off 
+
+p_g24_lpm_wait:
+006f 78347c00 enable user 
+0070 20403b1b call lpo_calibration 
+0071 6fe1c0be fetch 3 ,mem_clks_per_lpo 
+0072 203a74ca branch disable_user ,blank 
+0073 6fe0c094 fetch 1 ,mem_lpm_mode 
+0074 203a74ca branch disable_user ,blank 
+0075 6fe0c899 fetch 1 ,mem_sensor_shutdown_flag 
+0076 247a0000 nrtn blank 
+0077 20204d1c branch g24_lpm_wait_next 
 
 p_mouse_3io6key_check:
-006e 1a627e00 copy regc ,pdata 
-006f 67e0c850 store 1 ,mem_mouse_key_status 
-0070 1fe3fe00 lshift pdata ,pdata 
-0071 1fe22400 copy pdata ,regb 
-0072 18422600 copy temp ,regc 
-0073 2040547b call mouse_gpio_config_input_pd 
-0074 1a620400 copy regc ,temp 
-0075 20406b85 call gpio_get_bit 
-0076 7d20a400 nsetflag true ,0 ,regb 
-0077 20405753 call mouse_check_press 
-0078 2020573f branch mouse_check_key_connect_gnd_1 
+0078 1a627e00 copy regc ,pdata 
+0079 67e0c850 store 1 ,mem_mouse_key_status 
+007a 1fe3fe00 lshift pdata ,pdata 
+007b 1fe22400 copy pdata ,regb 
+007c 18422600 copy temp ,regc 
+007d 2040547b call mouse_gpio_config_input_pd 
+007e 1a620400 copy regc ,temp 
+007f 20406b85 call gpio_get_bit 
+0080 7d20a400 nsetflag true ,0 ,regb 
+0081 20405753 call mouse_check_press 
+0082 2020573f branch mouse_check_key_connect_gnd_1 
 
 p_mouse_priority_bb_event:
-0079 1a627e00 copy regc ,pdata 
-007a c01e007c beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-007b 20205914 branch mouse_priority_bb_event + 2 
+0083 1a627e00 copy regc ,pdata 
+0084 c01e0086 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+0085 20205914 branch mouse_priority_bb_event + 2 
 
 p_mouse_24g_attempt_success:
-007c 6fe244da fetch 4 ,mem_24g_addr 
-007d 67e24533 store 4 ,mem_24g_receiver_addr 
-007e 67e24640 store 4 ,mem_mouse_24g_addr 
-007f 20404bce call g24_ch_syncword_crc8_init 
-0080 20405e1b call mouse_device_poweron_led_config 
-0081 20405aa9 call mouse_no_data_timer_init 
-0082 204058c4 call mouse_init_sensor_reset 
-0083 70476800 jam 0 ,mem_mouse_long_mult_flag 
-0084 70454700 jam 0 ,mem_24g_conn_sm 
-0085 70452d00 jam 0 ,mem_24g_reconn_type 
-0086 684a4533 fetcht 4 ,mem_24g_receiver_addr 
-0087 20205e17 branch mouse_24g_attempt_success + 11 
+0086 6fe244da fetch 4 ,mem_24g_addr 
+0087 67e24533 store 4 ,mem_24g_receiver_addr 
+0088 67e24640 store 4 ,mem_mouse_24g_addr 
+0089 20404bce call g24_ch_syncword_crc8_init 
+008a 20405e1b call mouse_device_poweron_led_config 
+008b 20405aa9 call mouse_no_data_timer_init 
+008c 204058c4 call mouse_init_sensor_reset 
+008d 70476800 jam 0 ,mem_mouse_long_mult_flag 
+008e 70454700 jam 0 ,mem_24g_conn_sm 
+008f 70452d00 jam 0 ,mem_24g_reconn_type 
+0090 684a4533 fetcht 4 ,mem_24g_receiver_addr 
+0091 20205e17 branch mouse_24g_attempt_success + 11 
 
 p_mouse_bb_event_timer:
-0088 204053c6 call mouse_adc_read 
-0089 20405f47 call mouse_low_voltage_led_timer 
-008a 20404907 call g24_pair_timeout_timer 
-008b 20404ba5 call g24_reconn_timeout_timer 
-008c 20405d6b call mouse_24g_long_sleep_param_update_timer 
-008d 20405e9a call mouse_device_poweron_timer 
-008e 20405ecb call mouse_dpi_led_blink_delay_timer 
-008f 20405ac1 call mouse_led_multi_timer 
-0090 20405af3 call mouse_logo_led_on_timer 
-0091 2040561c call mouse_dpi_key_check_long_press 
-0092 20405a36 call mouse_bt_discovery_check 
-0093 20405a46 call mouse_commbination_key_process 
-0094 20405a69 call mouse_check_discovery_timeout_timer 
-0095 20400097 call p_mouse_check_direct_timeout_timer 
-0096 20205a2d branch mouse_bb_event_timer + 15 
+0092 204053c6 call mouse_adc_read 
+0093 20405f47 call mouse_low_voltage_led_timer 
+0094 20404907 call g24_pair_timeout_timer 
+0095 20404ba5 call g24_reconn_timeout_timer 
+0096 20405d6b call mouse_24g_long_sleep_param_update_timer 
+0097 20405e9a call mouse_device_poweron_timer 
+0098 20405ecb call mouse_dpi_led_blink_delay_timer 
+0099 20405ac1 call mouse_led_multi_timer 
+009a 20405af3 call mouse_logo_led_on_timer 
+009b 2040561c call mouse_dpi_key_check_long_press 
+009c 20405a36 call mouse_bt_discovery_check 
+009d 20405a46 call mouse_commbination_key_process 
+009e 20405a69 call mouse_check_discovery_timeout_timer 
+009f 204000a1 call p_mouse_check_direct_timeout_timer 
+00a0 20205a2d branch mouse_bb_event_timer + 15 
 
 p_mouse_check_direct_timeout_timer:
-0097 da604831 arg mem_mouse_direct_timer ,regc 
-0098 da405a74 arg mouse_check_direct_timeout ,regb 
-0099 20404dcc call timer_single_step 
-009a 20205a71 branch mouse_check_direct_timeout_timer + 3 
+00a1 da604831 arg mem_mouse_direct_timer ,regc 
+00a2 da405a74 arg mouse_check_direct_timeout ,regb 
+00a3 20404dcc call timer_single_step 
+00a4 20205a71 branch mouse_check_direct_timeout_timer + 3 
 
 p_mouse_store_device_info:
-009b 20405b90 call mouse_store_device_info + 1 
-009c c40b8000 rtnbit0 mouse_enable_otp 
+00a5 20405b90 call mouse_store_device_info + 1 
+00a6 c40b8000 rtnbit0 mouse_enable_otp 
 
 p_mouse_store_otp_device_info:
-009d 204000b2 call p_mouse_otp_store_dpi 
+00a7 204000bc call p_mouse_otp_store_dpi 
 
 p_mouse_otp_store_24g_addr:
-009e dfe00790 arg otp_offset_24g_addr ,pdata 
-009f 1fe22400 copy pdata ,regb 
+00a8 dfe00790 arg otp_offset_24g_addr ,pdata 
+00a9 1fe22400 copy pdata ,regb 
 
 p_mouse_otp_store_24g_addr_loop:
-00a0 204000f8 call p_mouse_read_otp_24g_addr_common 
-00a1 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
-00a2 203a00aa branch p_mouse_24g_addr_store ,blank 
-00a3 67e24909 store 4 ,mem_mouse_24g_addr_last 
-00a4 1a40a404 increase 4 ,regb 
-00a5 dfe007cf arg otp_offset_24g_addr_end ,pdata 
-00a6 9a467c00 isub regb ,null 
-00a7 24610000 nrtn positive 
-00a8 1a427e00 copy regb ,pdata 
-00a9 202000a0 branch p_mouse_otp_store_24g_addr_loop 
+00aa 20400102 call p_mouse_read_otp_24g_addr_common 
+00ab 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
+00ac 203a00b4 branch p_mouse_24g_addr_store ,blank 
+00ad 67e24909 store 4 ,mem_mouse_24g_addr_last 
+00ae 1a40a404 increase 4 ,regb 
+00af dfe007cf arg otp_offset_24g_addr_end ,pdata 
+00b0 9a467c00 isub regb ,null 
+00b1 24610000 nrtn positive 
+00b2 1a427e00 copy regb ,pdata 
+00b3 202000aa branch p_mouse_otp_store_24g_addr_loop 
 
 p_mouse_24g_addr_store:
-00aa 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
-00ab 684a4640 fetcht 4 ,mem_mouse_24g_addr 
-00ac 98467c00 isub temp ,null 
-00ad 20628000 rtn zero 
-00ae df200004 arg 4 ,loopcnt 
-00af da204640 arg mem_mouse_24g_addr ,rega 
-00b0 1a427e00 copy regb ,pdata 
-00b1 20206883 branch otp_write 
+00b4 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
+00b5 684a4640 fetcht 4 ,mem_mouse_24g_addr 
+00b6 98467c00 isub temp ,null 
+00b7 20628000 rtn zero 
+00b8 df200004 arg 4 ,loopcnt 
+00b9 da204640 arg mem_mouse_24g_addr ,rega 
+00ba 1a427e00 copy regb ,pdata 
+00bb 20206883 branch otp_write 
 
 p_mouse_otp_store_dpi:
-00b2 dfe00760 arg otp_offset_dpi ,pdata 
-00b3 1fe22400 copy pdata ,regb 
+00bc dfe00760 arg otp_offset_dpi ,pdata 
+00bd 1fe22400 copy pdata ,regb 
 
 p_mouse_otp_store_dpi_loop:
-00b4 204000e0 call p_mouse_read_otp_dpi_common 
-00b5 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
-00b6 203a00be branch p_mouse_dpi_store ,blank 
-00b7 67e0c906 store 1 ,mem_mouse_dpi_last 
-00b8 1a40a401 increase 1 ,regb 
-00b9 dfe0078f arg otp_offset_dpi_end ,pdata 
-00ba 9a467c00 isub regb ,null 
-00bb 24610000 nrtn positive 
-00bc 1a427e00 copy regb ,pdata 
-00bd 202000b4 branch p_mouse_otp_store_dpi_loop 
+00be 204000ea call p_mouse_read_otp_dpi_common 
+00bf 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
+00c0 203a00c8 branch p_mouse_dpi_store ,blank 
+00c1 67e0c906 store 1 ,mem_mouse_dpi_last 
+00c2 1a40a401 increase 1 ,regb 
+00c3 dfe0078f arg otp_offset_dpi_end ,pdata 
+00c4 9a467c00 isub regb ,null 
+00c5 24610000 nrtn positive 
+00c6 1a427e00 copy regb ,pdata 
+00c7 202000be branch p_mouse_otp_store_dpi_loop 
 
 p_mouse_dpi_store:
-00be 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
-00bf 1fe17ef0 and pdata ,0xf0 ,pdata 
-00c0 203a00c7 branch p_mouse_dpi_store_next ,blank 
-00c1 6fe0c63f fetch 1 ,mem_mouse_dpi 
-00c2 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
+00c8 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
+00c9 1fe17ef0 and pdata ,0xf0 ,pdata 
+00ca 203a00d1 branch p_mouse_dpi_store_next ,blank 
+00cb 6fe0c63f fetch 1 ,mem_mouse_dpi 
+00cc 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
 
 p_mouse_dpi_store_end:
-00c3 df200001 arg 1 ,loopcnt 
-00c4 1a427e00 copy regb ,pdata 
-00c5 da204908 arg mem_mouse_otp_dpi_value ,rega 
-00c6 20206883 branch otp_write 
+00cd df200001 arg 1 ,loopcnt 
+00ce 1a427e00 copy regb ,pdata 
+00cf da204908 arg mem_mouse_otp_dpi_value ,rega 
+00d0 20206883 branch otp_write 
 
 p_mouse_dpi_store_next:
-00c7 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
-00c8 6848c63f fetcht 1 ,mem_mouse_dpi 
-00c9 98467c00 isub temp ,null 
-00ca 20628000 rtn zero 
-00cb 18520400 lshift4 temp ,temp 
-00cc 9840fe00 iadd temp ,pdata 
-00cd 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
-00ce 1a427e00 copy regb ,pdata 
-00cf d8400760 arg otp_offset_dpi ,temp 
-00d0 98467c00 isub temp ,null 
-00d1 202280c3 branch p_mouse_dpi_store_end ,zero 
-00d2 1a40a5ff increase -1 ,regb 
-00d3 202000c3 branch p_mouse_dpi_store_end 
+00d1 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
+00d2 6848c63f fetcht 1 ,mem_mouse_dpi 
+00d3 98467c00 isub temp ,null 
+00d4 20628000 rtn zero 
+00d5 18520400 lshift4 temp ,temp 
+00d6 9840fe00 iadd temp ,pdata 
+00d7 67e0c908 store 1 ,mem_mouse_otp_dpi_value 
+00d8 1a427e00 copy regb ,pdata 
+00d9 d8400760 arg otp_offset_dpi ,temp 
+00da 98467c00 isub temp ,null 
+00db 202280cd branch p_mouse_dpi_store_end ,zero 
+00dc 1a40a5ff increase -1 ,regb 
+00dd 202000cd branch p_mouse_dpi_store_end 
 
 p_mouse_read_otp_dpi:
-00d4 dfe00760 arg otp_offset_dpi ,pdata 
-00d5 1fe22400 copy pdata ,regb 
+00de dfe00760 arg otp_offset_dpi ,pdata 
+00df 1fe22400 copy pdata ,regb 
 
 p_mouse_read_otp_dpi_loop:
-00d6 204000e0 call p_mouse_read_otp_dpi_common 
-00d7 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
-00d8 203a00e3 branch p_mouse_dpi_load ,blank 
-00d9 67e0c906 store 1 ,mem_mouse_dpi_last 
-00da 1a40a401 increase 1 ,regb 
-00db dfe0078f arg otp_offset_dpi_end ,pdata 
-00dc 9a467c00 isub regb ,null 
-00dd 242100e3 nbranch p_mouse_dpi_load ,positive 
-00de 1a427e00 copy regb ,pdata 
-00df 202000d6 branch p_mouse_read_otp_dpi_loop 
+00e0 204000ea call p_mouse_read_otp_dpi_common 
+00e1 6fe0c907 fetch 1 ,mem_mouse_dpi_temp 
+00e2 203a00ed branch p_mouse_dpi_load ,blank 
+00e3 67e0c906 store 1 ,mem_mouse_dpi_last 
+00e4 1a40a401 increase 1 ,regb 
+00e5 dfe0078f arg otp_offset_dpi_end ,pdata 
+00e6 9a467c00 isub regb ,null 
+00e7 242100ed nbranch p_mouse_dpi_load ,positive 
+00e8 1a427e00 copy regb ,pdata 
+00e9 202000e0 branch p_mouse_read_otp_dpi_loop 
 
 p_mouse_read_otp_dpi_common:
-00e0 d8400001 arg 1 ,temp 
-00e1 da204907 arg mem_mouse_dpi_temp ,rega 
-00e2 202068c5 branch otpd_read_data_with_pwr_operation 
+00ea d8400001 arg 1 ,temp 
+00eb da204907 arg mem_mouse_dpi_temp ,rega 
+00ec 202068c5 branch otpd_read_data_with_pwr_operation 
 
 p_mouse_dpi_load:
-00e3 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
-00e4 1fe22600 copy pdata ,regc 
-00e5 1fe17ef0 and pdata ,0xf0 ,pdata 
-00e6 203a00e9 branch p_mouse_dpi_load_next ,blank 
-00e7 1ff1fe00 rshift4 pdata ,pdata 
-00e8 202000ea branch p_mouse_dpi_load_end 
+00ed 6fe0c906 fetch 1 ,mem_mouse_dpi_last 
+00ee 1fe22600 copy pdata ,regc 
+00ef 1fe17ef0 and pdata ,0xf0 ,pdata 
+00f0 203a00f3 branch p_mouse_dpi_load_next ,blank 
+00f1 1ff1fe00 rshift4 pdata ,pdata 
+00f2 202000f4 branch p_mouse_dpi_load_end 
 
 p_mouse_dpi_load_next:
-00e9 1a627e00 copy regc ,pdata 
+00f3 1a627e00 copy regc ,pdata 
 
 p_mouse_dpi_load_end:
-00ea 67e0c63f store 1 ,mem_mouse_dpi 
-00eb 20600000 rtn 
+00f4 67e0c63f store 1 ,mem_mouse_dpi 
+00f5 20600000 rtn 
 
 p_mouse_read_otp_24g_addr:
-00ec dfe00790 arg otp_offset_24g_addr ,pdata 
-00ed 1fe22400 copy pdata ,regb 
+00f6 dfe00790 arg otp_offset_24g_addr ,pdata 
+00f7 1fe22400 copy pdata ,regb 
 
 p_mouse_read_otp_24g_addr_loop:
-00ee 204000f8 call p_mouse_read_otp_24g_addr_common 
-00ef 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
-00f0 203a00fb branch p_mouse_24g_addr_load ,blank 
-00f1 67e24909 store 4 ,mem_mouse_24g_addr_last 
-00f2 1a40a404 increase 4 ,regb 
-00f3 dfe007cf arg otp_offset_24g_addr_end ,pdata 
-00f4 9a467c00 isub regb ,null 
-00f5 242100fb nbranch p_mouse_24g_addr_load ,positive 
-00f6 1a427e00 copy regb ,pdata 
-00f7 202000ee branch p_mouse_read_otp_24g_addr_loop 
+00f8 20400102 call p_mouse_read_otp_24g_addr_common 
+00f9 6fe2490d fetch 4 ,mem_mouse_24g_addr_temp 
+00fa 203a0105 branch p_mouse_24g_addr_load ,blank 
+00fb 67e24909 store 4 ,mem_mouse_24g_addr_last 
+00fc 1a40a404 increase 4 ,regb 
+00fd dfe007cf arg otp_offset_24g_addr_end ,pdata 
+00fe 9a467c00 isub regb ,null 
+00ff 24210105 nbranch p_mouse_24g_addr_load ,positive 
+0100 1a427e00 copy regb ,pdata 
+0101 202000f8 branch p_mouse_read_otp_24g_addr_loop 
 
 p_mouse_read_otp_24g_addr_common:
-00f8 d8400004 arg 4 ,temp 
-00f9 da20490d arg mem_mouse_24g_addr_temp ,rega 
-00fa 202068c5 branch otpd_read_data_with_pwr_operation 
+0102 d8400004 arg 4 ,temp 
+0103 da20490d arg mem_mouse_24g_addr_temp ,rega 
+0104 202068c5 branch otpd_read_data_with_pwr_operation 
 
 p_mouse_24g_addr_load:
-00fb 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
-00fc 67e24640 store 4 ,mem_mouse_24g_addr 
-00fd 20600000 rtn 
+0105 6fe24909 fetch 4 ,mem_mouse_24g_addr_last 
+0106 67e24640 store 4 ,mem_mouse_24g_addr 
+0107 20600000 rtn 
               org 0x3800
 
 start:
@@ -7435,6 +7447,8 @@
 4d19 203a74ca branch disable_user ,blank 
 4d1a 6fe0c094 fetch 1 ,mem_lpm_mode 
 4d1b 203a74ca branch disable_user ,blank 
+
+g24_lpm_wait_next:
 4d1c 6fe0c563 fetch 1 ,mem_24g_transmit_by_interrupt 
 4d1d c000f4ca beq g24_tx_timer_int_enable ,disable_user 
 4d1e 20600000 rtn 
Index: program/g24_protocol_stack/24g_transmitter.prog
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/program/g24_protocol_stack/24g_transmitter.prog	(revision 350)
+++ /1306ac/branch/mouse/branch/mouse_public/program/g24_protocol_stack/24g_transmitter.prog	(working copy)
@@ -290,6 +290,7 @@
 	branch disable_user,blank
 	fetch 1,mem_lpm_mode
 	branch disable_user,blank
+g24_lpm_wait_next:
 	fetch 1,mem_24g_transmit_by_interrupt
 	beq G24_TX_TIMER_INT_ENABLE,disable_user
 	rtn
Index: program/patch.prog
===================================================================
--- /1306ac/branch/mouse/branch/mouse_public/program/patch.prog	(revision 350)
+++ /1306ac/branch/mouse/branch/mouse_public/program/patch.prog	(working copy)
@@ -22,6 +22,7 @@
 ifdef G24_NEW_REVISION
 	beq patch2b_1,p_g24_transmit_no_interrupt
 endif
+	beq patch2c_1,p_g24_lpm_wait
 	rtneq patch3f_7
 	branch assert
 
@@ -325,6 +326,19 @@
 	call lpm_write_gpio_wakeup
 	branch mouse_1io2led_all_off
 
+
+p_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,blank
+	fetch 1,mem_sensor_shutdown_flag
+	nrtn blank
+	branch g24_lpm_wait_next
+
+
 p_mouse_3io6key_check:
 	copy regc,pdata
 	store 1,mem_mouse_key_status
