Index: output/otp.dat
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/output/otp.dat	(revision 3150)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-12
+46
 0d
 c2
 84
@@ -32,7 +32,7 @@
 c0
 0a
 02
-a0
+ad
 c0
 0a
 80
@@ -52,7 +52,7 @@
 c0
 1b
 83
-07
+14
 c0
 1c
 00
@@ -63,8 +63,8 @@
 9d
 c0
 1e
-82
-f9
+83
+06
 c0
 62
 80
@@ -72,11 +72,11 @@
 c0
 6d
 02
-71
+7e
 c0
 6e
 02
-81
+8e
 c0
 7f
 00
@@ -100,47 +100,47 @@
 c0
 01
 01
-9f
+9b
 c0
 03
 01
-bd
+b9
 c0
 1c
 82
-bc
+c9
 c0
 26
 82
-c0
+cd
 c0
 37
 03
-10
+1d
 c0
 37
 83
-2a
+37
 c0
 3a
 83
-34
+41
 c0
 41
 02
-c2
+cf
 c0
 42
 01
-cb
+c7
 c0
 44
 02
-e1
+ee
 c0
 45
 02
-ee
+fb
 c1
 46
 80
@@ -388,11 +388,11 @@
 20
 40
 02
-43
+50
 20
 40
 02
-6e
+7b
 20
 40
 00
@@ -408,7 +408,7 @@
 20
 20
 02
-70
+7d
 20
 75
 80
@@ -956,7 +956,7 @@
 58
 00
 01
-d8
+d4
 67
 e1
 45
@@ -964,7 +964,7 @@
 58
 00
 02
-1a
+1b
 67
 e1
 45
@@ -972,7 +972,7 @@
 58
 00
 02
-1e
+1f
 67
 e1
 45
@@ -1508,7 +1508,7 @@
 c0
 00
 01
-97
+93
 20
 20
 23
@@ -1608,7 +1608,7 @@
 24
 3a
 01
-95
+91
 70
 08
 b5
@@ -1618,22 +1618,6 @@
 7a
 98
 70
-09
-0c
-20
-da
-20
-08
-b5
-18
-00
-24
-32
-20
-20
-7b
-8b
-70
 08
 f8
 00
@@ -1664,7 +1648,7 @@
 c0
 00
 81
-a9
+a5
 c0
 01
 79
@@ -1684,7 +1668,7 @@
 c0
 01
 01
-a6
+a2
 c0
 01
 fa
@@ -1724,7 +1708,7 @@
 c0
 04
 81
-ae
+aa
 c0
 05
 fb
@@ -1748,7 +1732,7 @@
 20
 34
 01
-b8
+b4
 70
 08
 f7
@@ -1844,11 +1828,11 @@
 20
 40
 02
-31
+32
 20
 20
 02
-35
+36
 6f
 e0
 c5
@@ -1868,15 +1852,15 @@
 c2
 83
 81
-d3
+cf
 c2
 83
 01
-d3
+cf
 c2
 82
 81
-d3
+cf
 20
 20
 33
@@ -1908,15 +1892,15 @@
 c2
 83
 81
-e7
+e3
 c2
 83
 01
-f2
+f9
 c2
 82
 81
-dd
+d9
 20
 20
 48
@@ -2001,30 +1985,30 @@
 40
 7c
 da
-20
-20
-02
-08
 6f
 20
 c5
 7d
 1f
-20
-f3
+e0
 ff
-d8
-a0
-46
-df
-d8
-c0
-45
-ea
-20
+ff
+da
 40
-7c
+47
+de
 da
+20
+48
+1e
+20
+40
+7d
+64
+24
+42
+82
+04
 6f
 20
 c5
@@ -2034,41 +2018,41 @@
 ff
 ff
 d8
-a0
+c0
 47
-1e
+de
 d8
-c0
-46
-e0
+a0
+48
+1e
 20
 40
 7c
 da
+20
+20
+33
+be
 6f
 20
 c5
 7d
 1f
-e0
-ff
-ff
-da
-40
-47
-1e
-da
 20
-47
-5e
+f3
+ff
+d8
+a0
+46
+df
+d8
+c0
+45
+ea
 20
 40
-7d
-64
-24
-42
-82
-11
+7c
+da
 6f
 20
 c5
@@ -2078,21 +2062,21 @@
 ff
 ff
 d8
-c0
+a0
 47
 1e
 d8
-a0
-47
-5e
+c0
+46
+e0
 20
 40
 7c
 da
 20
 20
-33
-be
+02
+0d
 70
 47
 9f
@@ -2129,6 +2113,18 @@
 20
 01
 5d
+6f
+e0
+c5
+7d
+1f
+e0
+fe
+02
+67
+e0
+c6
+de
 70
 46
 df
@@ -2139,32 +2135,40 @@
 7d
 1f
 e0
-fe
-01
+ff
+ff
 67
 e0
 c6
-de
+e0
+6f
+20
+c5
+7d
 1f
-e2
-72
-00
+e0
+ff
+ff
 d8
-c0
+a0
 46
-df
+e1
 d8
-a0
-08
-b5
+c0
+47
+1e
 20
 40
 7c
 da
+70
+09
+0c
+26
 20
 20
-01
-5d
+48
+37
 6f
 e0
 c5
@@ -2172,11 +2176,11 @@
 c2
 83
 81
-e7
+e3
 c2
 83
 01
-f2
+f9
 20
 20
 48
@@ -2188,7 +2192,7 @@
 c0
 00
 82
-22
+23
 c0
 01
 48
@@ -2196,7 +2200,7 @@
 20
 20
 02
-22
+23
 6f
 e0
 c6
@@ -2208,7 +2212,7 @@
 20
 20
 02
-25
+26
 6f
 e0
 c6
@@ -2224,7 +2228,7 @@
 c0
 51
 02
-2a
+2b
 20
 60
 00
@@ -2318,6 +2322,10 @@
 7c
 09
 c0
+13
+02
+45
+c0
 10
 fc
 24
@@ -2329,6 +2337,50 @@
 20
 23
 5a
+70
+09
+0c
+00
+6f
+20
+c6
+de
+d8
+c0
+46
+df
+d8
+e0
+00
+02
+da
+20
+07
+59
+62
+31
+0c
+0c
+20
+40
+7b
+d2
+20
+20
+02
+4d
+d8
+a0
+46
+de
+df
+20
+00
+40
+20
+20
+7c
+a1
 20
 75
 80
@@ -2380,7 +2432,7 @@
 20
 40
 02
-60
+6d
 2a
 2f
 fe
@@ -2412,7 +2464,7 @@
 20
 40
 02
-60
+6d
 d8
 a0
 8a
@@ -2440,7 +2492,7 @@
 20
 21
 02
-55
+62
 20
 20
 21
@@ -2544,7 +2596,7 @@
 20
 40
 02
-99
+a6
 70
 8a
 08
@@ -2580,7 +2632,7 @@
 20
 40
 02
-8f
+9c
 6f
 f0
 8a
@@ -2624,7 +2676,7 @@
 20
 40
 02
-99
+a6
 70
 80
 cd
@@ -2684,7 +2736,7 @@
 c3
 02
 82
-9a
+a7
 68
 59
 01
@@ -2720,7 +2772,7 @@
 c0
 08
 02
-b9
+c6
 58
 00
 57
@@ -2764,7 +2816,7 @@
 c0
 08
 02
-b6
+c3
 58
 00
 2b
@@ -2800,7 +2852,7 @@
 20
 20
 02
-b2
+bf
 58
 00
 83
@@ -2812,7 +2864,7 @@
 20
 20
 02
-a7
+b4
 6f
 e0
 c3
@@ -2852,7 +2904,7 @@
 c0
 11
 02
-c8
+d5
 c0
 7f
 b5
@@ -2868,7 +2920,7 @@
 20
 3a
 02
-ce
+db
 6f
 e2
 45
@@ -2892,11 +2944,11 @@
 c0
 00
 82
-d2
+df
 c0
 01
 02
-d9
+e6
 20
 60
 00
@@ -2916,7 +2968,7 @@
 c0
 01
 02
-d7
+e4
 20
 60
 00
@@ -2944,7 +2996,7 @@
 c0
 80
 02
-de
+eb
 20
 60
 00
@@ -3024,7 +3076,7 @@
 20
 40
 02
-f2
+ff
 20
 20
 34
@@ -3176,7 +3228,7 @@
 c5
 13
 83
-1b
+28
 6f
 e0
 c4
@@ -3220,7 +3272,7 @@
 20
 40
 83
-28
+35
 18
 42
 7e
@@ -3308,7 +3360,7 @@
 20
 40
 83
-28
+35
 18
 42
 7e
@@ -3357,8 +3409,8 @@
 60
 00
 00
-d6
-83
+bc
+8f
 aa
 55
 40
@@ -4030,6 +4082,6 @@
 55
 24
 93
