Index: format/app_dongle.format
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/format/app_dongle.format	(revision 3299)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/format/app_dongle.format	(working copy)
@@ -57,9 +57,9 @@
 65 mem_24g_rxdata_temp_new
 65 mem_24g_txbuf_new
 69 mem_24g_txpayload_new
-10 mem_usb_protocol_data
-10 mem_usb_protocol_data_sta
-10 mem_usb_protocol_data_last
+65 mem_usb_protocol_data
+65 mem_usb_protocol_data_sta
+65 mem_usb_protocol_data_last
 )
 (
 0xA0 REPORT_ID_AUDIO_DATA_IN
Index: output/memmap.format
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/output/memmap.format	(revision 3299)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/output/memmap.format	(working copy)
@@ -1510,8 +1510,8 @@
 0x4a86 mem_24g_txbuf_new
 0x4ac7 mem_24g_txpayload_new
 0x4b0c mem_usb_protocol_data
-0x4b16 mem_usb_protocol_data_sta
-0x4b20 mem_usb_protocol_data_last
+0x4b4d mem_usb_protocol_data_sta
+0x4b8e mem_usb_protocol_data_last
 0x45d3 mem_rssi_hex_received
 0x45d4 mem_24g_pair_sm
 0x45d5 mem_24g_pair_no_ack
Index: output/otp.dat
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/output/otp.dat	(revision 3299)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/output/otp.dat	(working copy)
@@ -828,7 +828,7 @@
 20
 20
 03
-39
+3a
 6f
 e0
 c6
@@ -1632,7 +1632,7 @@
 58
 00
 03
-1d
+1e
 67
 e1
 45
@@ -1640,7 +1640,7 @@
 58
 00
 03
-32
+33
 67
 e1
 45
@@ -2516,11 +2516,11 @@
 20
 40
 03
-46
+47
 20
 20
 03
-4a
+4b
 70
 4a
 44
@@ -2832,7 +2832,7 @@
 d8
 a0
 4b
-16
+4d
 d8
 c0
 4b
@@ -2852,11 +2852,11 @@
 da
 40
 4b
-16
+4d
 da
 20
 4b
-20
+8e
 20
 40
 7d
@@ -2876,11 +2876,11 @@
 d8
 c0
 4b
-16
+4d
 d8
 a0
 4b
-20
+8e
 20
 40
 7c
@@ -2952,7 +2952,7 @@
 24
 42
 83
-06
+07
 6f
 20
 c5
@@ -3040,7 +3040,7 @@
 24
 42
 83
-10
+11
 6f
 20
 c5
@@ -3069,6 +3069,14 @@
 20
 02
 b3
+58
+00
+00
+40
+67
+e0
+cb
+0c
 70
 4b
 0d
@@ -3081,10 +3089,6 @@
 e0
 ff
 ff
-67
-e0
-cb
-0c
 1f
 e2
 72
@@ -3092,11 +3096,11 @@
 d8
 c0
 4b
-0f
+0e
 d8
 a0
 4b
-16
+4d
 20
 40
 7c
@@ -3216,7 +3220,7 @@
 20
 20
 03
-21
+22
 6f
 e0
 ca
@@ -3224,15 +3228,15 @@
 c0
 00
 03
-26
+27
 c0
 01
 03
-2c
+2d
 c0
 01
 83
-2f
+30
 20
 20
 33
@@ -3292,7 +3296,7 @@
 c0
 00
 83
-36
+37
 c0
 01
 00
@@ -3300,7 +3304,7 @@
 20
 20
 03
-36
+37
 6f
 e0
 c6
@@ -3312,7 +3316,7 @@
 20
 20
 03
-39
+3a
 6f
 e0
 c6
@@ -3328,7 +3332,7 @@
 c0
 51
 03
-3e
+3f
 20
 60
 00
@@ -3428,7 +3432,7 @@
 c0
 13
 03
-5b
+5c
 c0
 10
 fc
@@ -3440,11 +3444,11 @@
 c0
 12
 03
-66
+67
 c0
 11
 83
-71
+72
 20
 20
 23
@@ -3480,7 +3484,7 @@
 20
 20
 03
-63
+64
 d8
 a0
 46
@@ -3524,7 +3528,7 @@
 20
 20
 03
-6e
+6f
 d8
 a0
 47
@@ -3545,10 +3549,6 @@
 20
 cb
 0c
-1f
-20
-f2
-01
 d8
 c0
 4b
@@ -3580,7 +3580,7 @@
 df
 20
 00
-0a
+41
 20
 20
 7c
@@ -4817,8 +4817,8 @@
 60
 00
 00
-c1
-24
+8a
+22
 aa
 55
 40
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/output/program.lis	(revision 3299)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/output/program.lis	(working copy)
@@ -271,7 +271,7 @@
 p_dongle_ackpayload_prep_keyboard:
 00c9 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
 00ca c28080cc bbit1 1 ,p_dongle_pc_sleep_ackpayload_prep_keyboard 
-00cb 20200339 branch p_dongle_ackpayload_prep_end 
+00cb 2020033a branch p_dongle_ackpayload_prep_end 
 
 p_dongle_pc_sleep_ackpayload_prep_keyboard:
 00cc 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
@@ -520,9 +520,9 @@
 0191 67e107a9 store 2 ,mem_hidreportdesc_m 
 0192 580002a4 setarg p_dongle_g24_mouse 
 0193 67e145e4 store 2 ,mem_cb_24g_data_device1 
-0194 5800031d setarg p_dongle_g24_keyboard 
+0194 5800031e setarg p_dongle_g24_keyboard 
 0195 67e145e6 store 2 ,mem_cb_24g_data_device2 
-0196 58000332 setarg p_dongle_ackpayload_prep 
+0196 58000333 setarg p_dongle_ackpayload_prep 
 0197 67e145e2 store 2 ,mem_cb_24g_ackpayload 
 
 p_usb_init_restart:
@@ -805,8 +805,8 @@
 026e c0817c06 bne usb_connected ,usb_tx_fifo_release 
 026f 6fe08902 fetch 1 ,mem_usb_clear_remote_wakeup 
 0270 243a7c06 nbranch usb_tx_fifo_release ,blank 
-0271 20400346 call p_usb_tx_data_ep1 
-0272 2020034a branch p_usb_tx_data_ep2 
+0271 20400347 call p_usb_tx_data_ep1 
+0272 2020034b branch p_usb_tx_data_ep2 
 
 p_g24_receive_packet_start1:
 0273 704a4400 jam 0 ,mem_24g_ackpayload_enable_temp 
@@ -908,19 +908,19 @@
 02bd 20407cda call memcpy 
 02be 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 02bf 1fe0ffff increase -1 ,pdata 
-02c0 d8a04b16 arg mem_usb_protocol_data_sta ,contw 
+02c0 d8a04b4d arg mem_usb_protocol_data_sta ,contw 
 02c1 d8c04b0e arg mem_usb_protocol_data + 2 ,contr 
 02c2 20407cda call memcpy 
 02c3 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 02c4 1fe0ffff increase -1 ,pdata 
-02c5 da404b16 arg mem_usb_protocol_data_sta ,regb 
-02c6 da204b20 arg mem_usb_protocol_data_last ,rega 
+02c5 da404b4d arg mem_usb_protocol_data_sta ,regb 
+02c6 da204b8e arg mem_usb_protocol_data_last ,rega 
 02c7 20407d64 call compare_loop 
 02c8 244282fc ncall p_dongle_usb_tx_protocol_data ,zero 
 02c9 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 02ca 1fe0ffff increase -1 ,pdata 
-02cb d8c04b16 arg mem_usb_protocol_data_sta ,contr 
-02cc d8a04b20 arg mem_usb_protocol_data_last ,contw 
+02cb d8c04b4d arg mem_usb_protocol_data_sta ,contr 
+02cc d8a04b8e arg mem_usb_protocol_data_last ,contw 
 02cd 20407cda call memcpy 
 02ce 202033be branch g24_rx_interrupt_clear 
 
@@ -940,7 +940,7 @@
 02db da4047e1 arg mem_usb_audio_data_sta ,regb 
 02dc da204821 arg mem_usb_audio_data_last ,rega 
 02dd 20407d64 call compare_loop 
-02de 24428306 ncall p_dongle_usb_tx_audio_data ,zero 
+02de 24428307 ncall p_dongle_usb_tx_audio_data ,zero 
 02df 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 02e0 1fe0ffff increase -1 ,pdata 
 02e1 d8c047e1 arg mem_usb_audio_data_sta ,contr 
@@ -964,7 +964,7 @@
 02f1 da40471f arg mem_usb_authca_data_sta ,regb 
 02f2 da204760 arg mem_usb_authca_data_last ,rega 
 02f3 20407d64 call compare_loop 
-02f4 24428310 ncall p_dongle_usb_tx_authca_data ,zero 
+02f4 24428311 ncall p_dongle_usb_tx_authca_data ,zero 
 02f5 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
 02f6 1fe0ffff increase -1 ,pdata 
 02f7 d8c0471f arg mem_usb_authca_data_sta ,contr 
@@ -974,166 +974,166 @@
 02fb 202002b3 branch p_dongle_g24_mouse_heart_data 
 
 p_dongle_usb_tx_protocol_data:
-02fc 704b0da1 jam report_id_data_in ,mem_usb_protocol_data + 1 
-02fd 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-02fe 1fe0ffff increase -1 ,pdata 
-02ff 67e0cb0c store 1 ,mem_usb_protocol_data 
-0300 1fe27200 copy pdata ,loopcnt 
-0301 d8c04b0f arg mem_usb_protocol_data + 3 ,contr 
-0302 d8a04b16 arg mem_usb_protocol_data_sta ,contw 
-0303 20407cda call memcpy 
-0304 70090c23 jam usb_ep2_protocol ,mem_usb_ep2_data 
-0305 20204837 branch dongle_usb_tx_enable_ep2 
+02fc 58000040 setarg 0x40 
+02fd 67e0cb0c store 1 ,mem_usb_protocol_data 
+02fe 704b0da1 jam report_id_data_in ,mem_usb_protocol_data + 1 
+02ff 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0300 1fe0ffff increase -1 ,pdata 
+0301 1fe27200 copy pdata ,loopcnt 
+0302 d8c04b0e arg mem_usb_protocol_data + 2 ,contr 
+0303 d8a04b4d arg mem_usb_protocol_data_sta ,contw 
+0304 20407cda call memcpy 
+0305 70090c23 jam usb_ep2_protocol ,mem_usb_ep2_data 
+0306 20204837 branch dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_tx_audio_data:
-0306 7047a2a0 jam report_id_audio_data_in ,mem_usb_audio_data + 1 
-0307 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0308 1fe0ffff increase -1 ,pdata 
-0309 67e0c7a1 store 1 ,mem_usb_audio_data 
-030a 1fe27200 copy pdata ,loopcnt 
-030b d8c047a4 arg mem_usb_audio_data + 3 ,contr 
-030c d8a047e1 arg mem_usb_audio_data_sta ,contw 
-030d 20407cda call memcpy 
-030e 70090c24 jam usb_ep2_audio ,mem_usb_ep2_data 
-030f 20204837 branch dongle_usb_tx_enable_ep2 
+0307 7047a2a0 jam report_id_audio_data_in ,mem_usb_audio_data + 1 
+0308 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0309 1fe0ffff increase -1 ,pdata 
+030a 67e0c7a1 store 1 ,mem_usb_audio_data 
+030b 1fe27200 copy pdata ,loopcnt 
+030c d8c047a4 arg mem_usb_audio_data + 3 ,contr 
+030d d8a047e1 arg mem_usb_audio_data_sta ,contw 
+030e 20407cda call memcpy 
+030f 70090c24 jam usb_ep2_audio ,mem_usb_ep2_data 
+0310 20204837 branch dongle_usb_tx_enable_ep2 
 
 p_dongle_usb_tx_authca_data:
-0310 58000040 setarg 0x40 
-0311 67e0c6de store 1 ,mem_usb_authca_data 
-0312 7046dfa3 jam report_id_authca_data_in ,mem_usb_authca_data + 1 
-0313 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0314 1fe0ffff increase -1 ,pdata 
-0315 67e0c6e0 store 1 ,mem_usb_authca_data + 2 
-0316 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
-0317 1fe0ffff increase -1 ,pdata 
-0318 d8a046e1 arg mem_usb_authca_data + 3 ,contw 
-0319 d8c0471f arg mem_usb_authca_data_sta ,contr 
-031a 20407cda call memcpy 
-031b 70090c26 jam usb_ep2_authca ,mem_usb_ep2_data 
-031c 20204837 branch dongle_usb_tx_enable_ep2 
+0311 58000040 setarg 0x40 
+0312 67e0c6de store 1 ,mem_usb_authca_data 
+0313 7046dfa3 jam report_id_authca_data_in ,mem_usb_authca_data + 1 
+0314 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0315 1fe0ffff increase -1 ,pdata 
+0316 67e0c6e0 store 1 ,mem_usb_authca_data + 2 
+0317 6f20c57d fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0318 1fe0ffff increase -1 ,pdata 
+0319 d8a046e1 arg mem_usb_authca_data + 3 ,contw 
+031a d8c0471f arg mem_usb_authca_data_sta ,contr 
+031b 20407cda call memcpy 
+031c 70090c26 jam usb_ep2_authca ,mem_usb_ep2_data 
+031d 20204837 branch dongle_usb_tx_enable_ep2 
 
 p_dongle_g24_keyboard:
-031d 6fe0ca47 fetch 1 ,mem_24g_rxdata_temp_new + 2 
-031e c28382cf bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
-031f c28302e5 bbit1 datatype_authca ,p_dongle_g24_mouse_authca_data 
-0320 20200321 branch p_dongle_g24_kb 
+031e 6fe0ca47 fetch 1 ,mem_24g_rxdata_temp_new + 2 
+031f c28382cf bbit1 datatype_audio ,p_dongle_g24_mouse_audio_data 
+0320 c28302e5 bbit1 datatype_authca ,p_dongle_g24_mouse_authca_data 
+0321 20200322 branch p_dongle_g24_kb 
 
 p_dongle_g24_kb:
-0321 6fe0ca48 fetch 1 ,mem_24g_rxdata_temp_new + 3 
-0322 c0000326 beq 0 ,p_dongle_g24_kb_type0 
-0323 c001032c beq 2 ,p_dongle_g24_kb_type2 
-0324 c001832f beq 3 ,p_dongle_g24_kb_type3 
-0325 202033be branch g24_rx_interrupt_clear 
+0322 6fe0ca48 fetch 1 ,mem_24g_rxdata_temp_new + 3 
+0323 c0000327 beq 0 ,p_dongle_g24_kb_type0 
+0324 c001032d beq 2 ,p_dongle_g24_kb_type2 
+0325 c0018330 beq 3 ,p_dongle_g24_kb_type3 
+0326 202033be branch g24_rx_interrupt_clear 
 
 p_dongle_g24_kb_type0:
-0326 6fe0ca4a fetch 1 ,mem_24g_rxdata_temp_new + 5 
-0327 67e0c611 store 1 ,mem_24g_ackpayload_enable 
-0328 704a4a00 jam 0 ,mem_24g_rxdata_temp_new + 5 
-0329 d8a00923 arg mem_usb_kb_data ,contw 
-032a d8c04a49 arg mem_24g_rxdata_temp_new + 4 ,contr 
-032b 202048ef branch dongle_g24_kb_type0 + 5 
+0327 6fe0ca4a fetch 1 ,mem_24g_rxdata_temp_new + 5 
+0328 67e0c611 store 1 ,mem_24g_ackpayload_enable 
+0329 704a4a00 jam 0 ,mem_24g_rxdata_temp_new + 5 
+032a d8a00923 arg mem_usb_kb_data ,contw 
+032b d8c04a49 arg mem_24g_rxdata_temp_new + 4 ,contr 
+032c 202048ef branch dongle_g24_kb_type0 + 5 
 
 p_dongle_g24_kb_type2:
-032c d8a00943 arg mem_usb_kb_system ,contw 
-032d d8c04a48 arg mem_24g_rxdata_temp_new + 3 ,contr 
-032e 2020491f branch dongle_g24_kb_type2 + 2 
+032d d8a00943 arg mem_usb_kb_system ,contw 
+032e d8c04a48 arg mem_24g_rxdata_temp_new + 3 ,contr 
+032f 2020491f branch dongle_g24_kb_type2 + 2 
 
 p_dongle_g24_kb_type3:
-032f d8a00933 arg mem_usb_kb_multikey ,contw 
-0330 d8c04a48 arg mem_24g_rxdata_temp_new + 3 ,contr 
-0331 20204907 branch dongle_g24_kb_type3 + 2 
+0330 d8a00933 arg mem_usb_kb_multikey ,contw 
+0331 d8c04a48 arg mem_24g_rxdata_temp_new + 3 ,contr 
+0332 20204907 branch dongle_g24_kb_type3 + 2 
 
 p_dongle_ackpayload_prep:
-0332 6fe0c589 fetch 1 ,mem_24g_data_type 
-0333 c0008336 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-0334 c00100c9 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
-0335 20200336 branch p_dongle_ackpayload_prep_mouse 
+0333 6fe0c589 fetch 1 ,mem_24g_data_type 
+0334 c0008337 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+0335 c00100c9 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+0336 20200337 branch p_dongle_ackpayload_prep_mouse 
 
 p_dongle_ackpayload_prep_mouse:
-0336 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
-0337 c28000bb bbit1 0 ,p_dongle_pc_sleep_ackpayload_prep_mouse 
-0338 20200339 branch p_dongle_ackpayload_prep_end 
+0337 6fe0c693 fetch 1 ,mem_dg_pc_sleep_flag 
+0338 c28000bb bbit1 0 ,p_dongle_pc_sleep_ackpayload_prep_mouse 
+0339 2020033a branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_end:
-0339 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
-033a c00080b3 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-033b c00180c2 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-033c c051033e beq report_id_data_out ,p_dongle_ep2_ackpayload_prep 
-033d 20600000 rtn 
+033a 6fe0c611 fetch 1 ,mem_24g_ackpayload_enable 
+033b c00080b3 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
+033c c00180c2 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+033d c051033f beq report_id_data_out ,p_dongle_ep2_ackpayload_prep 
+033e 20600000 rtn 
 
 p_dongle_ep2_ackpayload_prep:
-033e 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
-033f 704a44a2 jam report_id_data_out ,mem_24g_ackpayload_enable_temp 
-0340 6fe0c897 fetch 1 ,mem_dongle_usb_ep2_data_len 
-0341 67e0c588 store 1 ,mem_24g_datalen 
-0342 1fe27200 copy pdata ,loopcnt 
-0343 d8c04898 arg mem_dongle_g24_usb_ep2_ack_data ,contr 
-0344 d8a04a86 arg mem_24g_txbuf_new ,contw 
-0345 20207cda branch memcpy 
+033f 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
+0340 704a44a2 jam report_id_data_out ,mem_24g_ackpayload_enable_temp 
+0341 6fe0c897 fetch 1 ,mem_dongle_usb_ep2_data_len 
+0342 67e0c588 store 1 ,mem_24g_datalen 
+0343 1fe27200 copy pdata ,loopcnt 
+0344 d8c04898 arg mem_dongle_g24_usb_ep2_ack_data ,contr 
+0345 d8a04a86 arg mem_24g_txbuf_new ,contw 
+0346 20207cda branch memcpy 
 
 p_usb_tx_data_ep1:
-0346 6ff08c25 fetch 1 ,core_usb_txbusy 
-0347 1fe17e0f and_into 0x0f ,pdata 
-0348 247a0000 nrtn blank 
-0349 20207bf0 branch usb_tx_data_ep1 + 2 
+0347 6ff08c25 fetch 1 ,core_usb_txbusy 
+0348 1fe17e0f and_into 0x0f ,pdata 
+0349 247a0000 nrtn blank 
+034a 20207bf0 branch usb_tx_data_ep1 + 2 
 
 p_usb_tx_data_ep2:
-034a 6ff08c25 fetch 1 ,core_usb_txbusy 
-034b 1fe17e0f and_into 0x0f ,pdata 
-034c 247a0000 nrtn blank 
-034d 6fe0890d fetch 1 ,mem_usb_tx_enable 
-034e c4010000 rtnbit0 2 
-034f 6fe0890d fetch 1 ,mem_usb_tx_enable 
-0350 793ffe02 set0 2 ,pdata 
-0351 67e0890d store 1 ,mem_usb_tx_enable 
-0352 6fe0890c fetch 1 ,mem_usb_ep2_data 
-0353 207a0000 rtn blank 
-0354 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
-0355 c013035b beq usb_ep2_authca ,p_usb_tx_authca_data 
-0356 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-0357 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-0358 c0120366 beq usb_ep2_audio ,p_usb_tx_audio_data 
-0359 c0118371 beq usb_ep2_protocol ,p_usb_tx_protocol_data 
-035a 2020235a branch assert 
+034b 6ff08c25 fetch 1 ,core_usb_txbusy 
+034c 1fe17e0f and_into 0x0f ,pdata 
+034d 247a0000 nrtn blank 
+034e 6fe0890d fetch 1 ,mem_usb_tx_enable 
+034f c4010000 rtnbit0 2 
+0350 6fe0890d fetch 1 ,mem_usb_tx_enable 
+0351 793ffe02 set0 2 ,pdata 
+0352 67e0890d store 1 ,mem_usb_tx_enable 
+0353 6fe0890c fetch 1 ,mem_usb_ep2_data 
+0354 207a0000 rtn blank 
+0355 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
+0356 c013035c beq usb_ep2_authca ,p_usb_tx_authca_data 
+0357 c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0358 c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0359 c0120367 beq usb_ep2_audio ,p_usb_tx_audio_data 
+035a c0118372 beq usb_ep2_protocol ,p_usb_tx_protocol_data 
+035b 2020235a branch assert 
 
 p_usb_tx_authca_data:
-035b 70090c00 jam 0 ,mem_usb_ep2_data 
-035c 6f20c6de fetchr loopcnt ,1 ,mem_usb_authca_data 
-035d d8c046df arg mem_usb_authca_data + 1 ,contr 
+035c 70090c00 jam 0 ,mem_usb_ep2_data 
+035d 6f20c6de fetchr loopcnt ,1 ,mem_usb_authca_data 
+035e d8c046df arg mem_usb_authca_data + 1 ,contr 
 
 p_usb_tx_authca_ep2:
-035e d8e00002 arg 2 ,queue 
-035f da200759 arg mem_usb_txbuf2 ,rega 
-0360 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-0361 20407bd2 call usb_tx_buf 
-0362 20200363 branch p_usb_release_authca_buf 
+035f d8e00002 arg 2 ,queue 
+0360 da200759 arg mem_usb_txbuf2 ,rega 
+0361 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+0362 20407bd2 call usb_tx_buf 
+0363 20200364 branch p_usb_release_authca_buf 
 
 p_usb_release_authca_buf:
-0363 d8a046de arg mem_usb_authca_data ,contw 
-0364 df200040 arg 64 ,loopcnt 
-0365 20207ca1 branch clear_mem 
+0364 d8a046de arg mem_usb_authca_data ,contw 
+0365 df200040 arg 64 ,loopcnt 
+0366 20207ca1 branch clear_mem 
 
 p_usb_tx_audio_data:
-0366 70090c00 jam 0 ,mem_usb_ep2_data 
-0367 6f20c7a1 fetchr loopcnt ,1 ,mem_usb_audio_data 
-0368 d8c047a3 arg mem_usb_audio_data + 2 ,contr 
+0367 70090c00 jam 0 ,mem_usb_ep2_data 
+0368 6f20c7a1 fetchr loopcnt ,1 ,mem_usb_audio_data 
+0369 d8c047a3 arg mem_usb_audio_data + 2 ,contr 
 
 p_usb_tx_audio_ep2:
-0369 d8e00002 arg 2 ,queue 
-036a da200759 arg mem_usb_txbuf2 ,rega 
-036b 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-036c 20407bd2 call usb_tx_buf 
-036d 2020036e branch p_usb_release_audio_buf 
+036a d8e00002 arg 2 ,queue 
+036b da200759 arg mem_usb_txbuf2 ,rega 
+036c 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+036d 20407bd2 call usb_tx_buf 
+036e 2020036f branch p_usb_release_audio_buf 
 
 p_usb_release_audio_buf:
-036e d8a047a1 arg mem_usb_audio_data ,contw 
-036f df200040 arg 64 ,loopcnt 
-0370 20207ca1 branch clear_mem 
+036f d8a047a1 arg mem_usb_audio_data ,contw 
+0370 df200040 arg 64 ,loopcnt 
+0371 20207ca1 branch clear_mem 
 
 p_usb_tx_protocol_data:
-0371 70090c00 jam 0 ,mem_usb_ep2_data 
-0372 6f20cb0c fetchr loopcnt ,1 ,mem_usb_protocol_data 
-0373 1f20f201 increase 1 ,loopcnt 
+0372 70090c00 jam 0 ,mem_usb_ep2_data 
+0373 6f20cb0c fetchr loopcnt ,1 ,mem_usb_protocol_data 
 0374 d8c04b0d arg mem_usb_protocol_data + 1 ,contr 
 
 p_usb_tx_protocol_ep2:
@@ -1145,7 +1145,7 @@
 
 p_usb_release_protocol_buf:
 037a d8a04b0c arg mem_usb_protocol_data ,contw 
-037b df20000a arg 10 ,loopcnt 
+037b df200041 arg 65 ,loopcnt 
 037c 20207ca1 branch clear_mem 
 
 p_rx_dcoc:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/usb_1m_mingjian/program/patch.prog	(revision 3299)
+++ /1121s/branch/dongle/1m/usb_1m_mingjian/program/patch.prog	(working copy)
@@ -992,13 +992,14 @@
 	
 
 p_dongle_usb_tx_protocol_data:	// all length 1B + IN_DATA_ID 1B + payload length 1B + payload N*B
-	jam REPORT_ID_DATA_IN,mem_usb_protocol_data+1	//mem_usb_audio_data 03 41 02 00
-	fetch 1,mem_24g_rxdata_length						//mem_usb_audio_data 03 a1 02 00
-	increase -1,pdata
+	setarg 0x40
 	store 1,mem_usb_protocol_data
+	jam REPORT_ID_DATA_IN,mem_usb_protocol_data+1
+	fetch 1,mem_24g_rxdata_length						
+	increase -1,pdata
 	copy pdata,loopcnt
-	arg mem_usb_protocol_data+3,contr
-	arg mem_usb_protocol_data_sta,contw					//mem_usb0_get_report_data a1 02 02 00
+	arg mem_usb_protocol_data+2,contr
+	arg mem_usb_protocol_data_sta,contw
 	call memcpy
 	jam USB_EP2_PROTOCOL,mem_usb_ep2_data
 	branch dongle_usb_tx_enable_ep2
@@ -1155,7 +1156,6 @@
 p_usb_tx_protocol_data:
 	jam 0,mem_usb_ep2_data
 	fetchr loopcnt,1,mem_usb_protocol_data
-	increase 1,loopcnt
 	arg mem_usb_protocol_data+1,contr
 p_usb_tx_protocol_ep2:
 	arg 2,queue
@@ -1166,7 +1166,7 @@
 
 p_usb_release_protocol_buf:
 	arg mem_usb_protocol_data,contw
-	arg 10,loopcnt
+	arg 65,loopcnt
 	branch clear_mem
 
 p_rx_dcoc:
