Index: format/app_dongle.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/format/app_dongle.format	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/format/app_dongle.format	(working copy)
@@ -75,20 +75,20 @@
 )
 (
 0xa2 COMMAND_TEST	//BYTE 0
-0x81 COM_TEST_SC		//	½øÈëµ¥ÔØ²¨
-0x82 COM_TEST_CD		// fcc²âÊÔ
-0x83 COM_TEST_DAT		// Êý¾Ý²âÊÔ
-0x84 COM_TEST_LOW_CH  //µÍÆµµã
-0x85 COM_TEST_MID_CH	//ÖÐÆµµã
-0x86 COM_TEST_HIG_CH	//¸ßÆµµã
-0x87 COM_TEST_SW_HIG	//×Ô¶¯ÇÐ»»ÆµµãÎª¸ß 1mhz
-0x88 COIM_TEST_SW_LOW	//×Ô¶¯ÇÐ»»ÆµµãÎªµÍ 1mhz
-0x89 COM_TEST_SW_STOP	//Í£Ö¹×Ô¶¯ÇÐ»»Æµµã
-0x8a COM_TEST_POW_5		//ÉèÖÃÊä³ö¹¦ÂÊ5dbm
+0x81 COM_TEST_SC		//	ï¿½ï¿½ï¿½ëµ¥ï¿½Ø²ï¿½
+0x82 COM_TEST_CD		// fccï¿½ï¿½ï¿½ï¿½
+0x83 COM_TEST_DAT		// ï¿½ï¿½ï¿½Ý²ï¿½ï¿½ï¿½
+0x84 COM_TEST_LOW_CH  //ï¿½ï¿½Æµï¿½ï¿½
+0x85 COM_TEST_MID_CH	//ï¿½ï¿½Æµï¿½ï¿½
+0x86 COM_TEST_HIG_CH	//ï¿½ï¿½Æµï¿½ï¿½
+0x87 COM_TEST_SW_HIG	//ï¿½Ô¶ï¿½ï¿½Ð»ï¿½Æµï¿½ï¿½Îªï¿½ï¿½ 1mhz
+0x88 COIM_TEST_SW_LOW	//ï¿½Ô¶ï¿½ï¿½Ð»ï¿½Æµï¿½ï¿½Îªï¿½ï¿½ 1mhz
+0x89 COM_TEST_SW_STOP	//Í£Ö¹ï¿½Ô¶ï¿½ï¿½Ð»ï¿½Æµï¿½ï¿½
+0x8a COM_TEST_POW_5		//ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½5dbm
 0x8b COM_TEST_POW_0		//0dbm
 0x8c COM_TEST_POW_N5		//-5dbm
 0x8d COM_TEST_POW_N10		//-10dbm
-0x8e COM_TEST_EXIT			//ÍË³ö²âÊÔÄ£Ê½
+0x8e COM_TEST_EXIT			//ï¿½Ë³ï¿½ï¿½ï¿½ï¿½ï¿½Ä£Ê½
 )
 (
 0xa6 COMMAND_CURRENT_PROJECT
Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-a2
+b2
 04
 c2
 84
@@ -43,11 +43,11 @@
 c0
 65
 80
-bb
+bc
 c0
 67
 80
-9a
+9b
 20
 20
 3a
@@ -59,15 +59,15 @@
 c0
 23
 80
-ef
+f3
 c0
 24
 80
-f5
+f9
 c0
 26
 80
-d2
+d6
 c0
 27
 80
@@ -75,7 +75,7 @@
 c0
 28
 00
-c7
+cb
 20
 20
 3a
@@ -551,7 +551,7 @@
 58
 00
 01
-14
+18
 67
 e1
 45
@@ -565,6 +565,10 @@
 70
 56
 70
+06
+4a
+a3
+70
 8c
 00
 00
@@ -675,7 +679,7 @@
 20
 40
 00
-a9
+aa
 20
 20
 73
@@ -719,7 +723,7 @@
 c0
 10
 00
-b6
+b7
 c0
 10
 f3
@@ -762,12 +766,12 @@
 45
 c0
 10
-f1
-37
+80
+c6
 c0
 11
 00
-c0
+c1
 20
 20
 71
@@ -778,8 +782,8 @@
 0f
 c0
 00
-00
-c5
+71
+76
 c0
 00
 f1
@@ -792,14 +796,26 @@
 20
 71
 11
-6a
-21
-05
-fd
+6f
+e0
+87
+0f
+c0
+00
+71
+3f
+c0
+00
+f1
+3f
+c0
+01
+71
+42
 20
 20
-72
-c6
+71
+11
 6f
 e0
 c5
@@ -811,7 +827,7 @@
 20
 40
 00
-cb
+cf
 20
 20
 4b
@@ -979,7 +995,7 @@
 c0
 7f
 81
-0a
+0e
 20
 60
 00
@@ -991,7 +1007,7 @@
 c0
 00
 80
-fa
+fe
 c0
 01
 4a
@@ -999,7 +1015,7 @@
 c0
 7f
 81
-08
+0c
 20
 20
 4a
@@ -1035,7 +1051,7 @@
 c0
 00
 81
-03
+07
 20
 20
 4a
@@ -1067,7 +1083,7 @@
 20
 20
 01
-0a
+0e
 6f
 e0
 c5
@@ -1075,11 +1091,11 @@
 c0
 00
 81
-0e
+12
 c0
 01
 01
-11
+15
 20
 60
 00
@@ -1115,11 +1131,11 @@
 c0
 00
 81
-17
+1b
 c0
 01
 01
-1a
+1e
 6f
 e0
 c5
@@ -1131,7 +1147,7 @@
 20
 20
 01
-1c
+20
 6f
 e0
 c5
@@ -1147,11 +1163,11 @@
 c0
 00
 81
-20
+24
 c0
 01
 81
-24
+28
 20
 60
 00
@@ -1179,17 +1195,17 @@
 c0
 00
 81
-20
+24
 c0
 7f
 81
-20
+24
 20
 20
 51
 af
-76
-83
+33
+1e
 aa
 55
 40
@@ -1497,5 +1513,5 @@
 55
 43
 48
-94
-66
+99
+21
Index: output/program.lis
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(working copy)
@@ -9,17 +9,17 @@
 0006 c0188033 beq patch06_1 ,p_dongle_write_kb_bind_status 
 0007 c0380070 beq patch0e_0 ,p_dongle_init 
 0008 c0618088 beq patch18_3 ,p_usb_init 
-0009 c06580bb beq patch19_3 ,p_usb0_request_get_descriptor 
-000a c067809a beq patch19_7 ,p_usb_tx 
+0009 c06580bc beq patch19_3 ,p_usb0_request_get_descriptor 
+000a c067809b beq patch19_7 ,p_usb_tx 
 000b 20203a8a branch assert 
 
 pf_patch_ext:
 000c c17f8000 rtneq patch3f_7 
-000d c02380ef beq patch28_7 ,p_g24_bind_data_parse_next 
-000e c02480f5 beq patch29_1 ,p_g24_receive_packet_start_next 
-000f c02680d2 beq patch29_5 ,p_g24_mode_switch_bind_search 
+000d c02380f3 beq patch28_7 ,p_g24_bind_data_parse_next 
+000e c02480f9 beq patch29_1 ,p_g24_receive_packet_start_next 
+000f c02680d6 beq patch29_5 ,p_g24_mode_switch_bind_search 
 0010 c027803b beq patch29_7 ,p_g24_bind_mode_auto 
-0011 c02800c7 beq patch2a_0 ,p_g24_search_mode_auto 
+0011 c02800cb beq patch2a_0 ,p_g24_search_mode_auto 
 0012 20203a8a branch assert 
 
 p_initialize_radio_cont:
@@ -184,212 +184,216 @@
 0087 20600000 rtn 
 
 p_usb_init:
-0088 58000114 setarg p_dongle_ackpayload_prep 
+0088 58000118 setarg p_dongle_ackpayload_prep 
 0089 67e1452d store 2 ,mem_cb_24g_ackpayload 
 008a 20406eb3 call enable_authrom 
 008b 20407056 call usb_init_param 
-008c 708c0000 jam 0x00 ,core_usb_config 
-008d 20002710 nop 10000 
-008e 708c1800 jam 0x00 ,core_usb_trig 
-008f 6ff10050 fetch 2 ,core_clkoff 
-0090 793ffe0a set0 clock_off_usb ,pdata 
-0091 67f10050 store 2 ,core_clkoff 
-0092 708c1100 jam 0x00 ,core_usb_hmode 
-0093 708c003c jam 0x3c ,core_usb_config 
-0094 58000d00 setarg mem_usb_rxbuf_new 
-0095 67f10c03 store 2 ,core_usb_rx_saddr 
-0096 67f10c07 store 2 ,core_usb_rxptr 
-0097 58000d44 setarg mem_usb_rxbuf_new_end 
-0098 67f10c05 store 2 ,core_usb_rx_eaddr 
-0099 2020704f branch usb_init + 16 
+008c 70064aa3 jam 0xa3 ,0x64a 
+008d 708c0000 jam 0x00 ,core_usb_config 
+008e 20002710 nop 10000 
+008f 708c1800 jam 0x00 ,core_usb_trig 
+0090 6ff10050 fetch 2 ,core_clkoff 
+0091 793ffe0a set0 clock_off_usb ,pdata 
+0092 67f10050 store 2 ,core_clkoff 
+0093 708c1100 jam 0x00 ,core_usb_hmode 
+0094 708c003c jam 0x3c ,core_usb_config 
+0095 58000d00 setarg mem_usb_rxbuf_new 
+0096 67f10c03 store 2 ,core_usb_rx_saddr 
+0097 67f10c07 store 2 ,core_usb_rxptr 
+0098 58000d44 setarg mem_usb_rxbuf_new_end 
+0099 67f10c05 store 2 ,core_usb_rx_eaddr 
+009a 2020704f branch usb_init + 16 
 
 p_usb_tx:
-009a 6fe087ab fetch 1 ,mem_usb_tx_enable 
-009b 207a0000 rtn blank 
-009c 6ff08c24 fetch 1 ,core_usb_txbusy 
-009d 1fe17e0f and_into 0x0f ,pdata 
-009e 243a7383 nbranch usb_inwake_state_tx_dispose ,blank 
-009f 6fe087ac fetch 1 ,mem_usb_device_enumeration_endflag 
-00a0 203a7356 branch usb_tx_fifo_release ,blank 
-00a1 6fe0879e fetch 1 ,mem_usb_state 
-00a2 c001f393 beq usb_sleep ,usb_windows_wakeup 
-00a3 c0817356 bne usb_connected ,usb_tx_fifo_release 
-00a4 6fe087a0 fetch 1 ,mem_usb_clear_remote_wakeup 
-00a5 243a7356 nbranch usb_tx_fifo_release ,blank 
-00a6 2040732a call usb_tx_data_ep1 
-00a7 204000a9 call p_usb_tx_data_ep2 
-00a8 20207342 branch usb_tx_data_ep3 
+009b 6fe087ab fetch 1 ,mem_usb_tx_enable 
+009c 207a0000 rtn blank 
+009d 6ff08c24 fetch 1 ,core_usb_txbusy 
+009e 1fe17e0f and_into 0x0f ,pdata 
+009f 243a7383 nbranch usb_inwake_state_tx_dispose ,blank 
+00a0 6fe087ac fetch 1 ,mem_usb_device_enumeration_endflag 
+00a1 203a7356 branch usb_tx_fifo_release ,blank 
+00a2 6fe0879e fetch 1 ,mem_usb_state 
+00a3 c001f393 beq usb_sleep ,usb_windows_wakeup 
+00a4 c0817356 bne usb_connected ,usb_tx_fifo_release 
+00a5 6fe087a0 fetch 1 ,mem_usb_clear_remote_wakeup 
+00a6 243a7356 nbranch usb_tx_fifo_release ,blank 
+00a7 2040732a call usb_tx_data_ep1 
+00a8 204000aa call p_usb_tx_data_ep2 
+00a9 20207342 branch usb_tx_data_ep3 
 
 p_usb_tx_data_ep2:
-00a9 6ff08c24 fetch 1 ,core_usb_txbusy 
-00aa c3810000 rtnbit1 2 
-00ab 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00ac c4010000 rtnbit0 2 
-00ad 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00ae 793ffe02 set0 2 ,pdata 
-00af 67e087ab store 1 ,mem_usb_tx_enable 
-00b0 6fe087aa fetch 1 ,mem_usb_ep2_data 
-00b1 207a0000 rtn blank 
-00b2 c01000b6 beq usb_ep2_ms ,p_usb_tx_ms_data 
-00b3 c010f377 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-00b4 c011737f beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-00b5 20203a8a branch assert 
+00aa 6ff08c24 fetch 1 ,core_usb_txbusy 
+00ab c3810000 rtnbit1 2 
+00ac 6fe087ab fetch 1 ,mem_usb_tx_enable 
+00ad c4010000 rtnbit0 2 
+00ae 6fe087ab fetch 1 ,mem_usb_tx_enable 
+00af 793ffe02 set0 2 ,pdata 
+00b0 67e087ab store 1 ,mem_usb_tx_enable 
+00b1 6fe087aa fetch 1 ,mem_usb_ep2_data 
+00b2 207a0000 rtn blank 
+00b3 c01000b7 beq usb_ep2_ms ,p_usb_tx_ms_data 
+00b4 c010f377 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+00b5 c011737f beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+00b6 20203a8a branch assert 
 
 p_usb_tx_ms_data:
-00b6 6fe0879b fetch 1 ,mem_usb_get_protocol_flag 
-00b7 203a7373 branch usb_tx_ms_data_normal_mode ,blank 
-00b8 6fe0879c fetch 1 ,mem_usb_set_protocol_status 
-00b9 203a7364 branch usb_tx_ms_data_mac_boot_mode ,blank 
-00ba 20207373 branch usb_tx_ms_data_normal_mode 
+00b7 6fe0879b fetch 1 ,mem_usb_get_protocol_flag 
+00b8 203a7373 branch usb_tx_ms_data_normal_mode ,blank 
+00b9 6fe0879c fetch 1 ,mem_usb_set_protocol_status 
+00ba 203a7364 branch usb_tx_ms_data_mac_boot_mode ,blank 
+00bb 20207373 branch usb_tx_ms_data_normal_mode 
 
 p_usb0_request_get_descriptor:
-00bb 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
-00bc c000f145 beq dsc_device ,dsc_device_info 
-00bd c010f137 beq dsc_hid ,dsc_hid_info + 1 
-00be c01100c0 beq dsc_hid_report ,p_dsc_hid_report_info 
-00bf 20207130 branch usb0_request_get_descriptor + 2 
+00bc 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
+00bd c000f145 beq dsc_device ,dsc_device_info 
+00be c01080c6 beq dsc_hid ,p_dsc_hid_info 
+00bf c01100c1 beq dsc_hid_report ,p_dsc_hid_report_info 
+00c0 20207130 branch usb0_request_get_descriptor + 2 
 
 p_dsc_hid_report_info:
-00c0 6fe1070f fetch 2 ,mem_usb_setup_windex 
-00c1 c00000c5 beq 0 ,p_dsc_hid_report_info0 
-00c2 c000f176 beq 1 ,dsc_hid_report_info1 
-00c3 c001717a beq 2 ,dsc_hid_report_info2 
-00c4 20207111 branch usb0_force_stall 
-
-p_dsc_hid_report_info0:
-00c5 6a2105fd fetchr rega ,2 ,mem_hidreportdesc_m 
-00c6 202072c6 branch usb0_respond_length 
+00c1 6fe1070f fetch 2 ,mem_usb_setup_windex 
+00c2 c0007176 beq 0 ,dsc_hid_report_info1 
+00c3 c000f176 beq 1 ,dsc_hid_report_info1 
+00c4 c001717a beq 2 ,dsc_hid_report_info2 
+00c5 20207111 branch usb0_force_stall 
+
+p_dsc_hid_info:
+00c6 6fe0870f fetch 1 ,mem_usb_setup_windex 
+00c7 c000713f beq 0 ,dsc_hid_info_interface1 
+00c8 c000f13f beq 1 ,dsc_hid_info_interface1 
+00c9 c0017142 beq 2 ,dsc_hid_info_interface2 
+00ca 20207111 branch usb0_force_stall 
 
 p_g24_search_mode_auto:
-00c7 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00c8 c1838000 rtnne dongle_search 
-00c9 204000cb call p_g24_search_mode_init 
-00ca 20204b00 branch g24_search_mode_auto + 4 
+00cb 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00cc c1838000 rtnne dongle_search 
+00cd 204000cf call p_g24_search_mode_init 
+00ce 20204b00 branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00cb 6fe0c560 fetch 1 ,mem_24g_mode_init 
-00cc c3838000 rtnbit1 dongle_search 
-00cd 79207e07 set1 dongle_search ,pdata 
-00ce 67e0c560 store 1 ,mem_24g_mode_init 
-00cf 6fe0c56e fetch 1 ,mem_tx_power_temp 
-00d0 67e0c116 store 1 ,mem_tx_power 
-00d1 20204af0 branch g24_search_mode_init + 4 
+00cf 6fe0c560 fetch 1 ,mem_24g_mode_init 
+00d0 c3838000 rtnbit1 dongle_search 
+00d1 79207e07 set1 dongle_search ,pdata 
+00d2 67e0c560 store 1 ,mem_24g_mode_init 
+00d3 6fe0c56e fetch 1 ,mem_tx_power_temp 
+00d4 67e0c116 store 1 ,mem_tx_power 
+00d5 20204af0 branch g24_search_mode_init + 4 
 
 p_g24_mode_switch_bind_search:
-00d2 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00d3 c1000000 rtneq dongle_work 
-00d4 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-00d5 247a0000 nrtn blank 
-00d6 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-00d7 247a0000 nrtn blank 
-00d8 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
-00d9 207a0000 rtn blank 
-00da 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
-00db c1800000 rtnne 0 
-00dc 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
-00dd c1800000 rtnne 0 
-00de 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
-00df 2fe00603 compare 3 ,pdata ,3 
-00e0 2020cac1 branch g24_mode_b_s_switch_exit ,true 
-00e1 204048be call g24_timer_check 
-00e2 24740000 nrtn user 
-00e3 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-00e4 1fe0fe01 increase 1 ,pdata 
-00e5 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
-00e6 d84007d0 arg 0x7d0 ,temp 
-00e7 98467c00 isub temp ,null 
-00e8 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
-00e9 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
-00ea 1fe0fe01 increase 1 ,pdata 
-00eb 1fe17e01 and_into 1 ,pdata 
-00ec 67e0c574 store 1 ,mem_24g_b_s_time_slice 
-00ed c0004b88 beq 0 ,g24_search_mode_enable 
-00ee 20204abc branch g24_mode_switch_bind_search_next + 1 
+00d6 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00d7 c1000000 rtneq dongle_work 
+00d8 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+00d9 247a0000 nrtn blank 
+00da 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00db 247a0000 nrtn blank 
+00dc 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
+00dd 207a0000 rtn blank 
+00de 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
+00df c1800000 rtnne 0 
+00e0 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00e1 c1800000 rtnne 0 
+00e2 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
+00e3 2fe00603 compare 3 ,pdata ,3 
+00e4 2020cac1 branch g24_mode_b_s_switch_exit ,true 
+00e5 204048be call g24_timer_check 
+00e6 24740000 nrtn user 
+00e7 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+00e8 1fe0fe01 increase 1 ,pdata 
+00e9 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
+00ea d84007d0 arg 0x7d0 ,temp 
+00eb 98467c00 isub temp ,null 
+00ec 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
+00ed 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
+00ee 1fe0fe01 increase 1 ,pdata 
+00ef 1fe17e01 and_into 1 ,pdata 
+00f0 67e0c574 store 1 ,mem_24g_b_s_time_slice 
+00f1 c0004b88 beq 0 ,g24_search_mode_enable 
+00f2 20204abc branch g24_mode_switch_bind_search_next + 1 
 
 p_g24_bind_data_parse_next:
-00ef 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00f0 c05549a2 beq datatype_bind ,g24_bind_first_step 
-00f1 c02ac9b3 beq datatype_config ,g24_bind_second_step 
-00f2 c01149d4 beq datatype_ok ,g24_bind_third_step 
-00f3 c07f810a beq datatype_attemp ,p_g24_data_attemp 
-00f4 20600000 rtn 
+00f3 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00f4 c05549a2 beq datatype_bind ,g24_bind_first_step 
+00f5 c02ac9b3 beq datatype_config ,g24_bind_second_step 
+00f6 c01149d4 beq datatype_ok ,g24_bind_third_step 
+00f7 c07f810e beq datatype_attemp ,p_g24_data_attemp 
+00f8 20600000 rtn 
 
 p_g24_receive_packet_start_next:
-00f5 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00f6 c00080fa beq datatype_device1 ,p_g24_data_device1 
-00f7 c0014a4e beq datatype_device2 ,g24_data_device2 
-00f8 c07f8108 beq datatype_attemp ,p_g24_data_receive_attemp 
-00f9 20204a39 branch g24_rx_interrupt_clear 
+00f9 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00fa c00080fe beq datatype_device1 ,p_g24_data_device1 
+00fb c0014a4e beq datatype_device2 ,g24_data_device2 
+00fc c07f810c beq datatype_attemp ,p_g24_data_receive_attemp 
+00fd 20204a39 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-00fa 20404a08 call g24_binding_dvc1_living 
-00fb 20404ba2 call g24_ch_timer_reinit 
-00fc 6fe0c555 fetch 1 ,mem_24g_abort_packet 
-00fd 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
-00fe 284ffe03 isolate1 bit_abort ,temp 
-00ff 7920fe00 setflag true ,0 ,pdata 
-0100 67e0c555 store 1 ,mem_24g_abort_packet 
-0101 c0008103 beq 1 ,p_g24_data_attemp_device1_abort 
-0102 20204a47 branch g24_data_device1 + 8 
+00fe 20404a08 call g24_binding_dvc1_living 
+00ff 20404ba2 call g24_ch_timer_reinit 
+0100 6fe0c555 fetch 1 ,mem_24g_abort_packet 
+0101 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
+0102 284ffe03 isolate1 bit_abort ,temp 
+0103 7920fe00 setflag true ,0 ,pdata 
+0104 67e0c555 store 1 ,mem_24g_abort_packet 
+0105 c0008107 beq 1 ,p_g24_data_attemp_device1_abort 
+0106 20204a47 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-0103 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-0104 247a0000 nrtn blank 
-0105 70452901 jam 1 ,mem_24g_device1_bind_disable 
-0106 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
-0107 20204c14 branch g24_store_device1_addr 
+0107 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+0108 247a0000 nrtn blank 
+0109 70452901 jam 1 ,mem_24g_device1_bind_disable 
+010a 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
+010b 20204c14 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-0108 20404a16 call g24_bind_device_status 
-0109 2020010a branch p_g24_data_attemp 
+010c 20404a16 call g24_bind_device_status 
+010d 2020010e branch p_g24_data_attemp 
 
 p_g24_data_attemp:
-010a 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
-010b c000810e beq datatype_device1 ,p_g24_data_attemp_device1 
-010c c0010111 beq datatype_device2 ,p_g24_data_attemp_device2 
-010d 20600000 rtn 
+010e 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
+010f c0008112 beq datatype_device1 ,p_g24_data_attemp_device1 
+0110 c0010115 beq datatype_device2 ,p_g24_data_attemp_device2 
+0111 20600000 rtn 
 
 p_g24_data_attemp_device1:
-010e 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-010f 247a0000 nrtn blank 
-0110 20204c12 branch g24_data_attemp_device1 
+0112 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+0113 247a0000 nrtn blank 
+0114 20204c12 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-0111 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
-0112 247a0000 nrtn blank 
-0113 20204c16 branch g24_data_attemp_device2 
+0115 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
+0116 247a0000 nrtn blank 
+0117 20204c16 branch g24_data_attemp_device2 
 
 p_dongle_ackpayload_prep:
-0114 6fe0c4d4 fetch 1 ,mem_24g_data_type 
-0115 c0008117 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-0116 c001011a beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+0118 6fe0c4d4 fetch 1 ,mem_24g_data_type 
+0119 c000811b beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+011a c001011e beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_mouse:
-0117 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-0118 c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-0119 2020011c branch p_dongle_ackpayload_prep_end 
+011b 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+011c c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+011d 20200120 branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_keyboard:
-011a 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-011b c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+011e 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+011f c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_end:
-011c 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
-011d c0008120 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-011e c0018124 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-011f 20600000 rtn 
+0120 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
+0121 c0008124 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
+0122 c0018128 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+0123 20600000 rtn 
 
 p_dongle_g24_bind_ackpayload_prep:
-0120 70455c01 jam 1 ,mem_24g_ackpayload_enable 
-0121 6fe0c561 fetch 1 ,mem_24g_work_mode 
-0122 c1000000 rtneq dongle_work 
-0123 202051a8 branch dongle_g24_bind_ackpayload_prep 
+0124 70455c01 jam 1 ,mem_24g_ackpayload_enable 
+0125 6fe0c561 fetch 1 ,mem_24g_work_mode 
+0126 c1000000 rtneq dongle_work 
+0127 202051a8 branch dongle_g24_bind_ackpayload_prep 
 
 p_dongle_g24_kb_led_ackpayload_prep:
-0124 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
-0125 c0008120 beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
-0126 c07f8120 beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
-0127 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
+0128 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
+0129 c0008124 beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
+012a c07f8124 beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
+012b 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
               org 0x3800
 
 start:
Index: program/patch.prog
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(working copy)
@@ -8,13 +8,13 @@
 	beq patch05_7,p_dongle_default_init
 	beq patch06_0,p_dongle_read_kb_bind_status
 	beq patch06_1,p_dongle_write_kb_bind_status
-	beq patch0e_0,p_dongle_init	
+	beq patch0e_0,p_dongle_init
 	beq patch18_3,p_usb_init
 	beq patch19_3,p_usb0_request_get_descriptor
 	beq patch19_7,p_usb_tx
 //	beq patch1c_3,p_le_enable_phy_by_pdata
 	branch assert
-	
+
 pf_patch_ext:
 	rtneq patch3f_7
 	//beq patch26_4,p_g24_receive_skip_end
@@ -23,7 +23,7 @@
 	beq patch29_1,p_g24_receive_packet_start_next
 	beq patch29_5,p_g24_mode_switch_bind_search
 	beq patch29_7,p_g24_bind_mode_auto
-	beq patch2a_0,p_g24_search_mode_auto	
+	beq patch2a_0,p_g24_search_mode_auto
 	branch assert
 
 p_initialize_radio_cont:
@@ -59,7 +59,7 @@
 	nop 100
 	jam 0x0e,core_clkpll_ctrl2
 	jam 0x03,core_clkpll_ctrl0
-	
+
 	call p_set_tx_power_0db
 	jam 0x28,core_tx_mixer_cfg1
 	jam 0x3f,core_tx_mixer_cfg2
@@ -87,7 +87,7 @@
 	fetch 1,mem_24g_work_mode
 	rtnne DONGLE_BIND
 	fetch 1,mem_dg_bind_disable
-	nbranch g24_bind_mode_auto+10,blank	
+	nbranch g24_bind_mode_auto+10,blank
 	call p_g24_bind_init
 	branch g24_bind_mode_auto+4
 p_g24_bind_init:
@@ -98,7 +98,7 @@
 	setarg 0
 	store 3,mem_24g_device1_bind_step
 	branch g24_bind_init+8
-	
+
 p_dongle_default_init:
 	call dongle_default_init+1
 	fetch 1,mem_24g_pair_tx_power_init
@@ -137,7 +137,7 @@
 p_set_tx_power_f20db:
 	jam 0x85,core_tx_pwr_ctrl0
 	jam 0x04,core_tx_pwr_ctrl1
-	jam 0xa3,core_rf_ldo_cfg8	
+	jam 0xa3,core_rf_ldo_cfg8
 	jam 0x0a,core_rf_ldo_cfg9
 	jam 0x18,0x8a3b
 	jam 0x0f,0x8a3c
@@ -147,7 +147,7 @@
 	jam 0x02,core_tx_pwr_ctrl1
 	branch p_set_tx_power_f20db+2
 
-	
+
 p_set_tx_power_f47db:
 	jam 0x43,core_tx_pwr_ctrl0
 	jam 0x00,core_tx_pwr_ctrl1
@@ -157,12 +157,12 @@
 	jam 0x00,core_tx_pwr_ctrl1
 	branch set_rf_ldo_cfg89
 
-/*	
+/*
 	fetch 1,mem_dg_sys_config
 	rtnbit0 DG_ENABLE_NEW_REVISION
 	jam ON,mem_24g_disable_fec1
 	branch g24_enable_2M
-*/	
+*/
 p_dongle_init:
 	setarg p_dongle_dispatch
 	store 2,mem_cb_24g_receive_process
@@ -203,6 +203,9 @@
 	store 2,mem_cb_24g_ackpayload
 	call enable_authrom
 	call usb_init_param
+
+	jam 0xa3,0x64a
+
 	jam 0x00,core_usb_config
 	nop 10000
 	jam 0x00,core_usb_trig
@@ -291,18 +294,25 @@
 p_usb0_request_get_descriptor:
 	fetch 1,mem_usb_setup_bValueH
 	beq DSC_DEVICE,dsc_device_info
-	beq DSC_HID,dsc_hid_info+1
+	beq DSC_HID,p_dsc_hid_info//dsc_hid_info+1
 	beq DSC_HID_REPORT,p_dsc_hid_report_info
 	branch usb0_request_get_descriptor+2
 p_dsc_hid_report_info:
 	fetch 2,mem_usb_setup_wIndex
-	beq 0,p_dsc_hid_report_info0
+	beq 0,dsc_hid_report_info1//p_dsc_hid_report_info0
 	beq 1,dsc_hid_report_info1
 	beq 2,dsc_hid_report_info2
 	branch usb0_force_stall
-p_dsc_hid_report_info0:
-	fetchr rega,2,mem_hidreportdesc_m
-	branch usb0_respond_length
+// p_dsc_hid_report_info0:
+// 	fetchr rega,2,mem_hidreportdesc_m
+// 	branch usb0_respond_length
+
+p_dsc_hid_info:
+	fetch 1,mem_usb_setup_wIndex
+	beq 0,dsc_hid_info_interface1
+	beq 1,dsc_hid_info_interface1
+	beq 2,dsc_hid_info_interface2
+	branch usb0_force_stall
 
 
 p_g24_search_mode_auto:
@@ -423,7 +433,7 @@
 	beq DATATYPE_DEVICE2,g24_data_device2	//keyboard
 	beq DATATYPE_ATTEMP,p_g24_data_receive_attemp	//reconn packet
 	branch g24_rx_interrupt_clear
-	
+
 p_g24_data_device1:
 	call g24_binding_dvc1_living	//works on auto pair only
 	call g24_ch_timer_reinit
@@ -485,4 +495,4 @@
 	fetch 1,mem_24g_rxbuf+2
 	beq DATATYPE_DEVICE1,p_dongle_g24_bind_ackpayload_prep
 	beq DATATYPE_ATTEMP,p_dongle_g24_bind_ackpayload_prep
-	branch dongle_g24_kb_led_ackpayload_prep+3	
+	branch dongle_g24_kb_led_ackpayload_prep+3