-2d
-ba
+df
+f4
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/output/program.lis	(revision 3150)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/output/program.lis	(working copy)
@@ -4,18 +4,18 @@
 0001 c0000023 beq patch00_0 ,p_soft_reset 
 0002 c0010029 beq patch00_2 ,p_main_loop 
 0003 c0088032 beq patch02_1 ,p_set_sync_on 
-0004 c00a02a0 beq patch02_4 ,p_set_lemode 
+0004 c00a02ad beq patch02_4 ,p_set_lemode 
 0005 c00a80ce beq patch02_5 ,p_rf_rx_enable 
 0006 c00c00dc beq patch03_0 ,p_txon 
 0007 c00c8082 beq patch03_1 ,p_set_tx_power 
 0008 c00d0040 beq patch03_2 ,p_initialize_radio_cont 
-0009 c01b8307 beq patch06_7 ,p_dongle_default_init 
+0009 c01b8314 beq patch06_7 ,p_dongle_default_init 
 000a c01c00a1 beq patch07_0 ,p_dongle_read_kb_bind_status 
 000b c01c809d beq patch07_1 ,p_dongle_write_kb_bind_status 
-000c c01e82f9 beq patch07_5 ,p_dongle_usb_dispatch 
+000c c01e8306 beq patch07_5 ,p_dongle_usb_dispatch 
 000d c062809a beq patch18_5 ,p_otp_read_data 
-000e c06d0271 beq patch1b_2 ,p_sadc_calibration 
-000f c06e0281 beq patch1b_4 ,p_enable_adc 
+000e c06d027e beq patch1b_2 ,p_sadc_calibration 
+000f c06e028e beq patch1b_4 ,p_enable_adc 
 0010 c07f00e7 beq patch1f_6 ,p_usb_init 
 0011 c07f8148 beq patch1f_7 ,p_usb_rx 
 0012 c07e80e3 beq patch1f_5 ,p_usb_isr 
@@ -23,17 +23,17 @@
 
 pf_patch_ext:
 0014 c0000171 beq patch20_0 ,p_usb_class_type 
-0015 c001019f beq patch20_2 ,p_usb0_request_get_descriptor 
-0016 c00301bd beq patch20_6 ,p_usb_tx 
-0017 c01c82bc beq patch27_1 ,p_le_parse 
-0018 c02682c0 beq patch29_5 ,p_le_init_adv 
-0019 c0370310 beq patch2d_6 ,p_g24_receive_skip_fec1 
-001a c037832a beq patch2d_7 ,p_g24_receive_skip_end 
-001b c03a8334 beq patch2e_5 ,p_g24_read_len_pid_crc 
-001c c04102c2 beq patch30_2 ,p_g24_bind_data_parse_next 
-001d c04201cb beq patch30_4 ,p_g24_receive_packet_start1 
-001e c04402e1 beq patch31_0 ,p_g24_mode_switch_bind_search 
-001f c04502ee beq patch31_2 ,p_g24_bind_mode_auto 
+0015 c001019b beq patch20_2 ,p_usb0_request_get_descriptor 
+0016 c00301b9 beq patch20_6 ,p_usb_tx 
+0017 c01c82c9 beq patch27_1 ,p_le_parse 
+0018 c02682cd beq patch29_5 ,p_le_init_adv 
+0019 c037031d beq patch2d_6 ,p_g24_receive_skip_fec1 
+001a c0378337 beq patch2d_7 ,p_g24_receive_skip_end 
+001b c03a8341 beq patch2e_5 ,p_g24_read_len_pid_crc 
+001c c04102cf beq patch30_2 ,p_g24_bind_data_parse_next 
+001d c04201c7 beq patch30_4 ,p_g24_receive_packet_start1 
+001e c04402ee beq patch31_0 ,p_g24_mode_switch_bind_search 
+001f c04502fb beq patch31_2 ,p_g24_bind_mode_auto 
 0020 c1468000 rtneq patch31_5 
 0021 c17f8000 rtneq patch3f_7 
 0022 2020235a branch assert 
@@ -105,12 +105,12 @@
 005a 58557474 setarg 0x557474 
 005b 67f18968 store 3 ,0x8968 
 005c 7089606e jam 0x6e ,0x8960 
-005d 20400243 call p_rx_dcoc 
-005e 2040026e call p_rfpll_aac_ghpc 
+005d 20400250 call p_rx_dcoc 
+005e 2040027b call p_rfpll_aac_ghpc 
 005f 20400063 call p_set_xtal_cap 
 0060 7041480c jam system_clk_12m ,mem_system_clk 
 0061 20406f4e call sadc_calibration 
-0062 20200270 branch p_dpll_ring_ibias_calc 
+0062 2020027d branch p_dpll_ring_ibias_calc 
 
 p_set_xtal_cap:
 0063 20758000 rtn wake 
@@ -285,11 +285,11 @@
 00e8 20407932 call usb_init_param 
 00e9 58004997 setarg mem_usb_ep2_config 
 00ea 67e107a9 store 2 ,mem_hidreportdesc_m 
-00eb 580001d8 setarg p_dongle_g24_mouse 
+00eb 580001d4 setarg p_dongle_g24_mouse 
 00ec 67e145e4 store 2 ,mem_cb_24g_data_device1 
-00ed 5800021a setarg p_dongle_g24_keyboard 
+00ed 5800021b setarg p_dongle_g24_keyboard 
 00ee 67e145e6 store 2 ,mem_cb_24g_data_device2 
-00ef 5800021e setarg p_dongle_ackpayload_prep 
+00ef 5800021f setarg p_dongle_ackpayload_prep 
 00f0 67e145e2 store 2 ,mem_cb_24g_ackpayload 
 
 p_usb_init_restart:
@@ -461,7 +461,7 @@
 0172 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
 0173 1fe17e80 and_into 0x80 ,pdata 
 0174 c0400177 beq in_device ,p_usb_in_device 
-0175 c0000197 beq out_device ,p_usb_out_device 
+0175 c0000193 beq out_device ,p_usb_out_device 
 0176 2020235a branch assert 
 
 p_usb_in_device:
@@ -494,562 +494,579 @@
 
 p_usb_get_report_dispose:
 018d 6fe088f8 fetch 1 ,mem_usb0_data_ready_report 
-018e 243a0195 nbranch p_usb_get_report_data_success ,blank 
+018e 243a0191 nbranch p_usb_get_report_data_success ,blank 
 018f 7008b500 jam pc_get_nondata ,mem_usb0_get_report_data 
 0190 20207a98 branch usb_get_report_send_data 
 
-p_usb_get_report_data_self:
-0191 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-0192 da2008b5 arg mem_usb0_get_report_data ,rega 
-0193 18002432 force 0x32 ,regb 
-0194 20207b8b branch usb0_respond 
-
 p_usb_get_report_data_success:
-0195 7008f800 jam 0 ,mem_usb0_data_ready_report 
-0196 20207a98 branch usb_get_report_send_data 
+0191 7008f800 jam 0 ,mem_usb0_data_ready_report 
+0192 20207a98 branch usb_get_report_send_data 
 
 p_usb_out_device:
-0197 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
-0198 1ff1fe00 rshift4 pdata ,pdata 
-0199 1fe37e00 rshift pdata ,pdata 
-019a 1fe17e03 and_into 0x03 ,pdata 
-019b c00079d6 beq standard_req ,usb_out_standard_req 
-019c c00081a9 beq class_req ,p_usb_out_class_req 
-019d c00179e3 beq manufacturer_req ,usb_out_manufacturer_req 
-019e 2020235a branch assert 
+0193 6fe0886d fetch 1 ,mem_usb_setup_bmrequesttype 
+0194 1ff1fe00 rshift4 pdata ,pdata 
+0195 1fe37e00 rshift pdata ,pdata 
+0196 1fe17e03 and_into 0x03 ,pdata 
+0197 c00079d6 beq standard_req ,usb_out_standard_req 
+0198 c00081a5 beq class_req ,p_usb_out_class_req 
+0199 c00179e3 beq manufacturer_req ,usb_out_manufacturer_req 
+019a 2020235a branch assert 
 
 p_usb0_request_get_descriptor:
-019f 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
-01a0 c000fa14 beq dsc_device ,dsc_device_info 
-01a1 c00101a6 beq dsc_config ,p_dsc_config_info 
-01a2 c001fa30 beq dsc_string ,dsc_string_info 
-01a3 c010fa09 beq dsc_hid ,dsc_hid_info 
-01a4 c0117a3e beq dsc_hid_report ,dsc_hid_report_info 
-01a5 202079e4 branch usb0_force_stall 
+019b 6fe08870 fetch 1 ,mem_usb_setup_bvalueh 
+019c c000fa14 beq dsc_device ,dsc_device_info 
+019d c00101a2 beq dsc_config ,p_dsc_config_info 
+019e c001fa30 beq dsc_string ,dsc_string_info 
+019f c010fa09 beq dsc_hid ,dsc_hid_info 
+01a0 c0117a3e beq dsc_hid_report ,dsc_hid_report_info 
+01a1 202079e4 branch usb0_force_stall 
 
 p_dsc_config_info:
-01a6 58004698 setarg mem_config_new 
-01a7 6848c698 fetcht 1 ,mem_config_new 
-01a8 20207a18 branch dsc_info_set_data_len 
+01a2 58004698 setarg mem_config_new 
+01a3 6848c698 fetcht 1 ,mem_config_new 
+01a4 20207a18 branch dsc_info_set_data_len 
 
 p_usb_out_class_req:
-01a9 6fe0886e fetch 1 ,mem_usb_setup_brequest 
-01aa c0057b4b beq set_idle ,usb_set_idle 
-01ab c00481ae beq set_report ,p_usb_set_report 
-01ac c005fb7c beq set_protocol ,usb_set_protocol_req 
-01ad 202079e4 branch usb0_force_stall 
+01a5 6fe0886e fetch 1 ,mem_usb_setup_brequest 
+01a6 c0057b4b beq set_idle ,usb_set_idle 
+01a7 c00481aa beq set_report ,p_usb_set_report 
+01a8 c005fb7c beq set_protocol ,usb_set_protocol_req 
+01a9 202079e4 branch usb0_force_stall 
 
 p_usb_set_report:
-01ae 20003a98 nop 15000 
-01af d8a00875 arg mem_usb0_set_report_data ,contw 
-01b0 20400106 call p_usb_rx_data 
-01b1 203401b8 branch p_usb_set_report_delay ,user 
-01b2 7008f701 jam 1 ,mem_usb0_get_set_report 
-01b3 20407b6e call usb_set_report_resume_judge 
-01b4 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
-01b5 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
-01b6 708c1b03 jam 0x3 ,core_usb_clear_nak 
-01b7 20207b65 branch usb_set_report_next 
+01aa 20003a98 nop 15000 
+01ab d8a00875 arg mem_usb0_set_report_data ,contw 
+01ac 20400106 call p_usb_rx_data 
+01ad 203401b4 branch p_usb_set_report_delay ,user 
+01ae 7008f701 jam 1 ,mem_usb0_get_set_report 
+01af 20407b6e call usb_set_report_resume_judge 
+01b0 6fe1086f fetch 2 ,mem_usb_setup_bvalue 
+01b1 67e108f5 store 2 ,mem_usb_setup_bvalue_temp 
+01b2 708c1b03 jam 0x3 ,core_usb_clear_nak 
+01b3 20207b65 branch usb_set_report_next 
 
 p_usb_set_report_delay:
-01b8 6fe0c696 fetch 1 ,mem_setreport_count 
-01b9 1fe0fe01 pincrease 1 
-01ba 67e0c696 store 1 ,mem_setreport_count 
-01bb 708c1b02 jam 0x2 ,core_usb_clear_nak 
-01bc 20600000 rtn 
+01b4 6fe0c696 fetch 1 ,mem_setreport_count 
+01b5 1fe0fe01 pincrease 1 
+01b6 67e0c696 store 1 ,mem_setreport_count 
+01b7 708c1b02 jam 0x2 ,core_usb_clear_nak 
+01b8 20600000 rtn 
 
 p_usb_tx:
-01bd 6fe0890d fetch 1 ,mem_usb_tx_enable 
-01be 207a0000 rtn blank 
-01bf 6ff08c25 fetch 1 ,core_usb_txbusy 
-01c0 1fe17e0f and_into 0x0f ,pdata 
-01c1 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
-01c2 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
-01c3 203a7c06 branch usb_tx_fifo_release ,blank 
-01c4 6fe08900 fetch 1 ,mem_usb_state 
-01c5 c001fc40 beq usb_sleep ,usb_windows_wakeup 
-01c6 c0817c06 bne usb_connected ,usb_tx_fifo_release 
-01c7 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
-01c8 243a7c06 nbranch usb_tx_fifo_release ,blank 
-01c9 20400231 call p_usb_tx_data_ep1 
-01ca 20200235 branch p_usb_tx_data_ep2 
+01b9 6fe0890d fetch 1 ,mem_usb_tx_enable 
+01ba 207a0000 rtn blank 
+01bb 6ff08c25 fetch 1 ,core_usb_txbusy 
+01bc 1fe17e0f and_into 0x0f ,pdata 
+01bd 243a7c30 nbranch usb_inwake_state_tx_dispose ,blank 
+01be 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
+01bf 203a7c06 branch usb_tx_fifo_release ,blank 
+01c0 6fe08900 fetch 1 ,mem_usb_state 
+01c1 c001fc40 beq usb_sleep ,usb_windows_wakeup 
+01c2 c0817c06 bne usb_connected ,usb_tx_fifo_release 
+01c3 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
+01c4 243a7c06 nbranch usb_tx_fifo_release ,blank 
+01c5 20400232 call p_usb_tx_data_ep1 
+01c6 20200236 branch p_usb_tx_data_ep2 
 
 p_g24_receive_packet_start1:
-01cb 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-01cc c000b3c4 beq datatype_device1 ,g24_data_device1 
-01cd c00133d3 beq datatype_device2 ,g24_data_device2 
-01ce c07fb3c2 beq datatype_attemp ,g24_data_receive_attemp 
-01cf c28381d3 bbit1 datatype_audio ,p_g24_data_receive_heart_authca_audio 
-01d0 c28301d3 bbit1 datatype_authca ,p_g24_data_receive_heart_authca_audio 
-01d1 c28281d3 bbit1 datatype_heart ,p_g24_data_receive_heart_authca_audio 
-01d2 202033be branch g24_rx_interrupt_clear 
+01c7 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+01c8 c000b3c4 beq datatype_device1 ,g24_data_device1 
+01c9 c00133d3 beq datatype_device2 ,g24_data_device2 
+01ca c07fb3c2 beq datatype_attemp ,g24_data_receive_attemp 
+01cb c28381cf bbit1 datatype_audio ,p_g24_data_receive_heart_authca_audio 
+01cc c28301cf bbit1 datatype_authca ,p_g24_data_receive_heart_authca_audio 
+01cd c28281cf bbit1 datatype_heart ,p_g24_data_receive_heart_authca_audio 
+01ce 202033be branch g24_rx_interrupt_clear 
 
 p_g24_data_receive_heart_authca_audio:
-01d3 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-01d4 1fe17e0f and pdata ,0x0f ,pdata 
-01d5 c000b3c4 beq datatype_device1 ,g24_data_device1 
-01d6 c00133d3 beq datatype_device2 ,g24_data_device2 
-01d7 202033be branch g24_rx_interrupt_clear 
+01cf 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+01d0 1fe17e0f and pdata ,0x0f ,pdata 
+01d1 c000b3c4 beq datatype_device1 ,g24_data_device1 
+01d2 c00133d3 beq datatype_device2 ,g24_data_device2 
+01d3 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_mouse:
-01d8 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-01d9 c28381e7 bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
-01da c28301f2 bbit1 datatype_authca ,p_dongle_g24_mouse_authca_data 
-01db c28281dd bbit1 datatype_heart ,p_dongle_g24_mouse_heart_data 
-01dc 202048d4 branch dongle_g24_mouse 
+01d4 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+01d5 c28381e3 bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
+01d6 c28301f9 bbit1 datatype_authca ,p_dongle_g24_mouse_authca_data 
+01d7 c28281d9 bbit1 datatype_heart ,p_dongle_g24_mouse_heart_data 
+01d8 202048d4 branch dongle_g24_mouse 
 
 p_dongle_g24_mouse_heart_data:
-01dd 6fe0c893 fetch 1 ,mem_dongle_usb_ep2_data_flag 
-01de 207a0000 rtn blank 
-01df 70489300 jam 0 ,mem_dongle_usb_ep2_data_flag 
-01e0 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
-01e1 6fe0c895 fetch 1 ,mem_dongle_g24_usb_ep2_ack_data 
-01e2 67e0c894 store 1 ,mem_dongle_usb_ep2_data_len 
-01e3 1fe27200 copy pdata ,loopcnt 
-01e4 d8c04896 arg mem_dongle_g24_usb_ep2_ack_data + 1 ,contr 
-01e5 d8a048d6 arg mem_dongle_24g_ep2_data ,contw 
-01e6 20207cda branch memcpy 
+01d9 6fe0c893 fetch 1 ,mem_dongle_usb_ep2_data_flag 
+01da 207a0000 rtn blank 
+01db 70489300 jam 0 ,mem_dongle_usb_ep2_data_flag 
+01dc 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
+01dd 6fe0c895 fetch 1 ,mem_dongle_g24_usb_ep2_ack_data 
+01de 67e0c894 store 1 ,mem_dongle_usb_ep2_data_len 
+01df 1fe27200 copy pdata ,loopcnt 
+01e0 d8c04896 arg mem_dongle_g24_usb_ep2_ack_data + 1 ,contr 
+01e1 d8a048d6 arg mem_dongle_24g_ep2_data ,contw 
+01e2 20207cda branch memcpy 
 
 p_dongle_g24_mouse_audio_data:
-01e7 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-01e8 1fe0ffff increase -1 ,pdata 
-01e9 d8a047a1 arg mem_usb_audio_data + 3 ,contw 
-01ea d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
-01eb 20407cda call memcpy 
-01ec 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-01ed 1fe0ffff increase -1 ,pdata 
-01ee d8a047de arg mem_usb_audio_data_sta ,contw 
-01ef d8c047a1 arg mem_usb_audio_data + 3 ,contr 
-01f0 20407cda call memcpy 
-01f1 20200208 branch p_dongle_usb_tx_audio_data 
+01e3 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+01e4 1fe0ffff increase -1 ,pdata 
+01e5 d8a047a1 arg mem_usb_audio_data + 3 ,contw 
+01e6 d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
+01e7 20407cda call memcpy 
+01e8 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+01e9 1fe0ffff increase -1 ,pdata 
+01ea d8a047de arg mem_usb_audio_data_sta ,contw 
+01eb d8c047a1 arg mem_usb_audio_data + 3 ,contr 
+01ec 20407cda call memcpy 
+01ed 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+01ee 1fe0ffff increase -1 ,pdata 
+01ef da4047de arg mem_usb_audio_data_sta ,regb 
+01f0 da20481e arg mem_usb_audio_data_last ,rega 
+01f1 20407d64 call compare_loop 
+01f2 24428204 ncall p_dongle_usb_tx_audio_data ,zero 
+01f3 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+01f4 1fe0ffff increase -1 ,pdata 
+01f5 d8c047de arg mem_usb_audio_data_sta ,contr 
+01f6 d8a0481e arg mem_usb_audio_data_last ,contw 
+01f7 20407cda call memcpy 
+01f8 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_mouse_authca_data:
-01f2 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-01f3 1f20f3ff increase -1 ,loopcnt 
-01f4 d8a046df arg mem_usb_authca_data + 1 ,contw 
-01f5 d8c045ea arg mem_24g_rxdata_temp + 2 ,contr 
-01f6 20407cda call memcpy 
-01f7 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-01f8 1fe0ffff increase -1 ,pdata 
-01f9 d8a0471e arg mem_usb_authca_data_sta ,contw 
-01fa d8c046e0 arg mem_usb_authca_data + 2 ,contr 
-01fb 20407cda call memcpy 
-01fc 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-01fd 1fe0ffff increase -1 ,pdata 
-01fe da40471e arg mem_usb_authca_data_sta ,regb 
-01ff da20475e arg mem_usb_authca_data_last ,rega 
-0200 20407d64 call compare_loop 
-0201 24428211 ncall p_dongle_usb_tx_authca_data ,zero 
-0202 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0203 1fe0ffff increase -1 ,pdata 
-0204 d8c0471e arg mem_usb_authca_data_sta ,contr 
-0205 d8a0475e arg mem_usb_authca_data_last ,contw 
-0206 20407cda call memcpy 
-0207 202033be branch g24_rx_interrupt_clear 
+01f9 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+01fa 1f20f3ff increase -1 ,loopcnt 
+01fb d8a046df arg mem_usb_authca_data + 1 ,contw 
+01fc d8c045ea arg mem_24g_rxdata_temp + 2 ,contr 
+01fd 20407cda call memcpy 
+01fe 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+01ff 1fe0ffff increase -1 ,pdata 
+0200 d8a0471e arg mem_usb_authca_data_sta ,contw 
+0201 d8c046e0 arg mem_usb_authca_data + 2 ,contr 
+0202 20407cda call memcpy 
+0203 2020020d branch p_dongle_usb_tx_authca_data 
 
 p_dongle_usb_tx_audio_data:
-0208 70479fa0 jam report_id_audio_data_in ,mem_usb_audio_data + 1 
-0209 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-020a 1fe0ffff increase -1 ,pdata 
-020b 67e0c79e store 1 ,mem_usb_audio_data 
-020c 1fe27200 copy pdata ,loopcnt 
-020d d8c0479f arg mem_usb_audio_data + 1 ,contr 
-020e d8a008b5 arg mem_usb0_get_report_data ,contw 
-020f 20407cda call memcpy 
-0210 2020015d branch p_usb_get_report_enable 
+0204 70479fa0 jam report_id_audio_data_in ,mem_usb_audio_data + 1 
+0205 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0206 1fe0ffff increase -1 ,pdata 
+0207 67e0c79e store 1 ,mem_usb_audio_data 
+0208 1fe27200 copy pdata ,loopcnt 
+0209 d8c0479f arg mem_usb_audio_data + 1 ,contr 
+020a d8a008b5 arg mem_usb0_get_report_data ,contw 
+020b 20407cda call memcpy 
+020c 2020015d branch p_usb_get_report_enable 
 
 p_dongle_usb_tx_authca_data:
-0211 7046dfa3 jam report_id_authca_data_in ,mem_usb_authca_data + 1 
-0212 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0213 1fe0fe01 increase 1 ,pdata 
-0214 67e0c6de store 1 ,mem_usb_authca_data 
-0215 1fe27200 copy pdata ,loopcnt 
-0216 d8c046df arg mem_usb_authca_data + 1 ,contr 
-0217 d8a008b5 arg mem_usb0_get_report_data ,contw 
+020d 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+020e 1fe0fe02 increase 2 ,pdata 
+020f 67e0c6de store 1 ,mem_usb_authca_data 
+0210 7046dfa3 jam report_id_authca_data_in ,mem_usb_authca_data + 1 
+0211 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0212 1fe0ffff increase -1 ,pdata 
+0213 67e0c6e0 store 1 ,mem_usb_authca_data + 2 
+0214 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0215 1fe0ffff increase -1 ,pdata 
+0216 d8a046e1 arg mem_usb_authca_data + 3 ,contw 
+0217 d8c0471e arg mem_usb_authca_data_sta ,contr 
 0218 20407cda call memcpy 
-0219 2020015d branch p_usb_get_report_enable 
+0219 70090c26 jam usb_ep2_authca ,mem_usb_ep2_data 
+021a 20204837 branch dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_keyboard:
-021a 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-021b c28381e7 bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
-021c c28301f2 bbit1 datatype_authca ,p_dongle_g24_mouse_authca_data 
-021d 202048e5 branch dongle_g24_kb 
+021b 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+021c c28381e3 bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
+021d c28301f9 bbit1 datatype_authca ,p_dongle_g24_mouse_authca_data 
+021e 202048e5 branch dongle_g24_kb 
 
 p_dongle_ackpayload_prep:
-021e 6fe0c589 fetch 1 ,mem_24g_data_type 
-021f c0008222 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-0220 c00148b7 beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
-0221 20200222 branch p_dongle_ackpayload_prep_mouse 
+021f 6fe0c589 fetch 1 ,mem_24g_data_type 
+0220 c0008223 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+0221 c00148b7 beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
+0222 20200223 branch p_dongle_ackpayload_prep_mouse 
 
 p_dongle_ackpayload_prep_mouse:
-0222 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-0223 c28048bd bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-0224 20200225 branch p_dongle_ackpayload_prep_end 
+0223 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+0224 c28048bd bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+0225 20200226 branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_end:
-0225 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
-0226 c000c8c8 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
-0227 c001c8cc beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
-0228 c051022a beq report_id_data_out ,p_dongle_ep2_ackpayload_prep 
-0229 20600000 rtn 
+0226 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+0227 c000c8c8 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+0228 c001c8cc beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
+0229 c051022b beq report_id_data_out ,p_dongle_ep2_ackpayload_prep 
+022a 20600000 rtn 
 
 p_dongle_ep2_ackpayload_prep:
-022a 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
-022b 6fe0c894 fetch 1 ,mem_dongle_usb_ep2_data_len 
-022c 67e0c588 store 1 ,mem_24g_datalen 
-022d 1fe27200 copy pdata ,loopcnt 
-022e d8c04895 arg mem_dongle_g24_usb_ep2_ack_data ,contr 
-022f d8a04519 arg mem_24g_txbuf ,contw 
-0230 20207c89 branch memcpy8 
+022b 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
+022c 6fe0c894 fetch 1 ,mem_dongle_usb_ep2_data_len 
+022d 67e0c588 store 1 ,mem_24g_datalen 
+022e 1fe27200 copy pdata ,loopcnt 
+022f d8c04895 arg mem_dongle_g24_usb_ep2_ack_data ,contr 
+0230 d8a04519 arg mem_24g_txbuf ,contw 
+0231 20207c89 branch memcpy8 
 
 p_usb_tx_data_ep1:
-0231 6ff08c25 fetch 1 ,core_usb_txbusy 
-0232 1fe17e0f and_into 0x0f ,pdata 
-0233 247a0000 nrtn blank 
-0234 20207bf0 branch usb_tx_data_ep1 + 2 
+0232 6ff08c25 fetch 1 ,core_usb_txbusy 
+0233 1fe17e0f and_into 0x0f ,pdata 
+0234 247a0000 nrtn blank 
+0235 20207bf0 branch usb_tx_data_ep1 + 2 
 
 p_usb_tx_data_ep2:
-0235 6ff08c25 fetch 1 ,core_usb_txbusy 
-0236 1fe17e0f and_into 0x0f ,pdata 
-0237 247a0000 nrtn blank 
-0238 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0239 c4010000 rtnbit0 2 
-023a 6fe0890d fetch 1 ,mem_usb_tx_enable 
-023b 793ffe02 set0 2 ,pdata 
-023c 67e0890d store 1 ,mem_usb_tx_enable 
-023d 6fe0890c fetch 1 ,mem_usb_ep2_data 
-023e 207a0000 rtn blank 
-023f c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
-0240 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-0241 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-0242 2020235a branch assert 
+0236 6ff08c25 fetch 1 ,core_usb_txbusy 
+0237 1fe17e0f and_into 0x0f ,pdata 
+0238 247a0000 nrtn blank 
+0239 6fe0890d fetch 1 ,mem_usb_tx_enable 
+023a c4010000 rtnbit0 2 
+023b 6fe0890d fetch 1 ,mem_usb_tx_enable 
+023c 793ffe02 set0 2 ,pdata 
+023d 67e0890d store 1 ,mem_usb_tx_enable 
+023e 6fe0890c fetch 1 ,mem_usb_ep2_data 
+023f 207a0000 rtn blank 
+0240 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+0241 c0130245 beq usb_ep2_authca ,p_usb_tx_authca_data 
+0242 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0243 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0244 2020235a branch assert 
+
+p_usb_tx_authca_data:
+0245 70090c00 jam 0 ,mem_usb_ep2_data 
+0246 6f20c6de fetchr loopcnt ,1 ,mem_usb_authca_data 
+0247 d8c046df arg mem_usb_authca_data + 1 ,contr 
+
+p_usb_tx_ep2:
+0248 d8e00002 arg 2 ,queue 
+0249 da200759 arg mem_usb_txbuf2 ,rega 
+024a 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+024b 20407bd2 call usb_tx_buf 
+024c 2020024d branch p_usb_release_authca_buf 
+
+p_usb_release_authca_buf:
+024d d8a046de arg mem_usb_authca_data ,contw 
+024e df200040 arg 64 ,loopcnt 
+024f 20207ca1 branch clear_mem 
 
 p_rx_dcoc:
-0243 20758000 rtn wake 
-0244 20402160 call set_sync_on 
-0245 d8400027 arg 39 ,temp 
-0246 2040216f call set_freq_rx 
-0247 204021a6 call rf_rx_enable 
-0248 708a257f jam 0x7f ,0x8a25 
-0249 708a301a jam 0x1a ,0x8a30 
-024a 708a3178 jam 0x78 ,0x8a31 
-024b 708a8fb2 jam 0xb2 ,0x8a8f 
-024c 708ac200 jam 0 ,0x8ac2 
-024d 708ac300 jam 0 ,0x8ac3 
-024e d8e00006 arg 6 ,queue 
-024f 20400260 call p_rx_dcoc_avg 
-0250 2a2ffe0d isolate1 13 ,rega 
-0251 2040211d call qset_start 
-0252 2a4ffe0d isolate1 13 ,regb 
-0253 2040211e call qset_p 
-0254 d8e00005 arg 5 ,queue 
+0250 20758000 rtn wake 
+0251 20402160 call set_sync_on 
+0252 d8400027 arg 39 ,temp 
+0253 2040216f call set_freq_rx 
+0254 204021a6 call rf_rx_enable 
+0255 708a257f jam 0x7f ,0x8a25 
+0256 708a301a jam 0x1a ,0x8a30 
+0257 708a3178 jam 0x78 ,0x8a31 
+0258 708a8fb2 jam 0xb2 ,0x8a8f 
+0259 708ac200 jam 0 ,0x8ac2 
+025a 708ac300 jam 0 ,0x8ac3 
+025b d8e00006 arg 6 ,queue 
+025c 2040026d call p_rx_dcoc_avg 
+025d 2a2ffe0d isolate1 13 ,rega 
+025e 2040211d call qset_start 
+025f 2a4ffe0d isolate1 13 ,regb 
+0260 2040211e call qset_p 
+0261 d8e00005 arg 5 ,queue 
 
 p_rx_dcoc_loop2:
-0255 2040211c call qset1_p 
-0256 2040211e call qset_p 
-0257 20400260 call p_rx_dcoc_avg 
-0258 d8a08ac2 arg 0x8ac2 ,contw 
-0259 1a31fe00 rshift4 rega ,pdata 
-025a 20402117 call qsetxor 
-025b 1a51fe00 rshift4 regb ,pdata 
-025c 20402117 call qsetxor 
-025d 18e08fff increase -1 ,queue 
-025e 20210255 branch p_rx_dcoc_loop2 ,positive 
-025f 2020214f branch rx_dcoc_loop2 + 10 
+0262 2040211c call qset1_p 
+0263 2040211e call qset_p 
+0264 2040026d call p_rx_dcoc_avg 
+0265 d8a08ac2 arg 0x8ac2 ,contw 
+0266 1a31fe00 rshift4 rega ,pdata 
+0267 20402117 call qsetxor 
+0268 1a51fe00 rshift4 regb ,pdata 
+0269 20402117 call qsetxor 
+026a 18e08fff increase -1 ,queue 
+026b 20210262 branch p_rx_dcoc_loop2 ,positive 
+026c 2020214f branch rx_dcoc_loop2 + 10 
 
 p_rx_dcoc_avg:
-0260 2000003c nop 60 
-0261 58000f00 setarg mem_dcoc_buf 
-0262 67f10982 store 2 ,0x8982 
-0263 58000ff0 setarg mem_dcoc_buf_end 
-0264 67f10984 store 2 ,0x8984 
-0265 70898109 jam 0x9 ,0x8981 
-0266 70898103 jam 0x3 ,0x8981 
-0267 70898006 jam 0x6 ,0x8980 
-0268 2000003c nop 60 
-0269 da200000 arg 0 ,rega 
-026a da400000 arg 0 ,regb 
-026b df200010 arg 16 ,loopcnt 
-026c d8c00f00 arg mem_dcoc_buf ,contr 
-026d 2020212d branch rx_dcoc_loop 
+026d 2000003c nop 60 
+026e 58000f00 setarg mem_dcoc_buf 
+026f 67f10982 store 2 ,0x8982 
+0270 58000ff0 setarg mem_dcoc_buf_end 
+0271 67f10984 store 2 ,0x8984 
+0272 70898109 jam 0x9 ,0x8981 
+0273 70898103 jam 0x3 ,0x8981 
+0274 70898006 jam 0x6 ,0x8980 
+0275 2000003c nop 60 
+0276 da200000 arg 0 ,rega 
+0277 da400000 arg 0 ,regb 
+0278 df200010 arg 16 ,loopcnt 
+0279 d8c00f00 arg mem_dcoc_buf ,contr 
+027a 2020212d branch rx_dcoc_loop 
 
 p_rfpll_aac_ghpc:
-026e 20758000 rtn wake 
-026f 20202272 branch rfpll_aac_ghpc + 1 
+027b 20758000 rtn wake 
+027c 20202272 branch rfpll_aac_ghpc + 1 
 
 p_dpll_ring_ibias_calc:
-0270 20600000 rtn 
+027d 20600000 rtn 
 
 p_sadc_calibration:
-0271 20758000 rtn wake 
-0272 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0273 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-0274 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0275 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-0276 67f080cd store 1 ,core_sadc_clkdiv 
-0277 20000bb8 nop 3000 
-0278 20400299 call p_sadc_read 
-0279 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-027a 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-027b df200008 arg 8 ,loopcnt 
-027c 20406f58 call sadc_cal_read + 1 
-027d 6fe0c419 fetch 1 ,mem_spi_write_addr 
-027e 67e0c433 store 1 ,mem_adc_cal_c7 
-027f 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0280 20600000 rtn 
+027e 20758000 rtn wake 
+027f 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0280 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+0281 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0282 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0283 67f080cd store 1 ,core_sadc_clkdiv 
+0284 20000bb8 nop 3000 
+0285 204002a6 call p_sadc_read 
+0286 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0287 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+0288 df200008 arg 8 ,loopcnt 
+0289 20406f58 call sadc_cal_read + 1 
+028a 6fe0c419 fetch 1 ,mem_spi_write_addr 
+028b 67e0c433 store 1 ,mem_adc_cal_c7 
+028c 6240c419 storer regb ,1 ,mem_spi_write_addr 
+028d 20600000 rtn 
 
 p_enable_adc:
-0281 2040028f call p_sadc_cal_write 
-0282 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-0283 793ffe07 set0 7 ,pdata 
-0284 67f08a09 store 1 ,core_gpadc_cfg1 
-0285 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0286 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-0287 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0288 20406f90 call sadc_channel 
-0289 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-028a 67f080cd store 1 ,core_sadc_clkdiv 
-028b 20000bb8 nop 3000 
-028c 20400299 call p_sadc_read 
-028d 7080cd00 jam 0 ,core_sadc_clkdiv 
-028e 20206fa1 branch sadc_dma 
+028e 2040029c call p_sadc_cal_write 
+028f 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+0290 793ffe07 set0 7 ,pdata 
+0291 67f08a09 store 1 ,core_gpadc_cfg1 
+0292 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0293 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0294 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0295 20406f90 call sadc_channel 
+0296 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0297 67f080cd store 1 ,core_sadc_clkdiv 
+0298 20000bb8 nop 3000 
+0299 204002a6 call p_sadc_read 
+029a 7080cd00 jam 0 ,core_sadc_clkdiv 
+029b 20206fa1 branch sadc_dma 
 
 p_sadc_cal_write:
-028f 6ff080cc fetch 1 ,core_sadc_ctrl 
-0290 79207e01 set1 1 ,pdata 
-0291 67f080cc store 1 ,core_sadc_ctrl 
-0292 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0293 6fe0c433 fetch 1 ,mem_adc_cal_c7 
-0294 67e0c419 store 1 ,mem_spi_write_addr 
-0295 df200008 arg 8 ,loopcnt 
-0296 20406f67 call sadc_cal_write + 4 
-0297 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0298 20600000 rtn 
+029c 6ff080cc fetch 1 ,core_sadc_ctrl 
+029d 79207e01 set1 1 ,pdata 
+029e 67f080cc store 1 ,core_sadc_ctrl 
+029f 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+02a0 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+02a1 67e0c419 store 1 ,mem_spi_write_addr 
+02a2 df200008 arg 8 ,loopcnt 
+02a3 20406f67 call sadc_cal_write + 4 
+02a4 6240c419 storer regb ,1 ,mem_spi_write_addr 
+02a5 20600000 rtn 
 
 p_sadc_read:
-0299 7080cc03 jam 0x03 ,core_sadc_ctrl 
+02a6 7080cc03 jam 0x03 ,core_sadc_ctrl 
 
 p_sadc_read_wait:
-029a 6ff08129 fetch 1 ,core_perf_status 
-029b c302829a bbit0 saradc_done ,p_sadc_read_wait 
-029c 68590164 fetcht 2 ,core_sadc_data 
-029d 6049440a storet 2 ,mem_adc_current_value 
-029e 7080cc00 jam 0x00 ,core_sadc_ctrl 
-029f 20600000 rtn 
+02a7 6ff08129 fetch 1 ,core_perf_status 
+02a8 c30282a7 bbit0 saradc_done ,p_sadc_read_wait 
+02a9 68590164 fetcht 2 ,core_sadc_data 
+02aa 6049440a storet 2 ,mem_adc_current_value 
+02ab 7080cc00 jam 0x00 ,core_sadc_ctrl 
+02ac 20600000 rtn 
 
 p_set_lemode:
-02a0 708a8211 jam 0x11 ,0x8a82 
-02a1 708a8d12 jam 0x12 ,0x8a8d 
-02a2 708a8e0a jam 0x0a ,0x8a8e 
-02a3 6fe0c099 fetch 1 ,mem_fcomp_div 
-02a4 c00802b9 beq xtal_16m ,p_set_lemode_2m_16m 
-02a5 58005762 setarg 0x5762 
-02a6 67f10907 store 2 ,0x8907 
+02ad 708a8211 jam 0x11 ,0x8a82 
+02ae 708a8d12 jam 0x12 ,0x8a8d 
+02af 708a8e0a jam 0x0a ,0x8a8e 
+02b0 6fe0c099 fetch 1 ,mem_fcomp_div 
+02b1 c00802c6 beq xtal_16m ,p_set_lemode_2m_16m 
+02b2 58005762 setarg 0x5762 
+02b3 67f10907 store 2 ,0x8907 
 
 p_set_lemode_2m:
-02a7 70890103 jam 3 ,0x8901 
-02a8 70893003 jam 3 ,0x8930 
-02a9 c6168000 rtnmark1 mark_ble_2m 
-02aa 70890101 jam 1 ,0x8901 
-02ab 708a8207 jam 0x07 ,0x8a82 
-02ac 708a8d44 jam 0x44 ,0x8a8d 
-02ad 708a8e0a jam 0x0a ,0x8a8e 
-02ae 6fe0c099 fetch 1 ,mem_fcomp_div 
-02af c00802b6 beq xtal_16m ,p_set_lemode_1m_16m 
-02b0 58002bb1 setarg 0x2bb1 
-02b1 67f10907 store 2 ,0x8907 
+02b4 70890103 jam 3 ,0x8901 
+02b5 70893003 jam 3 ,0x8930 
+02b6 c6168000 rtnmark1 mark_ble_2m 
+02b7 70890101 jam 1 ,0x8901 
+02b8 708a8207 jam 0x07 ,0x8a82 
+02b9 708a8d44 jam 0x44 ,0x8a8d 
+02ba 708a8e0a jam 0x0a ,0x8a8e 
+02bb 6fe0c099 fetch 1 ,mem_fcomp_div 
+02bc c00802c3 beq xtal_16m ,p_set_lemode_1m_16m 
+02bd 58002bb1 setarg 0x2bb1 
+02be 67f10907 store 2 ,0x8907 
 
 p_set_lemode_1m:
-02b2 c6978000 rtnmark0 mark_ble_lr 
-02b3 70893024 jam 0x24 ,0x8930 
-02b4 70890105 jam 5 ,0x8901 
-02b5 20600000 rtn 
+02bf c6978000 rtnmark0 mark_ble_lr 
+02c0 70893024 jam 0x24 ,0x8930 
+02c1 70890105 jam 5 ,0x8901 
+02c2 20600000 rtn 
 
 p_set_lemode_1m_16m:
-02b6 58004189 setarg 0x4189 
-02b7 67f10907 store 2 ,0x8907 
-02b8 202002b2 branch p_set_lemode_1m 
+02c3 58004189 setarg 0x4189 
+02c4 67f10907 store 2 ,0x8907 
+02c5 202002bf branch p_set_lemode_1m 
 
 p_set_lemode_2m_16m:
-02b9 58008312 setarg 0x8312 
-02ba 67f10907 store 2 ,0x8907 
-02bb 202002a7 branch p_set_lemode_2m 
+02c6 58008312 setarg 0x8312 
+02c7 67f10907 store 2 ,0x8907 
+02c8 202002b4 branch p_set_lemode_2m 
 
 p_le_parse:
-02bc 6fe0c334 fetch 1 ,mem_le_packet_llid 
-02bd c1000000 rtneq llid_reserved 
-02be c001b04a beq llid_le_ll ,le_parse_ll 
-02bf 202028e1 branch le_parse_l2cap 
+02c9 6fe0c334 fetch 1 ,mem_le_packet_llid 
+02ca c1000000 rtneq llid_reserved 
+02cb c001b04a beq llid_le_ll ,le_parse_ll 
+02cc 202028e1 branch le_parse_l2cap 
 
 p_le_init_adv:
-02c0 793f8030 set0 mark_ble_crc_fail ,mark 
-02c1 20202af6 branch le_init_adv + 1 
+02cd 793f8030 set0 mark_ble_crc_fail ,mark 
+02ce 20202af6 branch le_init_adv + 1 
 
 p_g24_bind_data_parse_next:
-02c2 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-02c3 c0553329 beq datatype_bind ,g24_bind_first_step 
-02c4 c02ab33a beq datatype_config ,g24_bind_second_step 
-02c5 c01102c8 beq datatype_ok ,p_g24_bind_third_step 
-02c6 c07fb59b beq datatype_attemp ,g24_data_attemp 
-02c7 20600000 rtn 
+02cf 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+02d0 c0553329 beq datatype_bind ,g24_bind_first_step 
+02d1 c02ab33a beq datatype_config ,g24_bind_second_step 
+02d2 c01102d5 beq datatype_ok ,p_g24_bind_third_step 
+02d3 c07fb59b beq datatype_attemp ,g24_data_attemp 
+02d4 20600000 rtn 
 
 p_g24_bind_third_step:
-02c8 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-02c9 203a02ce branch p_g24_bind_third_step_skip ,blank 
-02ca 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
-02cb 684a462c fetcht 4 ,mem_24g_transmitter_addr 
-02cc 98467c00 isub temp ,null 
-02cd 24628000 nrtn zero 
+02d5 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+02d6 203a02db branch p_g24_bind_third_step_skip ,blank 
+02d7 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+02d8 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+02d9 98467c00 isub temp ,null 
+02da 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-02ce 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-02cf c00082d2 beq datatype_device1 ,p_g24_bind_third_step_device1 
-02d0 c00102d9 beq datatype_device2 ,p_g24_bind_third_step_device2 
-02d1 20600000 rtn 
+02db 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+02dc c00082df beq datatype_device1 ,p_g24_bind_third_step_device1 
+02dd c00102e6 beq datatype_device2 ,p_g24_bind_third_step_device2 
+02de 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-02d2 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-02d3 247a0000 nrtn blank 
-02d4 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-02d5 c00102d7 beq 2 ,p_g24_bind_dvc1_step_success 
-02d6 20600000 rtn 
+02df 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+02e0 247a0000 nrtn blank 
+02e1 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+02e2 c00102e4 beq 2 ,p_g24_bind_dvc1_step_success 
+02e3 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-02d7 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-02d8 2020336b branch g24_bind_dvc1_step_success + 1 
+02e4 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+02e5 2020336b branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-02d9 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-02da 247a0000 nrtn blank 
-02db 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-02dc c08002de bne 0 ,p_g24_bind_dvc2_step_success 
-02dd 20600000 rtn 
+02e6 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+02e7 247a0000 nrtn blank 
+02e8 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+02e9 c08002eb bne 0 ,p_g24_bind_dvc2_step_success 
+02ea 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-02de 7045df01 jam 1 ,mem_24g_device2_bind_disable 
-02df 20403393 call g24_binding_dvc2_living 
-02e0 20203378 branch g24_bind_dvc2_step_success + 1 
+02eb 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+02ec 20403393 call g24_binding_dvc2_living 
+02ed 20203378 branch g24_bind_dvc2_step_success + 1 
 
 p_g24_mode_switch_bind_search:
-02e1 6fe0c616 fetch 1 ,mem_24g_work_mode 
-02e2 c1000000 rtneq dongle_work 
-02e3 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
-02e4 247a0000 nrtn blank 
-02e5 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-02e6 247a0000 nrtn blank 
-02e7 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
-02e8 207a0000 rtn blank 
-02e9 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-02ea c1800000 rtnne 0 
-02eb 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-02ec c1800000 rtnne 0 
-02ed 20203436 branch g24_mode_switch_bind_search + 9 
+02ee 6fe0c616 fetch 1 ,mem_24g_work_mode 
+02ef c1000000 rtneq dongle_work 
+02f0 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+02f1 247a0000 nrtn blank 
+02f2 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+02f3 247a0000 nrtn blank 
+02f4 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+02f5 207a0000 rtn blank 
+02f6 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+02f7 c1800000 rtnne 0 
+02f8 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+02f9 c1800000 rtnne 0 
+02fa 20203436 branch g24_mode_switch_bind_search + 9 
 
 p_g24_bind_mode_auto:
-02ee 6fe0c616 fetch 1 ,mem_24g_work_mode 
-02ef c1808000 rtnne dongle_bind 
-02f0 204002f2 call p_g24_bind_init 
-02f1 2020346d branch g24_bind_mode_auto + 4 
+02fb 6fe0c616 fetch 1 ,mem_24g_work_mode 
+02fc c1808000 rtnne dongle_bind 
+02fd 204002ff call p_g24_bind_init 
+02fe 2020346d branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-02f2 6fe0c615 fetch 1 ,mem_24g_mode_init 
-02f3 c3808000 rtnbit1 dongle_bind 
-02f4 79207e01 set1 dongle_bind ,pdata 
-02f5 67e0c615 store 1 ,mem_24g_mode_init 
-02f6 58000000 setarg 0 
-02f7 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
-02f8 20203307 branch g24_bind_init + 8 
+02ff 6fe0c615 fetch 1 ,mem_24g_mode_init 
+0300 c3808000 rtnbit1 dongle_bind 
+0301 79207e01 set1 dongle_bind ,pdata 
+0302 67e0c615 store 1 ,mem_24g_mode_init 
+0303 58000000 setarg 0 
+0304 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+0305 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-02f9 70804300 jam 0 ,0x8043 
-02fa 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-02fb 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-02fc 20407906 call usb_isr 
-02fd 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-02fe 207a0000 rtn blank 
-02ff 7008f700 jam 0 ,mem_usb0_get_set_report 
-0300 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
-0301 d84002a4 arg pc_set_report ,temp 
-0302 98467c00 isub temp ,null 
-0303 24628000 nrtn zero 
-0304 20200159 branch p_dongle_usb_data_received_analysis 
+0306 70804300 jam 0 ,0x8043 
+0307 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+0308 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+0309 20407906 call usb_isr 
+030a 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+030b 207a0000 rtn blank 
+030c 7008f700 jam 0 ,mem_usb0_get_set_report 
+030d 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+030e d84002a4 arg pc_set_report ,temp 
+030f 98467c00 isub temp ,null 
+0310 24628000 nrtn zero 
+0311 20200159 branch p_dongle_usb_data_received_analysis 
 
 p_wdt_kick:
-0305 58000010 setarg 16 
-0306 202070c8 branch wdt_init_config 
+0312 58000010 setarg 16 
+0313 202070c8 branch wdt_init_config 
 
 p_dongle_default_init:
-0307 204047c3 call dongle_default_init + 1 
-0308 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
-0309 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
-030a 7045ca00 jam off ,mem_24g_disable_fec1 
-030b 20403281 call g24_enable_1m 
-030c 6fe0c669 fetch 1 ,mem_dg_sys_config 
-030d c4000000 rtnbit0 dg_enable_new_revision 
-030e 7045ca01 jam on ,mem_24g_disable_fec1 
-030f 20203284 branch g24_enable_2m 
+0314 204047c3 call dongle_default_init + 1 
+0315 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
+0316 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+0317 7045ca00 jam off ,mem_24g_disable_fec1 
+0318 20403281 call g24_enable_1m 
+0319 6fe0c669 fetch 1 ,mem_dg_sys_config 
+031a c4000000 rtnbit0 dg_enable_new_revision 
+031b 7045ca01 jam on ,mem_24g_disable_fec1 
+031c 20203284 branch g24_enable_2m 
 
 p_g24_receive_skip_fec1:
-0310 7858fc00 disable user7 
-0311 280ffe2f isolate1 mark_ble_lr ,mark 
-0312 2040b16f call g24_lr_receive_pdu_len ,true 
-0313 2038b18a branch g24_lr_len_error ,user7 
-0314 2040317d call g24_receive_byte 
-0315 67e0c4f7 store 1 ,mem_24g_rxbuf 
-0316 c513831b bmark1 mark_24g_rxmode ,p_g24_receive_skip 
-0317 6fe0c4f7 fetch 1 ,mem_24g_rxbuf 
-0318 6848c589 fetcht 1 ,mem_24g_data_type 
-0319 a8400e00 icompare bits_data ,temp 
-031a 2420b18c nbranch g24_type_error ,true 
+031d 7858fc00 disable user7 
+031e 280ffe2f isolate1 mark_ble_lr ,mark 
+031f 2040b16f call g24_lr_receive_pdu_len ,true 
+0320 2038b18a branch g24_lr_len_error ,user7 
+0321 2040317d call g24_receive_byte 
+0322 67e0c4f7 store 1 ,mem_24g_rxbuf 
+0323 c5138328 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
+0324 6fe0c4f7 fetch 1 ,mem_24g_rxbuf 
+0325 6848c589 fetcht 1 ,mem_24g_data_type 
+0326 a8400e00 icompare bits_data ,temp 
+0327 2420b18c nbranch g24_type_error ,true 
 
 p_g24_receive_skip:
-031b 2040317d call g24_receive_byte 
-031c 280ffe2f isolate1 mark_ble_lr ,mark 
-031d 2040b178 call g24_lr_receive_payload_len ,true 
-031e e7e08005 istore 1 ,contw 
-031f 1fe90400 rshift3 pdata ,temp 
-0320 2feffe00 isolate1 0 ,pdata 
-0321 20408328 call p_g24_receive_payload_len_ext ,true 
-0322 18427e00 copy temp ,pdata 
-0323 1fe67c3f sub pdata ,0x3f ,null 
-0324 2421318e nbranch g24_len_over_error ,positive 
-0325 1fe27200 copy pdata ,loopcnt 
-0326 2022b154 branch g24rx_nopayload ,zero 
-0327 20203151 branch g24rx_loop 
+0328 2040317d call g24_receive_byte 
+0329 280ffe2f isolate1 mark_ble_lr ,mark 
+032a 2040b178 call g24_lr_receive_payload_len ,true 
+032b e7e08005 istore 1 ,contw 
+032c 1fe90400 rshift3 pdata ,temp 
+032d 2feffe00 isolate1 0 ,pdata 
+032e 20408335 call p_g24_receive_payload_len_ext ,true 
+032f 18427e00 copy temp ,pdata 
+0330 1fe67c3f sub pdata ,0x3f ,null 
+0331 2421318e nbranch g24_len_over_error ,positive 
+0332 1fe27200 copy pdata ,loopcnt 
+0333 2022b154 branch g24rx_nopayload ,zero 
+0334 20203151 branch g24rx_loop 
 
 p_g24_receive_payload_len_ext:
-0328 79200405 set1 5 ,temp 
-0329 20600000 rtn 
+0335 79200405 set1 5 ,temp 
+0336 20600000 rtn 
 
 p_g24_receive_skip_end:
-032a 6fe0c669 fetch 1 ,mem_dg_sys_config 
-032b c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
-032c 7837fc00 enable user3 
-032d 20000018 nop 24 
-032e 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-032f 79207e00 set1 bit_ack_24g ,pdata 
-0330 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
-0331 204033a5 call g24_ackpayload_prep 
-0332 204031e5 call g24_transmit_prep 
-0333 20203195 branch g24_transmit 
+0337 6fe0c669 fetch 1 ,mem_dg_sys_config 
+0338 c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
+0339 7837fc00 enable user3 
+033a 20000018 nop 24 
+033b 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+033c 79207e00 set1 bit_ack_24g ,pdata 
+033d 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
+033e 204033a5 call g24_ackpayload_prep 
+033f 204031e5 call g24_transmit_prep 
+0340 20203195 branch g24_transmit 
 
 p_g24_read_len_pid_crc:
-0334 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-0335 1fe90400 rshift3 pdata ,temp 
-0336 2feffe00 isolate1 0 ,pdata 
-0337 20408328 call p_g24_receive_payload_len_ext ,true 
-0338 18427e00 copy temp ,pdata 
-0339 67e0c57d store 1 ,mem_24g_rxdata_length 
-033a 1fe0fe01 increase 1 ,pdata 
-033b d8c044f8 arg mem_24g_rxbuf + 1 ,contr 
-033c 98c08c00 iadd contr ,contr 
-033d efe18006 ifetch 3 ,contr 
-033e 67e1c580 store 3 ,mem_24g_sta_crc 
-033f 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-0340 1fe37e00 rshift pdata ,pdata 
-0341 1fe17e03 and pdata ,0x03 ,pdata 
-0342 67e0c586 store 1 ,mem_24g_sta_pid 
-0343 20600000 rtn 
+0341 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+0342 1fe90400 rshift3 pdata ,temp 
+0343 2feffe00 isolate1 0 ,pdata 
+0344 20408335 call p_g24_receive_payload_len_ext ,true 
+0345 18427e00 copy temp ,pdata 
+0346 67e0c57d store 1 ,mem_24g_rxdata_length 
+0347 1fe0fe01 increase 1 ,pdata 
+0348 d8c044f8 arg mem_24g_rxbuf + 1 ,contr 
+0349 98c08c00 iadd contr ,contr 
+034a efe18006 ifetch 3 ,contr 
+034b 67e1c580 store 3 ,mem_24g_sta_crc 
+034c 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+034d 1fe37e00 rshift pdata ,pdata 
+034e 1fe17e03 and pdata ,0x03 ,pdata 
+034f 67e0c586 store 1 ,mem_24g_sta_pid 
+0350 20600000 rtn 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/program/patch.prog	(revision 3150)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/program/patch.prog	(working copy)
@@ -519,13 +519,6 @@
 	branch usb_get_report_send_data
 
 
-p_usb_get_report_data_self:
-	jam USB_EP2_MS,mem_usb_ep2_data
-	arg mem_usb0_get_report_data,rega
-	force 0x32,regb
-	branch usb0_respond
-
-
 p_usb_get_report_data_success:
 	jam 0,mem_usb0_data_ready_report
 	branch usb_get_report_send_data
@@ -638,19 +631,18 @@
 	arg mem_usb_audio_data_sta,contw
 	arg mem_usb_audio_data+3,contr
 	call memcpy
-	branch p_dongle_usb_tx_audio_data
-	// fetchr loopcnt,1,mem_24g_rxdata_length
-	// increase -1,pdata
-	// arg mem_usb_audio_data_sta,regb
-	// arg mem_usb_audio_data_last,rega
-	// call compare_loop
-	// ncall p_dongle_usb_tx_audio_data,zero
-	// fetchr loopcnt,1,mem_24g_rxdata_length
-	// increase -1,pdata
-	// arg mem_usb_audio_data_sta,contr
-	// arg mem_usb_audio_data_last,contw
-	// call memcpy
-	// branch g24_rx_interrupt_clear
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,pdata
+	arg mem_usb_audio_data_sta,regb
+	arg mem_usb_audio_data_last,rega
+	call compare_loop
+	ncall p_dongle_usb_tx_audio_data,zero
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,pdata
+	arg mem_usb_audio_data_sta,contr
+	arg mem_usb_audio_data_last,contw
+	call memcpy
+	branch g24_rx_interrupt_clear
 
 p_dongle_g24_mouse_authca_data:
 	fetchr loopcnt,1,mem_24g_rxdata_length
@@ -663,18 +655,19 @@
 	arg mem_usb_authca_data_sta,contw
 	arg mem_usb_authca_data+2,contr
 	call memcpy
-	fetchr loopcnt,1,mem_24g_rxdata_length
-	increase -1,pdata
-	arg mem_usb_authca_data_sta,regb
-	arg mem_usb_authca_data_last,rega
-	call compare_loop
-	ncall p_dongle_usb_tx_authca_data,zero
-	fetchr loopcnt,1,mem_24g_rxdata_length
-	increase -1,pdata
-	arg mem_usb_authca_data_sta,contr
-	arg mem_usb_authca_data_last,contw
-	call memcpy
-	branch g24_rx_interrupt_clear
+	branch p_dongle_usb_tx_authca_data
+	// fetchr loopcnt,1,mem_24g_rxdata_length
+	// increase -1,pdata
+	// arg mem_usb_authca_data_sta,regb
+	// arg mem_usb_authca_data_last,rega
+	// call compare_loop
+	// ncall p_dongle_usb_tx_authca_data,zero
+	// fetchr loopcnt,1,mem_24g_rxdata_length
+	// increase -1,pdata
+	// arg mem_usb_authca_data_sta,contr
+	// arg mem_usb_authca_data_last,contw
+	// call memcpy
+	// branch g24_rx_interrupt_clear
 
 p_dongle_usb_tx_audio_data:	// all length 1B + IN_DATA_ID 1B + payload length 1B + payload N*B
 	jam REPORT_ID_AUDIO_DATA_IN,mem_usb_audio_data+1	//mem_usb_audio_data 03 41 02 00
@@ -686,16 +679,30 @@
 	arg mem_usb0_get_report_data,contw					//mem_usb0_get_report_data a1 02 02 00
 	call memcpy
 	branch p_usb_get_report_enable
+
+
 p_dongle_usb_tx_authca_data:
-	jam REPORT_ID_AUTHCA_DATA_IN,mem_usb_authca_data+1
 	fetch 1,mem_24g_rxdata_length
-	increase 1,pdata
+	increase 2,pdata
 	store 1,mem_usb_authca_data
-	copy pdata,loopcnt
-	arg mem_usb_authca_data+1,contr
-	arg mem_usb0_get_report_data,contw
+	jam REPORT_ID_AUTHCA_DATA_IN,mem_usb_authca_data+1	//handle + length + data
+	fetch 1,mem_24g_rxdata_length
+	increase -1,pdata
+	store 1,mem_usb_authca_data+2
+
+	fetchr loopcnt,1,mem_24g_rxdata_length
+	increase -1,pdata
+	arg mem_usb_authca_data+3,contw
+	arg mem_usb_authca_data_sta,contr
 	call memcpy
-	branch p_usb_get_report_enable
+
+	jam USB_EP2_AUTHCA,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+	// copy pdata,loopcnt
+	// arg mem_usb_authca_data+1,contr
+	// arg mem_usb0_get_report_data,contw
+	// call memcpy
+	// branch p_usb_get_report_enable
 	//branch p_usb_get_report_data_self
 p_dongle_g24_keyboard:
 	fetch 1,mem_24g_rxdata_temp+2
@@ -745,10 +752,28 @@
 	fetch 1,mem_usb_ep2_data
 	rtn blank
 	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_AUTHCA,p_usb_tx_authca_data
 	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
 	beq USB_EP2_SYSTEMKEY,usb_tx_kb_systemkey_data
 	branch assert
 
+p_usb_tx_authca_data:
+	jam 0,mem_usb_ep2_data
+	fetchr loopcnt,1,mem_usb_authca_data
+	arg mem_usb_authca_data+1,contr
+p_usb_tx_ep2:
+	arg 2,queue
+	arg mem_usb_txbuf2,rega
+	storer rega,2,core_usb_tx_saddr2
+	call usb_tx_buf
+	branch p_usb_release_authca_buf
+
+p_usb_release_authca_buf:
+	arg mem_usb_authca_data,contw
+	arg 64,loopcnt
+	branch clear_mem
+
+
 p_rx_dcoc:
 	rtn wake
 	call set_sync_on
