Index: usb_1M/ep.bat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/ep.bat	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/ep.bat	(working copy)
@@ -10,4 +10,4 @@
 e er 0 10
 e ep
 e er 0 10
-e ku
\ No newline at end of file
+e ku
Index: usb_1M/format/app_dongle.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/format/app_dongle.format	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/format/app_dongle.format	(working copy)
@@ -31,11 +31,11 @@
 1 mem_dg_usb_device_iserial_number
 1 mem_dg_24g_tx_power_default
 
+
 //patch
-1 mem_24g_pair_tx_power_init
-1 mem_dg_bind_disable
 70 mem_dongle_kb_desc_new
-100 mem_dongle_ms_desc_new
+1 mem_24g_pc_sleep
+1 mem_24g_pair_tx_power_init
 )
 
 
@@ -43,7 +43,7 @@
 (
 0x5A DONGLE_KB_BIND_SUCCESS
 0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
-0xfcd DONGLE_KB_BIND_OTP_OFFECT
+0x7cd DONGLE_KB_BIND_OTP_OFFECT
 )
 
 (
@@ -77,20 +77,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: usb_1M/format/bt.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/format/bt.format	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/format/bt.format	(working copy)
@@ -587,7 +587,6 @@
 
 1 USB_TIMER_NAK
 15 USB_TIMER_WAKEUP
-3 G24_MODE_BIND_ENALE_TIMER
 )
 
 (
Index: usb_1M/format/usb.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/format/usb.format	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/format/usb.format	(working copy)
@@ -143,24 +143,24 @@
 0x09 SET_REPORT				   // Code for Set Report
 0x0A SET_IDLE				   // Code for Set Idle
 0x0B SET_PROTOCOL			   // Code for Set Protocol
-0xF2 HID_REPORT_ID
-64 EP0_PACKET_SIZE
-6 EP1_PACKET_SIZE
-16 HID_REPORT_SIZE
-0x001B HID_REPORT_DESCRIPTOR_SIZE
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
 )
 //math cordic
 (
-0 TYPE_SIN
-1 TYPE_ATAN
-2 TYPE_MULT
-3 TYPE_DIV
-4 TYPE_ASIN
-5 TYPE_SQRT
-6 TYPE_COS
-7 TYPE_TAN
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
 )
-
+   
 (
 0 DFIFO0_IN_EMPTY
 1 DFIFO1_IN_EMPTY
@@ -241,10 +241,10 @@
 // Define wIndex bitmaps
 0x81 IN_EP1                    // Index values used by Set and Clear
 0x01 OUT_EP1                   // commands for Endpoint_Halt
-0x82 IN_EP2
-0x02 OUT_EP2
-0x83 IN_EP3
-0x03 OUT_EP3
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
 )
 
 (
Index: usb_1M/output/eeprom.dat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(working copy)
@@ -2,52 +2,44 @@
 02
 aa
 55
-1a
-05
+36
+04
 c2
 84
 00
-0c
+0a
 c0
 00
 00
-2e
+2c
 c0
 0b
 80
-4d
+49
 c0
 0c
 00
-13
+11
 c0
 17
 80
-48
+44
 c0
 18
 00
-37
+35
 c0
 18
 80
-33
+31
 c0
 38
 00
-70
+7c
 c0
 61
 80
-91
-c0
-65
-80
-e2
-c0
-67
-80
-a3
+6c
 20
 20
 3a
@@ -58,24 +50,24 @@
 00
 c0
 23
-81
-0d
+80
+e8
 c0
 24
-81
-13
+80
+ee
 c0
 26
 80
-f0
+cb
 c0
 27
 80
-3b
+39
 c0
 28
 00
-e5
+c0
 20
 20
 3a
@@ -151,7 +143,7 @@
 c0
 84
 00
-26
+24
 70
 8a
 08
@@ -175,7 +167,7 @@
 20
 40
 00
-55
+51
 70
 8a
 9a
@@ -218,7 +210,7 @@
 93
 df
 e0
-0f
+07
 cd
 20
 20
@@ -226,7 +218,7 @@
 83
 58
 00
-0f
+07
 cd
 da
 20
@@ -248,18 +240,10 @@
 80
 80
 00
-6f
-e0
-c5
-e1
-24
-3a
-4a
-e9
 20
 40
 00
-41
+3d
 20
 20
 4a
@@ -298,8 +282,8 @@
 c4
 6f
 e0
-c5
-e0
+c6
+27
 67
 e0
 c5
@@ -319,11 +303,11 @@
 c0
 01
 80
-5a
+56
 c0
 03
 00
-5c
+58
 c0
 05
 3a
@@ -339,7 +323,7 @@
 c0
 55
 80
-6a
+66
 c0
 55
 3a
@@ -371,7 +355,7 @@
 20
 20
 00
-56
+52
 70
 8a
 3b
@@ -387,7 +371,7 @@
 20
 20
 00
-58
+54
 70
 8a
 39
@@ -427,163 +411,31 @@
 20
 20
 00
-62
+5e
 70
 8a
 39
-43
+82
 70
 8a
 3a
-00
+01
 20
 20
-39
-ef
+00
+5e
 70
 8a
 39
-42
+81
 70
 8a
 3a
-00
-20
-20
-39
-ef
-58
-00
-00
-7c
-67
-e1
-45
-2b
-58
-00
-51
-b4
-67
-e1
-45
-2f
-58
-00
-00
-7b
-67
-e1
-45
-31
-58
-00
 01
-32
-67
-e1
-45
-2d
-58
-00
-00
-c7
-67
-e1
-06
-f3
-20
-20
-70
-3f
-20
-60
-00
-00
-6f
-e0
-c5
-5b
-c0
-00
-00
-7f
-20
-20
-50
-cd
-20
-40
-00
-8a
-d8
-e0
-00
-03
-20
-40
-74
-2e
-20
-5a
-00
-8f
-20
-40
-4a
-7f
-20
-40
-4a
-a5
-20
-40
-51
-83
-20
-40
-4a
-df
-20
-40
-4a
-fc
-20
-40
-51
-3f
-20
-20
-00
-80
-70
-45
-e1
-00
-58
-00
-bb
-80
-d8
-e0
-00
-03
-20
-40
-74
-20
-20
 20
-4a
-7a
-70
-45
-e1
-01
 20
-60
-00
 00
+5e
 20
 40
 6e
@@ -593,14 +445,6 @@
 70
 56
 70
-07
-9b
-00
-70
-06
-2e
-00
-70
 8c
 00
 00
@@ -656,150 +500,50 @@
 20
 70
 4f
-6f
-e0
-87
-ab
-20
-7a
+58
 00
+50
+cc
+67
+e1
+45
+2b
+58
 00
-6f
-f0
-8c
-24
-1f
+51
+b4
+67
 e1
-7e
-0f
-24
-3a
-73
-83
-6f
-e0
-87
-ac
-20
-3a
-73
-56
-6f
-e0
-87
-9e
-c0
-01
-f3
-93
-c0
-81
-73
-56
-6f
-e0
-87
-a0
-24
-3a
-73
-56
-20
-40
-73
-2a
-20
-40
-00
-b2
-20
-20
-73
-42
-6f
-f0
-8c
-24
-c3
-81
-00
-00
-6f
-e0
-87
-ab
-c4
-01
-00
+45
+2f
+58
 00
-6f
-e0
-87
-ab
-79
-3f
-fe
-02
+51
+c5
 67
-e0
-87
-ab
-6f
-e0
-87
-aa
-20
-7a
-00
-00
-c0
-10
-00
-c0
-70
-07
-aa
+e1
+45
+31
+58
 00
-c1
-10
-80
 00
-c1
-11
+a7
+67
+e1
+45
+2d
+58
 00
 00
-20
-20
-3a
-8a
-6f
-e0
-87
-9b
-20
-3a
-73
-73
-6f
-e0
 87
-9c
-20
-3a
-00
-c5
+67
+e1
+06
+f3
 20
 20
-73
-73
-70
-07
-aa
 00
-20
-20
-73
-68
+6c
 6f
 e0
 c5
@@ -807,7 +551,7 @@
 c2
 82
 00
-cb
+8b
 6f
 e0
 c5
@@ -815,7 +559,7 @@
 c0
 ad
 00
-cf
+8f
 70
 45
 93
@@ -850,12 +594,8 @@
 8d
 20
 40
-50
-e9
-20
-20
 00
-d5
+9e
 6f
 e0
 c5
@@ -863,7 +603,7 @@
 c0
 2d
 00
-db
+9a
 58
 00
 92
@@ -883,7 +623,7 @@
 58
 00
 45
-e2
+e0
 67
 e1
 05
@@ -891,35 +631,147 @@
 70
 06
 4a
-17
-58
+41
+20
+60
 00
-46
-28
+00
+6f
+e0
+86
+f9
+20
+7a
+00
+00
+6f
+e0
+c5
+93
+c0
+2d
+00
+a5
+6f
+e2
+06
+fa
 67
-e1
-05
-fd
-70
+e2
 06
-63
-4b
+26
 20
 60
 00
 00
 6f
+e2
+06
+fe
+20
+20
+00
+a3
+6f
 e0
-87
-0e
+c4
+d4
 c0
-10
-f1
-37
+00
+80
+aa
+c0
+01
+00
+ad
+6f
+e0
+c5
+dd
+c2
+80
+51
+9d
 20
 20
-71
-30
+00
+af
+6f
+e0
+c5
+dd
+c2
+80
+d1
+a1
+6f
+e0
+c5
+5c
+c0
+00
+d1
+a8
+c0
+01
+80
+b3
+20
+60
+00
+00
+6f
+e0
+c4
+44
+c0
+00
+c9
+84
+c0
+7f
+c9
+84
+70
+07
+97
+00
+70
+44
+d3
+01
+6f
+e0
+87
+98
+20
+3a
+00
+bd
+6f
+e0
+c5
+6c
+79
+20
+7e
+07
+67
+e0
+c5
+6c
+6f
+e0
+c5
+6c
+67
+e0
+c4
+64
+20
+60
+00
+00
 6f
 e0
 c5
@@ -931,7 +783,7 @@
 20
 40
 00
-e9
+c4
 20
 20
 4b
@@ -1099,7 +951,7 @@
 c0
 7f
 81
-28
+03
 20
 60
 00
@@ -1110,8 +962,8 @@
 35
 c0
 00
-81
-18
+80
+f3
 c0
 01
 4a
@@ -1119,7 +971,7 @@
 c0
 7f
 81
-26
+01
 20
 20
 4a
@@ -1154,8 +1006,8 @@
 55
 c0
 00
-81
-21
+80
+fc
 20
 20
 4a
@@ -1187,7 +1039,7 @@
 20
 20
 01
-28
+03
 6f
 e0
 c5
@@ -1195,11 +1047,11 @@
 c0
 00
 81
-2c
+07
 c0
 01
 01
-2f
+0a
 20
 60
 00
@@ -1228,88 +1080,8 @@
 20
 4c
 16
-6f
-e0
-c4
-d4
-c0
-00
-81
-35
-c0
-01
-01
-38
-6f
-e0
-c5
-dd
-c2
-80
-51
-9d
-20
-20
-01
-3a
-6f
-e0
-c5
-dd
-c2
-80
-d1
-a1
-6f
-e0
-c5
-5c
-c0
-00
-81
-3e
-c0
-01
-81
-42
-20
-60
-00
-00
-70
-45
-5c
-01
-6f
-e0
-c5
-61
-c1
-00
-00
-00
-20
-20
-51
-a8
-6f
-e0
-c4
-44
-c0
-00
-81
-3e
-c0
-7f
-81
-3e
-20
-20
-51
-af
-26
-b6
+85
+4a
 aa
 55
 40
@@ -1341,7 +1113,7 @@
 00
 00
 08
-88
+00
 00
 00
 00
@@ -1428,17 +1200,17 @@
 00
 b3
 45
-10
+00
 aa
 55
 06
 00
 3c
 44
-72
-22
+36
 f0
-55
+10
+30
 12
 13
 aa
@@ -1464,14 +1236,14 @@
 f9
 06
 01
-38
-39
-49
-13
-38
-39
-49
-13
+51
+31
+20
+10
+51
+31
+20
+30
 aa
 55
 01
@@ -1481,30 +1253,24 @@
 00
 aa
 55
-14
+0e
 00
 be
 45
-13
+0d
 32
 2e
 34
 47
 20
-57
-69
-72
+52
 65
-6c
+63
 65
-73
-73
-20
-4d
-6f
-75
-73
+69
+76
 65
+72
 aa
 55
 01
@@ -1523,8 +1289,8 @@
 55
 01
 00
-e0
-45
+27
+46
 ab
 aa
 55
@@ -1535,115 +1301,75 @@
 00
 aa
 55
-18
+42
 00
-e2
+e0
 45
-17
-05
-0c
-09
-01
-a1
-01
-19
-00
-2a
-ff
-03
-15
-00
-26
-ff
-03
-95
-01
-75
-10
-81
-00
-c0
-aa
-55
-4c
-00
-28
-46
-4b
+41
 05
 01
 09
-02
+06
 a1
 01
-85
-01
-09
+75
 01
-a1
-00
+95
+08
 05
-09
+07
 19
-01
+e0
 29
-05
+e7
 15
 00
 25
 01
-95
-05
-75
-01
 81
 02
 95
 01
 75
-03
+08
 81
+03
+95
+05
+75
 01
 05
+08
+19
 01
-09
-30
-09
-31
-16
+29
+05
+91
+02
+95
 01
-f8
-26
-ff
-07
 75
-10
+03
+91
+03
 95
-02
-81
 06
-09
-38
-15
-81
-25
-7f
 75
 08
-95
-01
-81
-06
+15
+00
+26
+ff
+00
 05
-0c
-0a
-38
-02
-95
-01
+07
+19
+00
+2a
+ff
+00
 81
-06
-c0
+00
 c0
 aa
 55
@@ -1727,7 +1453,7 @@
 aa
 aa
 55
-3e
-62
-f9
-3e
+83
+55
+75
+f3
Index: usb_1M/output/memmap.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/memmap.format	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/memmap.format	(working copy)
@@ -1324,10 +1324,9 @@
 0x45dd mem_dg_pc_sleep_flag
 0x45de mem_dg_usb_device_iserial_number
 0x45df mem_dg_24g_tx_power_default
-0x45e0 mem_24g_pair_tx_power_init
-0x45e1 mem_dg_bind_disable
-0x45e2 mem_dongle_kb_desc_new
-0x4628 mem_dongle_ms_desc_new
+0x45e0 mem_dongle_kb_desc_new
+0x4626 mem_24g_pc_sleep
+0x4627 mem_24g_pair_tx_power_init
 0x451e mem_rssi_hex_received
 0x451f mem_24g_pair_sm
 0x4520 mem_24g_pair_no_ack
Index: usb_1M/output/program.lis
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(working copy)
@@ -1,435 +1,364 @@
               include "bt_format "
               org 0x0000
-0000 c284000c bbit1 8 ,pf_patch_ext 
-0001 c000002e beq patch00_0 ,p_soft_reset 
-0002 c00b804d beq patch02_7 ,p_txon_next 
-0003 c00c0013 beq patch03_0 ,p_initialize_radio_cont 
-0004 c0178048 beq patch05_7 ,p_dongle_default_init 
-0005 c0180037 beq patch06_0 ,p_dongle_read_kb_bind_status 
-0006 c0188033 beq patch06_1 ,p_dongle_write_kb_bind_status 
-0007 c0380070 beq patch0e_0 ,p_dongle_init 
-0008 c0618091 beq patch18_3 ,p_usb_init 
-0009 c06580e2 beq patch19_3 ,p_usb0_request_get_descriptor 
-000a c06780a3 beq patch19_7 ,p_usb_tx 
-000b 20203a8a branch assert 
+0000 c284000a bbit1 8 ,pf_patch_ext 
+0001 c000002c beq patch00_0 ,p_soft_reset 
+0002 c00b8049 beq patch02_7 ,p_txon_next 
+0003 c00c0011 beq patch03_0 ,p_initialize_radio_cont 
+0004 c0178044 beq patch05_7 ,p_dongle_default_init 
+0005 c0180035 beq patch06_0 ,p_dongle_read_kb_bind_status 
+0006 c0188031 beq patch06_1 ,p_dongle_write_kb_bind_status 
+0007 c038007c beq patch0e_0 ,p_dongle_init 
+0008 c061806c beq patch18_3 ,p_usb_init 
+0009 20203a8a branch assert 
 
 pf_patch_ext:
-000c c17f8000 rtneq patch3f_7 
-000d c023810d beq patch28_7 ,p_g24_bind_data_parse_next 
-000e c0248113 beq patch29_1 ,p_g24_receive_packet_start_next 
-000f c02680f0 beq patch29_5 ,p_g24_mode_switch_bind_search 
-0010 c027803b beq patch29_7 ,p_g24_bind_mode_auto 
-0011 c02800e5 beq patch2a_0 ,p_g24_search_mode_auto 
-0012 20203a8a branch assert 
+000a c17f8000 rtneq patch3f_7 
+000b c02380e8 beq patch28_7 ,p_g24_bind_data_parse_next 
+000c c02480ee beq patch29_1 ,p_g24_receive_packet_start_next 
+000d c02680cb beq patch29_5 ,p_g24_mode_switch_bind_search 
+000e c0278039 beq patch29_7 ,p_g24_bind_mode_auto 
+000f c02800c0 beq patch2a_0 ,p_g24_search_mode_auto 
+0010 20203a8a branch assert 
 
 p_initialize_radio_cont:
-0013 708a7503 jam 0x03 ,core_rx_lna_cfg3 
-0014 708a8500 jam 0 ,core_syn_loopdiv_dsm_cfg 
-0015 70896f10 jam 0x10 ,0x896f 
-0016 6fe0c3ef fetch 1 ,mem_wdt_always_work 
-0017 205a6d31 call wdt_set_disable ,blank 
-0018 708a0305 jam 0x05 ,core_clkpll_cfg0 
-0019 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-001a 20403a44 call initialize_rc_cal 
-001b 20403a3f call initialize_rf_ldo_cfg1 
-001c 20403a3a call initialize_syn_afc_cfg1 
-001d 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-001e 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-001f 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-0020 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-0021 70896876 jam 0x76 ,core_agc_wb_sat_th 
-0022 70896976 jam 0x76 ,core_agc_nb_sat_th 
-0023 6fe0c09a fetch 1 ,mem_fcomp_div 
-0024 c0840026 bne xtal_16m ,p_initialize_radio_cont_next 
-0025 708a0834 jam 0x34 ,core_clkpll_cfg5 
+0011 708a7503 jam 0x03 ,core_rx_lna_cfg3 
+0012 708a8500 jam 0 ,core_syn_loopdiv_dsm_cfg 
+0013 70896f10 jam 0x10 ,0x896f 
+0014 6fe0c3ef fetch 1 ,mem_wdt_always_work 
+0015 205a6d31 call wdt_set_disable ,blank 
+0016 708a0305 jam 0x05 ,core_clkpll_cfg0 
+0017 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+0018 20403a44 call initialize_rc_cal 
+0019 20403a3f call initialize_rf_ldo_cfg1 
+001a 20403a3a call initialize_syn_afc_cfg1 
+001b 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+001c 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+001d 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+001e 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+001f 70896876 jam 0x76 ,core_agc_wb_sat_th 
+0020 70896976 jam 0x76 ,core_agc_nb_sat_th 
+0021 6fe0c09a fetch 1 ,mem_fcomp_div 
+0022 c0840024 bne xtal_16m ,p_initialize_radio_cont_next 
+0023 708a0834 jam 0x34 ,core_clkpll_cfg5 
 
 p_initialize_radio_cont_next:
-0026 708a01ff jam 0xff ,core_clkpll_ctrl1 
-0027 20000064 nop 100 
-0028 708a020e jam 0x0e ,core_clkpll_ctrl2 
-0029 708a0003 jam 0x03 ,core_clkpll_ctrl0 
-002a 20400055 call p_set_tx_power_0db 
-002b 708a9a28 jam 0x28 ,core_tx_mixer_cfg1 
-002c 708a9b3f jam 0x3f ,core_tx_mixer_cfg2 
-002d 20203a35 branch initialize_radio_cont_next_2 
+0024 708a01ff jam 0xff ,core_clkpll_ctrl1 
+0025 20000064 nop 100 
+0026 708a020e jam 0x0e ,core_clkpll_ctrl2 
+0027 708a0003 jam 0x03 ,core_clkpll_ctrl0 
+0028 20400051 call p_set_tx_power_0db 
+0029 708a9a28 jam 0x28 ,core_tx_mixer_cfg1 
+002a 708a9b3f jam 0x3f ,core_tx_mixer_cfg2 
+002b 20203a35 branch initialize_radio_cont_next_2 
 
 p_soft_reset:
-002e 20800000 clear_stack 
-002f 6fe240cc fetch 4 ,mem_lpm_ctrl3 
-0030 67f2004c store 4 ,core_lpm_reg 
-0031 20403c16 call lpm_write_ctrl3 
-0032 20203803 branch soft_reset + 2 
+002c 20800000 clear_stack 
+002d 6fe240cc fetch 4 ,mem_lpm_ctrl3 
+002e 67f2004c store 4 ,core_lpm_reg 
+002f 20403c16 call lpm_write_ctrl3 
+0030 20203803 branch soft_reset + 2 
 
 p_dongle_write_kb_bind_status:
-0033 df200001 arg 1 ,loopcnt 
-0034 da204593 arg mem_dg_kb_bind_flag ,rega 
-0035 dfe00fcd arg dongle_kb_bind_otp_offect ,pdata 
-0036 20206883 branch otp_write 
+0031 df200001 arg 1 ,loopcnt 
+0032 da204593 arg mem_dg_kb_bind_flag ,rega 
+0033 dfe007cd arg dongle_kb_bind_otp_offect ,pdata 
+0034 20206883 branch otp_write 
 
 p_dongle_read_kb_bind_status:
-0037 58000fcd setarg dongle_kb_bind_otp_offect 
-0038 da204593 arg mem_dg_kb_bind_flag ,rega 
-0039 d8400001 arg 1 ,temp 
-003a 202068c5 branch otpd_read_data_with_pwr_operation 
+0035 580007cd setarg dongle_kb_bind_otp_offect 
+0036 da204593 arg mem_dg_kb_bind_flag ,rega 
+0037 d8400001 arg 1 ,temp 
+0038 202068c5 branch otpd_read_data_with_pwr_operation 
 
 p_g24_bind_mode_auto:
-003b 6fe0c561 fetch 1 ,mem_24g_work_mode 
-003c c1808000 rtnne dongle_bind 
-003d 6fe0c5e1 fetch 1 ,mem_dg_bind_disable 
-003e 243a4ae9 nbranch g24_bind_mode_auto + 10 ,blank 
-003f 20400041 call p_g24_bind_init 
-0040 20204ae3 branch g24_bind_mode_auto + 4 
+0039 6fe0c561 fetch 1 ,mem_24g_work_mode 
+003a c1808000 rtnne dongle_bind 
+003b 2040003d call p_g24_bind_init 
+003c 20204ae3 branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-0041 6fe0c560 fetch 1 ,mem_24g_mode_init 
-0042 c3808000 rtnbit1 dongle_bind 
-0043 79207e01 set1 dongle_bind ,pdata 
-0044 67e0c560 store 1 ,mem_24g_mode_init 
-0045 58000000 setarg 0 
-0046 67e1c51e store 3 ,mem_24g_device1_bind_step 
-0047 20204980 branch g24_bind_init + 8 
+003d 6fe0c560 fetch 1 ,mem_24g_mode_init 
+003e c3808000 rtnbit1 dongle_bind 
+003f 79207e01 set1 dongle_bind ,pdata 
+0040 67e0c560 store 1 ,mem_24g_mode_init 
+0041 58000000 setarg 0 
+0042 67e1c51e store 3 ,mem_24g_device1_bind_step 
+0043 20204980 branch g24_bind_init + 8 
 
 p_dongle_default_init:
-0048 204050c4 call dongle_default_init + 1 
-0049 6fe0c5e0 fetch 1 ,mem_24g_pair_tx_power_init 
-004a 67e0c51c store 1 ,mem_24g_pair_tx_power 
-004b 70451500 jam off ,mem_24g_disable_fec1 
-004c 202048fa branch g24_enable_1m 
+0044 204050c4 call dongle_default_init + 1 
+0045 6fe0c627 fetch 1 ,mem_24g_pair_tx_power_init 
+0046 67e0c51c store 1 ,mem_24g_pair_tx_power 
+0047 70451500 jam off ,mem_24g_disable_fec1 
+0048 202048fa branch g24_enable_1m 
 
 p_txon_next:
-004d 6fe0c116 fetch 1 ,mem_tx_power 
-004e c001805a beq tx_power_3db ,p_set_tx_power_3db 
-004f c003005c beq tx_power_6db ,p_set_tx_power_6db 
-0050 c0053a00 beq tx_power_10db ,set_tx_power_10db 
-0051 c04a3a09 beq tx_power_f20db ,set_tx_power_f20db 
-0052 c04f3a0c beq tx_power_f30db ,set_tx_power_f30db 
-0053 c055806a beq tx_power_f47db ,p_set_tx_power_f47db 
-0054 c0553a0f beq tx_power_factory ,set_tx_power_factory 
+0049 6fe0c116 fetch 1 ,mem_tx_power 
+004a c0018056 beq tx_power_3db ,p_set_tx_power_3db 
+004b c0030058 beq tx_power_6db ,p_set_tx_power_6db 
+004c c0053a00 beq tx_power_10db ,set_tx_power_10db 
+004d c04a3a09 beq tx_power_f20db ,set_tx_power_f20db 
+004e c04f3a0c beq tx_power_f30db ,set_tx_power_f30db 
+004f c0558066 beq tx_power_f47db ,p_set_tx_power_f47db 
+0050 c0553a0f beq tx_power_factory ,set_tx_power_factory 
 
 p_set_tx_power_0db:
-0055 708a3b2c jam 0x2c ,0x8a3b 
-0056 708a3c17 jam 0x17 ,0x8a3c 
-0057 708a398a jam 0x8a ,core_tx_pwr_ctrl0 
-0058 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
-0059 202039f4 branch set_rf_ldo_cfg89_2 
+0051 708a3b2c jam 0x2c ,0x8a3b 
+0052 708a3c17 jam 0x17 ,0x8a3c 
+0053 708a398a jam 0x8a ,core_tx_pwr_ctrl0 
+0054 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
+0055 202039f4 branch set_rf_ldo_cfg89_2 
 
 p_set_tx_power_3db:
-005a 708a3b48 jam 0x48 ,0x8a3b 
-005b 20200056 branch p_set_tx_power_0db + 1 
+0056 708a3b48 jam 0x48 ,0x8a3b 
+0057 20200052 branch p_set_tx_power_0db + 1 
 
 p_set_tx_power_6db:
-005c 708a3b70 jam 0x70 ,0x8a3b 
-005d 708a3c1f jam 0x1f ,0x8a3c 
-005e 708a39c9 jam 0xc9 ,core_tx_pwr_ctrl0 
-005f 20200058 branch p_set_tx_power_0db + 3 
+0058 708a3b70 jam 0x70 ,0x8a3b 
+0059 708a3c1f jam 0x1f ,0x8a3c 
+005a 708a39c9 jam 0xc9 ,core_tx_pwr_ctrl0 
+005b 20200054 branch p_set_tx_power_0db + 3 
 
 p_set_tx_power_f20db:
-0060 708a3985 jam 0x85 ,core_tx_pwr_ctrl0 
-0061 708a3a04 jam 0x04 ,core_tx_pwr_ctrl1 
-0062 708a14a3 jam 0xa3 ,core_rf_ldo_cfg8 
-0063 708a150a jam 0x0a ,core_rf_ldo_cfg9 
-0064 708a3b18 jam 0x18 ,0x8a3b 
-0065 708a3c0f jam 0x0f ,0x8a3c 
-0066 20600000 rtn 
+005c 708a3985 jam 0x85 ,core_tx_pwr_ctrl0 
+005d 708a3a04 jam 0x04 ,core_tx_pwr_ctrl1 
+005e 708a14a3 jam 0xa3 ,core_rf_ldo_cfg8 
+005f 708a150a jam 0x0a ,core_rf_ldo_cfg9 
+0060 708a3b18 jam 0x18 ,0x8a3b 
+0061 708a3c0f jam 0x0f ,0x8a3c 
+0062 20600000 rtn 
 
 p_set_tx_power_f30db:
-0067 708a3983 jam 0x83 ,core_tx_pwr_ctrl0 
-0068 708a3a02 jam 0x02 ,core_tx_pwr_ctrl1 
-0069 20200062 branch p_set_tx_power_f20db + 2 
+0063 708a3983 jam 0x83 ,core_tx_pwr_ctrl0 
+0064 708a3a02 jam 0x02 ,core_tx_pwr_ctrl1 
+0065 2020005e branch p_set_tx_power_f20db + 2 
 
 p_set_tx_power_f47db:
-006a 708a3943 jam 0x43 ,core_tx_pwr_ctrl0 
-006b 708a3a00 jam 0x00 ,core_tx_pwr_ctrl1 
-006c 202039ef branch set_rf_ldo_cfg89 
+0066 708a3982 jam 0x82 ,core_tx_pwr_ctrl0 
+0067 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
+0068 2020005e branch p_set_tx_power_f20db + 2 
 
 p_set_tx_power_f50db:
-006d 708a3942 jam 0x42 ,core_tx_pwr_ctrl0 
-006e 708a3a00 jam 0x00 ,core_tx_pwr_ctrl1 
-006f 202039ef branch set_rf_ldo_cfg89 
-
-p_dongle_init:
-0070 5800007c setarg p_dongle_dispatch 
-0071 67e1452b store 2 ,mem_cb_24g_receive_process 
-0072 580051b4 setarg dongle_g24_mouse 
-0073 67e1452f store 2 ,mem_cb_24g_data_device1 
-0074 5800007b setarg p_dongle_g24_kb 
-0075 67e14531 store 2 ,mem_cb_24g_data_device2 
-0076 58000132 setarg p_dongle_ackpayload_prep 
-0077 67e1452d store 2 ,mem_cb_24g_ackpayload 
-0078 580000c7 setarg p_dongle_usb_config 
-0079 67e106f3 store 2 ,mem_cb_usb_config 
-007a 2020703f branch usb_init 
-
-p_dongle_g24_kb:
-007b 20600000 rtn 
-
-p_dongle_dispatch:
-007c 6fe0c55b fetch 1 ,mem_24g_pair_mode 
-007d c000007f beq 0x00 ,p_dongle_auto_bind 
-007e 202050cd branch dongle_dispatch + 1 
-
-p_dongle_auto_bind:
-007f 2040008a call p_g24_mode_switch_init 
-
-p_dongle_auto_bind_loop:
-0080 d8e00003 arg g24_mode_bind_enale_timer ,queue 
-0081 2040742e call timer_check 
-0082 205a008f call p_g24_mode_switch_exit ,blank 
-0083 20404a7f call g24_mode_switch_bind_work 
-0084 20404aa5 call g24_mode_switch_bind_search 
-0085 20405183 call dongle_work_mode_auto 
-0086 20404adf call g24_bind_mode_auto 
-0087 20404afc call g24_search_mode_auto 
-0088 2040513f call dongle_usb_dispatch 
-0089 20200080 branch p_dongle_auto_bind_loop 
-
-p_g24_mode_switch_init:
-008a 7045e100 jam 0 ,mem_dg_bind_disable 
-008b 5800bb80 setarg 48000 
-008c d8e00003 arg g24_mode_bind_enale_timer ,queue 
-008d 20407420 call timer_init 
-008e 20204a7a branch g24_mode_switch_init 
-
-p_g24_mode_switch_exit:
-008f 7045e101 jam 1 ,mem_dg_bind_disable 
-0090 20600000 rtn 
+0069 708a3981 jam 0x81 ,core_tx_pwr_ctrl0 
+006a 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
+006b 2020005e branch p_set_tx_power_f20db + 2 
 
 p_usb_init:
-0091 20406eb3 call enable_authrom 
-0092 20407056 call usb_init_param 
-0093 70079b00 jam 0 ,mem_usb_get_protocol_flag 
-0094 70062e00 jam 0x00 ,0x62e 
-0095 708c0000 jam 0x00 ,core_usb_config 
-0096 20002710 nop 10000 
-0097 708c1800 jam 0x00 ,core_usb_trig 
-0098 6ff10050 fetch 2 ,core_clkoff 
-0099 793ffe0a set0 clock_off_usb ,pdata 
-009a 67f10050 store 2 ,core_clkoff 
-009b 708c1100 jam 0x00 ,core_usb_hmode 
-009c 708c003c jam 0x3c ,core_usb_config 
-009d 58000d00 setarg mem_usb_rxbuf_new 
-009e 67f10c03 store 2 ,core_usb_rx_saddr 
-009f 67f10c07 store 2 ,core_usb_rxptr 
-00a0 58000d44 setarg mem_usb_rxbuf_new_end 
-00a1 67f10c05 store 2 ,core_usb_rx_eaddr 
-00a2 2020704f branch usb_init + 16 
-
-p_usb_tx:
-00a3 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00a4 207a0000 rtn blank 
-00a5 6ff08c24 fetch 1 ,core_usb_txbusy 
-00a6 1fe17e0f and_into 0x0f ,pdata 
-00a7 243a7383 nbranch usb_inwake_state_tx_dispose ,blank 
-00a8 6fe087ac fetch 1 ,mem_usb_device_enumeration_endflag 
-00a9 203a7356 branch usb_tx_fifo_release ,blank 
-00aa 6fe0879e fetch 1 ,mem_usb_state 
-00ab c001f393 beq usb_sleep ,usb_windows_wakeup 
-00ac c0817356 bne usb_connected ,usb_tx_fifo_release 
-00ad 6fe087a0 fetch 1 ,mem_usb_clear_remote_wakeup 
-00ae 243a7356 nbranch usb_tx_fifo_release ,blank 
-00af 2040732a call usb_tx_data_ep1 
-00b0 204000b2 call p_usb_tx_data_ep2 
-00b1 20207342 branch usb_tx_data_ep3 
-
-p_usb_tx_data_ep2:
-00b2 6ff08c24 fetch 1 ,core_usb_txbusy 
-00b3 c3810000 rtnbit1 2 
-00b4 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00b5 c4010000 rtnbit0 2 
-00b6 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00b7 793ffe02 set0 2 ,pdata 
-00b8 67e087ab store 1 ,mem_usb_tx_enable 
-00b9 6fe087aa fetch 1 ,mem_usb_ep2_data 
-00ba 207a0000 rtn blank 
-00bb c01000c0 beq usb_ep2_ms ,p_usb_tx_ms_data 
-00bc 7007aa00 jam 0 ,mem_usb_ep2_data 
-00bd c1108000 rtneq usb_ep2_multikey 
-00be c1110000 rtneq usb_ep2_systemkey 
-00bf 20203a8a branch assert 
-
-p_usb_tx_ms_data:
-00c0 6fe0879b fetch 1 ,mem_usb_get_protocol_flag 
-00c1 203a7373 branch usb_tx_ms_data_normal_mode ,blank 
-00c2 6fe0879c fetch 1 ,mem_usb_set_protocol_status 
-00c3 203a00c5 branch p_usb_tx_ms_data_mac_boot_mode ,blank 
-00c4 20207373 branch usb_tx_ms_data_normal_mode 
-
-p_usb_tx_ms_data_mac_boot_mode:
-00c5 7007aa00 jam 0 ,mem_usb_ep2_data 
-00c6 20207368 branch usb_tx_ms_data_mac_boot_regroup + 3 
+006c 20406eb3 call enable_authrom 
+006d 20407056 call usb_init_param 
+006e 708c0000 jam 0x00 ,core_usb_config 
+006f 20002710 nop 10000 
+0070 708c1800 jam 0x00 ,core_usb_trig 
+0071 6ff10050 fetch 2 ,core_clkoff 
+0072 793ffe0a set0 clock_off_usb ,pdata 
+0073 67f10050 store 2 ,core_clkoff 
+0074 708c1100 jam 0x00 ,core_usb_hmode 
+0075 708c003c jam 0x3c ,core_usb_config 
+0076 58000d00 setarg mem_usb_rxbuf_new 
+0077 67f10c03 store 2 ,core_usb_rx_saddr 
+0078 67f10c07 store 2 ,core_usb_rxptr 
+0079 58000d44 setarg mem_usb_rxbuf_new_end 
+007a 67f10c05 store 2 ,core_usb_rx_eaddr 
+007b 2020704f branch usb_init + 16 
+
+p_dongle_init:
+007c 580050cc setarg dongle_dispatch 
+007d 67e1452b store 2 ,mem_cb_24g_receive_process 
+007e 580051b4 setarg dongle_g24_mouse 
+007f 67e1452f store 2 ,mem_cb_24g_data_device1 
+0080 580051c5 setarg dongle_g24_kb 
+0081 67e14531 store 2 ,mem_cb_24g_data_device2 
+0082 580000a7 setarg p_dongle_ackpayload_prep 
+0083 67e1452d store 2 ,mem_cb_24g_ackpayload 
+0084 58000087 setarg p_dongle_usb_config 
+0085 67e106f3 store 2 ,mem_cb_usb_config 
+0086 2020006c branch p_usb_init 
 
 p_dongle_usb_config:
-00c7 6fe0c5b3 fetch 1 ,mem_dg_sys_config 
-00c8 c28200cb bbit1 dg_enable_kb_icon ,p_dongle_usb_config_kb 
-00c9 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
-00ca c0ad00cf bne dongle_kb_bind_success ,p_dongle_usb_config_param 
+0087 6fe0c5b3 fetch 1 ,mem_dg_sys_config 
+0088 c282008b bbit1 dg_enable_kb_icon ,p_dongle_usb_config_kb 
+0089 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
+008a c0ad008f bne dongle_kb_bind_success ,p_dongle_usb_config_param 
 
 p_dongle_usb_config_kb:
-00cb 7045935a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
-00cc 6ff2137a fetch 4 ,usb_devicedata_addr + 9 
-00cd 79207e1d set1 29 ,pdata 
-00ce 67e20626 store 4 ,mem_devicedesc + 9 
+008b 7045935a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+008c 6ff2137a fetch 4 ,usb_devicedata_addr + 9 
+008d 79207e1d set1 29 ,pdata 
+008e 67e20626 store 4 ,mem_devicedesc + 9 
 
 p_dongle_usb_config_param:
-00cf 6fe0c5de fetch 1 ,mem_dg_usb_device_iserial_number 
-00d0 67e0862e store 1 ,mem_devicedesc + 17 
-00d1 204050fc call dongle_usb_device_name 
-00d2 2040708d call usb_tx_interval_config 
-00d3 204050e9 call dongle_usb_vid_pid_config 
-00d4 202000d5 branch p_dongle_usb_hid_icon_config 
+008f 6fe0c5de fetch 1 ,mem_dg_usb_device_iserial_number 
+0090 67e0862e store 1 ,mem_devicedesc + 17 
+0091 204050fc call dongle_usb_device_name 
+0092 2040708d call usb_tx_interval_config 
+0093 2040009e call p_dongle_usb_vid_pid_config 
 
 p_dongle_usb_hid_icon_config:
-00d5 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
-00d6 c02d00db beq dongle_kb_bind_success ,p_dongle_usb_kb_hidreportdesc 
-00d7 58009272 setarg usb_kbdata_vendor_define_addr 
-00d8 67e105fb store 2 ,mem_hidreportdesc_kb 
-00d9 70064a1a jam 0x1a ,mem_confdesc + 26 
-00da 20600000 rtn 
+0094 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
+0095 c02d009a beq dongle_kb_bind_success ,p_dongle_usb_kb_hidreportdesc 
+0096 58009272 setarg usb_kbdata_vendor_define_addr 
+0097 67e105fb store 2 ,mem_hidreportdesc_kb 
+0098 70064a1a jam 0x1a ,mem_confdesc + 26 
+0099 20600000 rtn 
 
 p_dongle_usb_kb_hidreportdesc:
-00db 580045e2 setarg mem_dongle_kb_desc_new 
-00dc 67e105fb store 2 ,mem_hidreportdesc_kb 
-00dd 70064a17 jam 0x17 ,mem_confdesc + 26 
-00de 58004628 setarg mem_dongle_ms_desc_new 
-00df 67e105fd store 2 ,mem_hidreportdesc_m 
-00e0 7006634b jam 0x4b ,mem_confdesc + 51 
-00e1 20600000 rtn 
-
-p_usb0_request_get_descriptor:
-00e2 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
-00e3 c010f137 beq dsc_hid ,dsc_hid_info + 1 
-00e4 20207130 branch usb0_request_get_descriptor + 2 
+009a 580045e0 setarg mem_dongle_kb_desc_new 
+009b 67e105fb store 2 ,mem_hidreportdesc_kb 
+009c 70064a41 jam 0x41 ,mem_confdesc + 26 
+009d 20600000 rtn 
+
+p_dongle_usb_vid_pid_config:
+009e 6fe086f9 fetch 1 ,mem_usb_vid_pid 
+009f 207a0000 rtn blank 
+00a0 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
+00a1 c02d00a5 beq dongle_kb_bind_success ,p_dongle_usb_vid_pid_for_suit 
+
+p_dongle_usb_vid_pid_for_mouse_only_auto_pair:
+00a2 6fe206fa fetch 4 ,mem_usb_vid_pid + 1 
+
+p_dongle_usb_vid_pid_store:
+00a3 67e20626 store 4 ,mem_devicedesc + 9 
+00a4 20600000 rtn 
+
+p_dongle_usb_vid_pid_for_suit:
+00a5 6fe206fe fetch 4 ,mem_usb_vid_pid + 5 
+00a6 202000a3 branch p_dongle_usb_vid_pid_store 
+
+p_dongle_ackpayload_prep:
+00a7 6fe0c4d4 fetch 1 ,mem_24g_data_type 
+00a8 c00080aa beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+00a9 c00100ad beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+
+p_dongle_ackpayload_prep_mouse:
+00aa 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+00ab c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+00ac 202000af branch p_dongle_ackpayload_prep_end 
+
+p_dongle_ackpayload_prep_keyboard:
+00ad 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+00ae c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+
+p_dongle_ackpayload_prep_end:
+00af 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
+00b0 c000d1a8 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+00b1 c00180b3 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+00b2 20600000 rtn 
+
+p_dongle_g24_kb_led_ackpayload_prep:
+00b3 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
+00b4 c000c984 beq datatype_device1 ,g24_bind_ackpayload_prep + 1 
+00b5 c07fc984 beq datatype_attemp ,g24_bind_ackpayload_prep + 1 
+00b6 70079700 jam 0 ,mem_usb_tx_win_enable 
+00b7 7044d301 jam 0x01 ,mem_24g_datalen 
+00b8 6fe08798 fetch 1 ,mem_usb_tx_mac_enable 
+00b9 203a00bd branch p_dongle_g24_kb_led_ackpayload_prep_next + 3 ,blank 
+
+p_dongle_g24_kb_led_ackpayload_prep_next:
+00ba 6fe0c56c fetch 1 ,mem_24g_led_status 
+00bb 79207e07 set1 7 ,pdata 
+00bc 67e0c56c store 1 ,mem_24g_led_status 
+00bd 6fe0c56c fetch 1 ,mem_24g_led_status 
+00be 67e0c464 store 1 ,mem_24g_txbuf 
+00bf 20600000 rtn 
 
 p_g24_search_mode_auto:
-00e5 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00e6 c1838000 rtnne dongle_search 
-00e7 204000e9 call p_g24_search_mode_init 
-00e8 20204b00 branch g24_search_mode_auto + 4 
+00c0 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00c1 c1838000 rtnne dongle_search 
+00c2 204000c4 call p_g24_search_mode_init 
+00c3 20204b00 branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00e9 6fe0c560 fetch 1 ,mem_24g_mode_init 
-00ea c3838000 rtnbit1 dongle_search 
-00eb 79207e07 set1 dongle_search ,pdata 
-00ec 67e0c560 store 1 ,mem_24g_mode_init 
-00ed 6fe0c56e fetch 1 ,mem_tx_power_temp 
-00ee 67e0c116 store 1 ,mem_tx_power 
-00ef 20204af0 branch g24_search_mode_init + 4 
+00c4 6fe0c560 fetch 1 ,mem_24g_mode_init 
+00c5 c3838000 rtnbit1 dongle_search 
+00c6 79207e07 set1 dongle_search ,pdata 
+00c7 67e0c560 store 1 ,mem_24g_mode_init 
+00c8 6fe0c56e fetch 1 ,mem_tx_power_temp 
+00c9 67e0c116 store 1 ,mem_tx_power 
+00ca 20204af0 branch g24_search_mode_init + 4 
 
 p_g24_mode_switch_bind_search:
-00f0 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00f1 c1000000 rtneq dongle_work 
-00f2 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-00f3 247a0000 nrtn blank 
-00f4 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-00f5 247a0000 nrtn blank 
-00f6 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
-00f7 207a0000 rtn blank 
-00f8 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
-00f9 c1800000 rtnne 0 
-00fa 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
-00fb c1800000 rtnne 0 
-00fc 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
-00fd 2fe00603 compare 3 ,pdata ,3 
-00fe 2020cac1 branch g24_mode_b_s_switch_exit ,true 
-00ff 204048be call g24_timer_check 
-0100 24740000 nrtn user 
-0101 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-0102 1fe0fe01 increase 1 ,pdata 
-0103 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
-0104 d84007d0 arg 0x7d0 ,temp 
-0105 98467c00 isub temp ,null 
-0106 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
-0107 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
-0108 1fe0fe01 increase 1 ,pdata 
-0109 1fe17e01 and_into 1 ,pdata 
-010a 67e0c574 store 1 ,mem_24g_b_s_time_slice 
-010b c0004b88 beq 0 ,g24_search_mode_enable 
-010c 20204abc branch g24_mode_switch_bind_search_next + 1 
+00cb 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00cc c1000000 rtneq dongle_work 
+00cd 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+00ce 247a0000 nrtn blank 
+00cf 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00d0 247a0000 nrtn blank 
+00d1 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
+00d2 207a0000 rtn blank 
+00d3 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
+00d4 c1800000 rtnne 0 
+00d5 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00d6 c1800000 rtnne 0 
+00d7 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
+00d8 2fe00603 compare 3 ,pdata ,3 
+00d9 2020cac1 branch g24_mode_b_s_switch_exit ,true 
+00da 204048be call g24_timer_check 
+00db 24740000 nrtn user 
+00dc 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+00dd 1fe0fe01 increase 1 ,pdata 
+00de 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
+00df d84007d0 arg 0x7d0 ,temp 
+00e0 98467c00 isub temp ,null 
+00e1 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
+00e2 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
+00e3 1fe0fe01 increase 1 ,pdata 
+00e4 1fe17e01 and_into 1 ,pdata 
+00e5 67e0c574 store 1 ,mem_24g_b_s_time_slice 
+00e6 c0004b88 beq 0 ,g24_search_mode_enable 
+00e7 20204abc branch g24_mode_switch_bind_search_next + 1 
 
 p_g24_bind_data_parse_next:
-010d 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-010e c05549a2 beq datatype_bind ,g24_bind_first_step 
-010f c02ac9b3 beq datatype_config ,g24_bind_second_step 
-0110 c01149d4 beq datatype_ok ,g24_bind_third_step 
-0111 c07f8128 beq datatype_attemp ,p_g24_data_attemp 
-0112 20600000 rtn 
+00e8 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00e9 c05549a2 beq datatype_bind ,g24_bind_first_step 
+00ea c02ac9b3 beq datatype_config ,g24_bind_second_step 
+00eb c01149d4 beq datatype_ok ,g24_bind_third_step 
+00ec c07f8103 beq datatype_attemp ,p_g24_data_attemp 
+00ed 20600000 rtn 
 
 p_g24_receive_packet_start_next:
-0113 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-0114 c0008118 beq datatype_device1 ,p_g24_data_device1 
-0115 c0014a4e beq datatype_device2 ,g24_data_device2 
-0116 c07f8126 beq datatype_attemp ,p_g24_data_receive_attemp 
-0117 20204a39 branch g24_rx_interrupt_clear 
+00ee 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00ef c00080f3 beq datatype_device1 ,p_g24_data_device1 
+00f0 c0014a4e beq datatype_device2 ,g24_data_device2 
+00f1 c07f8101 beq datatype_attemp ,p_g24_data_receive_attemp 
+00f2 20204a39 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-0118 20404a08 call g24_binding_dvc1_living 
-0119 20404ba2 call g24_ch_timer_reinit 
-011a 6fe0c555 fetch 1 ,mem_24g_abort_packet 
-011b 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
-011c 284ffe03 isolate1 bit_abort ,temp 
-011d 7920fe00 setflag true ,0 ,pdata 
-011e 67e0c555 store 1 ,mem_24g_abort_packet 
-011f c0008121 beq 1 ,p_g24_data_attemp_device1_abort 
-0120 20204a47 branch g24_data_device1 + 8 
+00f3 20404a08 call g24_binding_dvc1_living 
+00f4 20404ba2 call g24_ch_timer_reinit 
+00f5 6fe0c555 fetch 1 ,mem_24g_abort_packet 
+00f6 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
+00f7 284ffe03 isolate1 bit_abort ,temp 
+00f8 7920fe00 setflag true ,0 ,pdata 
+00f9 67e0c555 store 1 ,mem_24g_abort_packet 
+00fa c00080fc beq 1 ,p_g24_data_attemp_device1_abort 
+00fb 20204a47 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-0121 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-0122 247a0000 nrtn blank 
-0123 70452901 jam 1 ,mem_24g_device1_bind_disable 
-0124 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
-0125 20204c14 branch g24_store_device1_addr 
+00fc 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+00fd 247a0000 nrtn blank 
+00fe 70452901 jam 1 ,mem_24g_device1_bind_disable 
+00ff 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
+0100 20204c14 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-0126 20404a16 call g24_bind_device_status 
-0127 20200128 branch p_g24_data_attemp 
+0101 20404a16 call g24_bind_device_status 
+0102 20200103 branch p_g24_data_attemp 
 
 p_g24_data_attemp:
-0128 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
-0129 c000812c beq datatype_device1 ,p_g24_data_attemp_device1 
-012a c001012f beq datatype_device2 ,p_g24_data_attemp_device2 
-012b 20600000 rtn 
+0103 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
+0104 c0008107 beq datatype_device1 ,p_g24_data_attemp_device1 
+0105 c001010a beq datatype_device2 ,p_g24_data_attemp_device2 
+0106 20600000 rtn 
 
 p_g24_data_attemp_device1:
-012c 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-012d 247a0000 nrtn blank 
-012e 20204c12 branch g24_data_attemp_device1 
+0107 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+0108 247a0000 nrtn blank 
+0109 20204c12 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-012f 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
-0130 247a0000 nrtn blank 
-0131 20204c16 branch g24_data_attemp_device2 
-
-p_dongle_ackpayload_prep:
-0132 6fe0c4d4 fetch 1 ,mem_24g_data_type 
-0133 c0008135 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-0134 c0010138 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
-
-p_dongle_ackpayload_prep_mouse:
-0135 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-0136 c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-0137 2020013a branch p_dongle_ackpayload_prep_end 
-
-p_dongle_ackpayload_prep_keyboard:
-0138 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-0139 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
-
-p_dongle_ackpayload_prep_end:
-013a 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
-013b c000813e beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-013c c0018142 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-013d 20600000 rtn 
-
-p_dongle_g24_bind_ackpayload_prep:
-013e 70455c01 jam 1 ,mem_24g_ackpayload_enable 
-013f 6fe0c561 fetch 1 ,mem_24g_work_mode 
-0140 c1000000 rtneq dongle_work 
-0141 202051a8 branch dongle_g24_bind_ackpayload_prep 
-
-p_dongle_g24_kb_led_ackpayload_prep:
-0142 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
-0143 c000813e beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
-0144 c07f813e beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
-0145 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
+010a 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
+010b 247a0000 nrtn blank 
+010c 20204c16 branch g24_data_attemp_device2 
               org 0x3800
 
 start:
Index: usb_1M/program/patch.prog
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(working copy)
@@ -8,13 +8,11 @@
 	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 +21,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 +57,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
@@ -86,8 +84,6 @@
 p_g24_bind_mode_auto:
 	fetch 1,mem_24g_work_mode
 	rtnne DONGLE_BIND
-	fetch 1,mem_dg_bind_disable
-	nbranch g24_bind_mode_auto+10,blank
 	call p_g24_bind_init
 	branch g24_bind_mode_auto+4
 p_g24_bind_init:
@@ -98,7 +94,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 +133,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,73 +143,25 @@
 	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
-	branch set_rf_ldo_cfg89
+	jam 0x82,core_tx_pwr_ctrl0
+	jam 0x01,core_tx_pwr_ctrl1
+	branch p_set_tx_power_f20db+2
 p_set_tx_power_f50db:
-	jam 0x42,core_tx_pwr_ctrl0
-	jam 0x00,core_tx_pwr_ctrl1
-	branch set_rf_ldo_cfg89
-
-/*
+	jam 0x81,core_tx_pwr_ctrl0
+	jam 0x01,core_tx_pwr_ctrl1
+	branch p_set_tx_power_f20db+2
+/*	
 	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
-	setarg dongle_g24_mouse
-	store 2,mem_cb_24g_data_device1
-	setarg p_dongle_g24_kb
-	store 2,mem_cb_24g_data_device2
-	setarg p_dongle_ackpayload_prep
-	store 2,mem_cb_24g_ackpayload
-	setarg p_dongle_usb_config
-	store 2,mem_cb_usb_config
-	branch usb_init
-
-p_dongle_g24_kb:
-	rtn
-
-p_dongle_dispatch:
-	fetch 1,mem_24g_pair_mode
-	beq 0x00,p_dongle_auto_bind
-	branch dongle_dispatch+1
-
-p_dongle_auto_bind:
-	call p_g24_mode_switch_init
-p_dongle_auto_bind_loop:
-	arg G24_MODE_BIND_ENALE_TIMER,queue
-	call timer_check
-	call p_g24_mode_switch_exit,blank
-	call g24_mode_switch_bind_work
-	call g24_mode_switch_bind_search
-	call dongle_work_mode_auto
-	call g24_bind_mode_auto
-	call g24_search_mode_auto
-	call dongle_usb_dispatch
-	branch p_dongle_auto_bind_loop
-
-p_g24_mode_switch_init:
-	jam 0,mem_dg_bind_disable
-	setarg 48000		// 30s
-	arg G24_MODE_BIND_ENALE_TIMER,queue
-	call timer_init
-	branch g24_mode_switch_init
-
-p_g24_mode_switch_exit:
-	jam 1,mem_dg_bind_disable
-	rtn
+*/	
 
 p_usb_init:
 	call enable_authrom
 	call usb_init_param
-	jam 0,mem_usb_get_protocol_flag
-	jam 0x00,0x62e
 	jam 0x00,core_usb_config
 	nop 10000
 	jam 0x00,core_usb_trig
@@ -228,48 +176,20 @@
 	setarg mem_usb_rxbuf_new_end
 	store 2,core_usb_rx_eaddr
 	branch usb_init+16
-p_usb_tx:
-	fetch 1,mem_usb_tx_enable
-	rtn blank
-	fetch 1,core_usb_txbusy
-	and_into 0x0f,pdata
-	nbranch usb_inwake_state_tx_dispose,blank
-	fetch 1,mem_usb_device_enumeration_endflag
-	branch usb_tx_fifo_release,blank
-	fetch 1,mem_usb_state
-	beq USB_SLEEP,usb_windows_wakeup
-	bne USB_CONNECTED,usb_tx_fifo_release
-	fetch 1,mem_usb_clear_remote_wakeup
-	nbranch usb_tx_fifo_release,blank
-	call usb_tx_data_ep1
-	call p_usb_tx_data_ep2
-	branch usb_tx_data_ep3
-p_usb_tx_data_ep2:
-	fetch 1,core_usb_txbusy
-	rtnbit1 2
-	fetch 1,mem_usb_tx_enable
-	rtnbit0 2
-	fetch 1,mem_usb_tx_enable
-	set0 2,pdata
-	store 1,mem_usb_tx_enable
-	fetch 1,mem_usb_ep2_data
-	rtn blank
-	beq USB_EP2_MS,p_usb_tx_ms_data
-	jam 0,mem_usb_ep2_data
-	rtneq USB_EP2_MULTIKEY
-	rtneq USB_EP2_SYSTEMKEY
-	branch assert
-p_usb_tx_ms_data:
-	fetch 1,mem_usb_get_protocol_flag
-	branch usb_tx_ms_data_normal_mode,blank
-	fetch 1,mem_usb_set_protocol_status
-	branch p_usb_tx_ms_data_mac_boot_mode,blank
-	branch usb_tx_ms_data_normal_mode
-
-p_usb_tx_ms_data_mac_boot_mode:
-	jam 0,mem_usb_ep2_data
-	branch usb_tx_ms_data_mac_boot_regroup+3
 
+p_dongle_init:
+	setarg dongle_dispatch
+	store 2,mem_cb_24g_receive_process
+	setarg dongle_g24_mouse
+	store 2,mem_cb_24g_data_device1
+	setarg dongle_g24_kb
+	store 2,mem_cb_24g_data_device2
+	setarg p_dongle_ackpayload_prep
+	store 2,mem_cb_24g_ackpayload
+	setarg p_dongle_usb_config
+	store 2,mem_cb_usb_config
+	branch p_usb_init
+	
 p_dongle_usb_config:
 	fetch 1,mem_dg_sys_config
 	bbit1 DG_ENABLE_KB_ICON,p_dongle_usb_config_kb
@@ -285,9 +205,7 @@
 	store 1,mem_devicedesc+17
 	call dongle_usb_device_name
 	call usb_tx_interval_config
-	call dongle_usb_vid_pid_config
-	branch p_dongle_usb_hid_icon_config
-
+	call p_dongle_usb_vid_pid_config
 p_dongle_usb_hid_icon_config:
 	fetch 1,mem_dg_kb_bind_flag
 	beq DONGLE_KB_BIND_SUCCESS,p_dongle_usb_kb_hidreportdesc
@@ -295,22 +213,98 @@
 	store 2,mem_hidreportdesc_kb
 	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
 	rtn
-	
 p_dongle_usb_kb_hidreportdesc:
 	setarg mem_dongle_kb_desc_new
 	store 2,mem_hidreportdesc_kb
-	jam 0x17,mem_confdesc+26//hid_descriptor--keyboard length	
-	setarg mem_dongle_ms_desc_new
-	store 2,mem_hidreportdesc_m
-	jam 0x4b,mem_confdesc+51
+	jam 0x41,mem_confdesc+26//hid_descriptor--keyboard length	
 	rtn
 
-p_usb0_request_get_descriptor:
-	fetch 1,mem_usb_setup_bValueH
-	beq DSC_HID,dsc_hid_info+1
-	branch usb0_request_get_descriptor+2
 
+p_dongle_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_dg_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,p_dongle_usb_vid_pid_for_suit
+p_dongle_usb_vid_pid_for_mouse_only_auto_pair:	
+	fetch 4,mem_usb_vid_pid+1
+p_dongle_usb_vid_pid_store:	
+	store 4,mem_devicedesc+9
+ifdef VERSION_0003
+	setarg 0x0004
+	store 2,mem_devicedesc+13
+endif
+	rtn
+p_dongle_usb_vid_pid_for_suit:
+	fetch 4,mem_usb_vid_pid+5
+	branch p_dongle_usb_vid_pid_store
+
+p_dongle_ackpayload_prep:
+	fetch 1,mem_24g_data_type
+	beq DATATYPE_DEVICE1,p_dongle_ackpayload_prep_mouse
+	beq DATATYPE_DEVICE2,p_dongle_ackpayload_prep_keyboard
+p_dongle_ackpayload_prep_mouse:
+	fetch 1,mem_dg_pc_sleep_flag
+	bbit1 0,dongle_pc_sleep_ackpayload_prep_mouse
+	branch p_dongle_ackpayload_prep_end
+
+p_dongle_ackpayload_prep_keyboard:
+	fetch 1,mem_dg_pc_sleep_flag
+	bbit1 1,dongle_pc_sleep_ackpayload_prep_keyboard
+p_dongle_ackpayload_prep_end:
+	fetch 1,mem_24g_ackpayload_enable
+	beq BIND_ACKPAYLOAD,dongle_g24_bind_ackpayload_prep
+	beq KB_LED_ACKPAYLOAD,p_dongle_g24_kb_led_ackpayload_prep
+	rtn
 
+p_dongle_g24_kb_led_ackpayload_prep:
+	fetch 1,mem_24g_rxbuf+2
+	beq DATATYPE_DEVICE1,g24_bind_ackpayload_prep+1
+	beq DATATYPE_ATTEMP,g24_bind_ackpayload_prep+1
+	// branch dongle_g24_kb_led_ackpayload_prep+3
+	jam 0,mem_usb_tx_win_enable
+	jam 0x01,mem_24g_datalen
+	fetch 1,mem_usb_tx_mac_enable
+	branch p_dongle_g24_kb_led_ackpayload_prep_next+3,blank	
+p_dongle_g24_kb_led_ackpayload_prep_next:
+	fetch 1,mem_24g_led_status
+	set1 7,pdata	
+	store 1,mem_24g_led_status
+	fetch 1,mem_24g_led_status
+	store 1,mem_24g_txbuf	
+	rtn
+/*
+p_le_enable_phy_by_pdata:
+	copy temp,pdata
+	bbit1 BIT_LE_2M_PHY,p_le_enable_2M
+	branch le_enable_phy_by_pdata+3
+p_le_enable_2M:
+	jam 0x89,core_rx_bq_cfg0	//bit7 set1,improve 2M rx sensitivity
+	branch le_enable_2M
+
+
+p_set_freq_tx:
+	jam 0x12,core_syn_top_ctrl
+	storet 1,mem_last_freq
+	add temp,2,rega
+	call rf_tx_write_freq
+	//bmark1 mark_pllon,txon
+	nop 600
+	branch txon
+*/
+/*
+p_g24_receive_skip_end:
+	fetch 1,mem_dg_sys_config
+	bbit0 DG_ENABLE_NEW_REVISION,g24_receive_skip_end+1
+	enable user3
+	nop 300
+	fetch 1,mem_24g_rxbuf+1
+	set1 bit_ack_24g,pdata
+	store 1,mem_24g_rxbuf+1	//sending ack once
+	//set1 mark_pllon,mark	//not waiting pll on
+	call g24_ackpayload_prep
+	call g24_transmit_prep
+	branch g24_transmit
+*/
 
 p_g24_search_mode_auto:
 	fetch 1,mem_24g_work_mode
@@ -430,7 +424,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
@@ -467,29 +461,3 @@
 	fetch 1,mem_24g_device2_bind_disable
 	nrtn blank
 	branch g24_data_attemp_device2
-p_dongle_ackpayload_prep:
-	fetch 1,mem_24g_data_type
-	beq DATATYPE_DEVICE1,p_dongle_ackpayload_prep_mouse
-	beq DATATYPE_DEVICE2,p_dongle_ackpayload_prep_keyboard
-p_dongle_ackpayload_prep_mouse:
-	fetch 1,mem_dg_pc_sleep_flag
-	bbit1 0,dongle_pc_sleep_ackpayload_prep_mouse
-	branch p_dongle_ackpayload_prep_end
-p_dongle_ackpayload_prep_keyboard:
-	fetch 1,mem_dg_pc_sleep_flag
-	bbit1 1,dongle_pc_sleep_ackpayload_prep_keyboard
-p_dongle_ackpayload_prep_end:
-	fetch 1,mem_24g_ackpayload_enable
-	beq BIND_ACKPAYLOAD,p_dongle_g24_bind_ackpayload_prep
-	beq KB_LED_ACKPAYLOAD,p_dongle_g24_kb_led_ackpayload_prep
-	rtn
-p_dongle_g24_bind_ackpayload_prep:
-	jam 1,mem_24g_ackpayload_enable
-	fetch 1,mem_24g_work_mode
-	rtneq DONGLE_WORK
-	branch dongle_g24_bind_ackpayload_prep
-p_dongle_g24_kb_led_ackpayload_prep:
-	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
Index: usb_1M/program/usb.prog
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/program/usb.prog	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/program/usb.prog	(working copy)
@@ -42,7 +42,7 @@
 	arg mem_usb_clear_mem_start,contw
 	isub contw,loopcnt
 	branch clear_mem
-
+	
 //usb_offline_check_init:
 //	fetcht 1,mem_usb_offline_check_gpio
 //	branch gpio_config_input
@@ -100,7 +100,7 @@
 	arg USB_DEVICEDATA_ADDR,contr
 	arg mem_devicedesc,contw
 	arg 19,loopcnt
-	call memcpy
+	call memcpy	
 	call usb_confdesc_config
 usb_config_cb:
 	fetch 2,mem_cb_usb_config
@@ -112,7 +112,7 @@
 usb_confdesc_config_without_ep3:
 	arg 60,loopcnt
 	arg mem_confdesc,contw
-	arg USB_CONFDATA_ADDR,contr
+	arg USB_CONFDATA_ADDR,contr	
 	branch memcpy
 
 usb_tx_interval_config:
@@ -136,14 +136,14 @@
 	fetch 1,mem_usb_status
 	bbit1 USB_STATUS_NAK,usb_nak_state_timer_init
 	rtn
-
+	
 usb_nak_state_timer_init:
 	call usb0_attached_state_judge
 	call timer_reinit
 	setarg TIMER_NAK_DELAY
 	arg USB_TIMER_NAK,queue
 	branch timer_init
-
+	
 usb0_attached_state_judge:
 	fetch 1,mem_usb_state
 	bne USB_CONNECTED,usb_clear_halt_dispose
@@ -212,7 +212,7 @@
 	call memcpy
 	fetch 1,mem_usb_read_len
 	beq 0x00,usb_rx_no_data
-	beq 0x01,usb_out_one_byte	// HUAWEI pad led status
+	beq 0x01,usb_out_one_byte	// HUAWEI pad led status	
 	sub pdata,7,null
 	rtn positive
 usb_class_type:
@@ -247,7 +247,7 @@
 	rshift pdata,pdata
 	and_into 0x03,pdata
 	beq STANDARD_REQ,usb_out_standard_req
-	beq CLASS_REQ,usb_out_class_req
+	beq CLASS_REQ,usb_out_class_req	
 	beq MANUFACTURER_REQ,usb_out_manufacturer_req
 	branch assert
 
@@ -299,7 +299,7 @@
 	set1 0,pdata
 	store 1,core_usb_stall
 	branch usb0_reply_zerolen
-
+	
 usb0_reply_zerolen:
 	jam 0x10,core_usb_trig
 	rtn
@@ -337,7 +337,7 @@
 //	set0 mark_isstr,mark
 	fetch 1,mem_usb_setup_bValueH
 	beq DSC_DEVICE,dsc_device_info
-	beq DSC_CONFIG,dsc_config_info
+	beq DSC_CONFIG,dsc_config_info	
 	beq DSC_STRING,dsc_string_info
 	beq DSC_HID,dsc_hid_info
 	beq DSC_HID_REPORT,dsc_hid_report_info
@@ -350,12 +350,12 @@
 	beq 1,dsc_hid_info_interface1
 	beq 2,dsc_hid_info_interface2
 	branch usb0_force_stall
-//class_descriptor hid_descriptor--keyboard
+//class_descriptor hid_descriptor--keyboard 
 dsc_hid_info_interface0:
 	fetchr regb,1,mem_confdesc+19
 	arg mem_confdesc+19,rega
 	branch usb0_respond
-//class_descriptor hid_descriptor--mouse
+//class_descriptor hid_descriptor--mouse 
 dsc_hid_info_interface1:
 	fetchr regb,1,mem_confdesc+44
 	arg mem_confdesc+44,rega
@@ -366,7 +366,7 @@
 	branch usb0_respond
 
 dsc_device_info:
-//input : pdata : data poniter
+//input : pdata : data poniter 
 //input : temp: data len
 //sets the data pointer and len to correct descriptor
 	fetch 1,mem_usb_set_high_addr_flag
@@ -381,7 +381,7 @@
 	nbranch dsc_info_set_current_data_len,positive
 dsc_info_set_initial_data_len:
 	fetch 1,mem_dsc_info_len
-dsc_info_set_data_size_completed:
+dsc_info_set_data_size_completed:	
 	iforce regb
 	fetch 2,mem_dsc_info_data_pointer
 	add pdata,1,pdata
@@ -413,7 +413,7 @@
 	nbranch usb0_force_stall,positive
 	fetch 1,mem_usb_setup_bValue
 	arg mem_string0,rega
-	beq 0,usb0_respond_length
+	beq 0,usb0_respond_length	
 	set1 mark_isstr,mark
 	arg mem_string1,rega
 	beq 1,usb0_respond_length
@@ -446,7 +446,7 @@
 	fetchr rega,2,mem_hidreportdesc_ep3
 	branch usb0_respond_length
 
-dsc_hid_enumerate_success:
+dsc_hid_enumerate_success:	
 	jam 1,mem_usb_device_enumeration_endflag
 	jam USB_GOT_REPORT_REQ,mem_usb_state
 	rtn
@@ -454,7 +454,7 @@
 
 usb0_request_get_interface:
 	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall
+	bne DEV_CONFIGURED,usb0_force_stall		
 	fetch 1,mem_usb_setup_bmRequestType
 	bne IN_INTERFACE,usb0_force_stall
 	fetch 1,mem_usb_setup_bValue
@@ -530,7 +530,7 @@
 	and_into 0x7f,pdata
 	beq 0x00,usb0_get_status_in_ep_in_ep0
 	branch usb0_force_stall
-
+	
 usb0_get_status_in_ep_in_ep0:
 	fetch 1,mem_usb_ep0_stall_status
 usb0_get_status_in_ep_in_ack:
@@ -559,7 +559,7 @@
 	isub temp,null
 	nbranch usb0_force_stall,zero
 //	set0 mark_isstr,mark
-usb_get_report_dispose:
+usb_get_report_dispose:	
 	fetch 1,mem_usb0_data_ready_report
 	nbranch usb_get_report_data_success,blank
 	jam PC_GET_NONDATA,mem_usb0_get_report_data
@@ -568,7 +568,7 @@
 	iforce regb
 	arg mem_usb0_get_report_data,rega
 	call usb0_respond
-usb_get_report_data_release:
+usb_get_report_data_release:	
 	arg mem_usb0_get_report_data,contw
 	arg 8,loopcnt
 	branch memset0
@@ -647,7 +647,7 @@
 	branch usb0_reply_zerolen
 usb0_force_stall_ep1_in_off:
 	jam 0,mem_usb_ep1_stall_status
-usb0_force_stall_ep1_in_off_reply:
+usb0_force_stall_ep1_in_off_reply:	
 	jam 1,mem_usb_clear_halt
 	branch usb0_reply_zerolen
 usb0_force_stall_ep2_in_off:
@@ -685,7 +685,7 @@
 	setarg TIMER_WAKEUP_DELAY
 	arg USB_TIMER_WAKEUP,queue
 	branch timer_init
-
+	
 usb0_request_set_feature_out_interface:
 	branch usb0_force_stall
 
@@ -734,7 +734,7 @@
 	bne 0,usb0_force_stall
 	fetch 1,mem_usb_setup_bValue
 	bne 0,usb_usb0_state_set_dev_addr
-usb_usb0_state_set_dev_default:
+usb_usb0_state_set_dev_default:	
 	jam DEV_DEFAULT,mem_usb0_state
 usb0_request_set_wait_address:
 	fetch 1,mem_usb_setup_bValue
@@ -783,7 +783,7 @@
 
 usb0_request_set_interface:
 	fetch 1,mem_usb0_state
-	bne DEV_CONFIGURED,usb0_force_stall
+	bne DEV_CONFIGURED,usb0_force_stall		
 	fetch 1,mem_usb_setup_bmRequestType
 	bne OUT_INTERFACE,usb0_force_stall
 	fetch 1,mem_usb_setup_bValue
@@ -837,13 +837,13 @@
 	fetch 1,mem_usb_tx_win_enable
 	rtn blank
 	fetch 1,mem_usb0_set_report_data
-usb_get_led_status:
+usb_get_led_status:	
 	store 1,mem_24g_led_status
 	jam 0,mem_usb_tx_win_enable
 	jam KB_LED_ACKPAYLOAD,mem_24g_ackpayload_enable
 	rtn
 
-
+	
 usb_set_report_resume_judge:
 	fetch 2,mem_usb_setup_bValue
 	arg PC_SET_REPORT_bValue,temp
@@ -1068,7 +1068,7 @@
 	arg mem_usb_ep3_in_data,contw
 	arg 8,loopcnt
 	branch memset0
-
+	
 usb_tx_ms_data:
 	fetch 1,mem_usb_idle_flag
 	fetcht 1,mem_usb_get_protocol_flag
@@ -1096,11 +1096,11 @@
 	arg 4,loopcnt
 	arg mem_usb_mouse_data,contr
 	branch usb_tx_ep2
-
+	
 usb_tx_ms_data_normal_mode:
 	jam 0,mem_usb_ep2_data
-usb_tx_mac_boot_ms_regroup_r_or_lrkey:
-	arg 8,loopcnt
+usb_tx_mac_boot_ms_regroup_r_or_lrkey:	
+	arg 8,loopcnt		
 	arg mem_usb_mouse_data,contr
 	branch usb_tx_ep2
 
Index: usb_1M/sched/dongle.dat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/sched/dongle.dat	(revision 1163)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/sched/dongle.dat	(working copy)
@@ -10,12 +10,12 @@
 #sys config
 #bit4:enable kb icon
 #bit0:enable new revision
-mem_dg_sys_config:10
+mem_dg_sys_config:00
 
 
 
 #rf config
-mem_24g_lap:72 22 f0 55 12 13#low 4B used for 24g rxaddr
+mem_24g_lap:36 f0 10 30 12 13#low 4B used for 24g rxaddr
 #mem_24g_tx_phy:02#0x01:1M/0x02:2M/0x04:S2/0x84:S8
 #mem_24g_rx_phy:02#0x01:1M/0x02:2M/0x04:S2/0x84:S8
 #mem_24g_disable_fec1:01
@@ -54,16 +54,16 @@
 #15 35#VID
 #20 30#PID
 #yjx id
-38 39#VID
-49 13#PID
+51 31#VID
+20 10#PID
 #mouse & keyboard
-38 39#VID
-49 13#PID
+51 31#VID
+20 30#PID
 mem_usb_tx_interval:00
 mem_dg_usb_device_name:
 #'123456
 #'Wireless Device
-'2.4G Wireless Mouse
+'2.4G Receiver
 
 mem_dg_usb_device_iserial_number:03
 
@@ -103,14 +103,14 @@
 #09		#Size of this descriptor in bytes.
 #02		#Configuration (assigned by USB).
 #5b 00 	#Total length of data returned for this configuration
-#03		#Number of interfaces supported by this configuration
+#03		#Number of interfaces supported by this configuration  
 #01		#bConfigurationValue
 #00		#iConfiguration
 #a0		#bmAttributes
-#32		#MaxPower (in 2mA units)
-#
+#32		#MaxPower (in 2mA units) 
+# 
 # #interface_descriptor hid_interface_descriptor--keyboard
-#
+# 
 #09		# bLength
 #04		# bDescriptorType
 #00		#  bInterfaceNumber
@@ -120,9 +120,9 @@
 #01		#  bInterfaceSubClass
 #01		#  bInterfaceProcotol ; 1=keyboard
 #00		#  iInterface
-#
+# 
 # #class_descriptor hid_descriptor--keyboard
-#
+# 
 #09		#  bLength
 #21		#   bDescriptorType
 #00 02	#  bcdHID
@@ -131,140 +131,121 @@
 #22		# bDescriptorType
 #1a 00 	#  wItemLength (tot. len. of report confdesc)
 #
-# #IN endpoint (mandatory for HID)--keyboard
-#
+# #IN endpoint (mandatory for HID)--keyboard 
+# 
 #07		#bLength
 #05		#bDescriptorType
 #81		#bEndpointAddress
 #03		#bmAttributes
 #40 00	#MaxPacketSize (LITTLE ENDIAN)
-#02		#bInterval
-#
+#02		#bInterval 
+# 
 # #interface_descriptor hid_interface_descriptor--mouse
-#
-#09		#bLength
-#04		#bDescriptorType
-#01		#bInterfaceNumber
+# 
+#09		#bLength 
+#04		#bDescriptorType   
+#01		#bInterfaceNumber  
 #00		#bAlternateSetting
-#01		#bNumEndpoints
-#03		#bInterfaceClass (3 = HID)
-#01		#bInterfaceSubClass
-#02		#bInterfaceProcotol ; 2=mouse
-#00		#iInterface
-#
-# #class_descriptor hid_descriptor--mouse
-#
-#09		#bLength
-#21		#bDescriptorType
-#00 02	#bcdHID
-#00		#bCountryCode
-#01		#bNumDescriptors
+#01		#bNumEndpoints  
+#03		#bInterfaceClass (3 = HID)   
+#01		#bInterfaceSubClass  
+#02		#bInterfaceProcotol ; 2=mouse  
+#00		#iInterface 
+# 
+# #class_descriptor hid_descriptor--mouse 
+# 
+#09		#bLength   
+#21		#bDescriptorType  
+#00 02	#bcdHID 
+#00		#bCountryCode  
+#01		#bNumDescriptors  
 #22		#bDescriptorType
 #a3 00	#wItemLength (tot. len. of report confdesc)
-#
+# 
 # #endpoint_descriptor hid_endpoint_in_descriptor--mouse
-#
-#07		#bLength
-#05		#bDescriptorType
-#82		#bEndpointAddress
-#03		# bmAttributes
-#40 00	#MaxPacketSize (LITTLE  ENDIAN)
+# 
+#07		#bLength  
+#05		#bDescriptorType  
+#82		#bEndpointAddress  
+#03		# bmAttributes  
+#40 00	#MaxPacketSize (LITTLE  ENDIAN)  
 #02		#bInterval
 #
 #
 ##interface_descriptor hid_interface_descriptor
 #
-#09		#bLength
-#04		#bDescriptorType
-#02		#bInterfaceNumber
+#09		#bLength 
+#04		#bDescriptorType   
+#02		#bInterfaceNumber  
 #00		#bAlternateSetting
 #02		#bNumEndpoints
-#03		#bInterfaceClass (3 = HID)
-#00		#bInterfaceSubClass
+#03		#bInterfaceClass (3 = HID)   
+#00		#bInterfaceSubClass  
 #00		#bInterfaceProcotol
-#00		#iInterface
-#
-##class_descriptor hid_descriptor
-#
-#09		#bLength
-#21		#bDescriptorType
-#00 02	#bcdHID
-#00		#bCountryCode
-#01		#bNumDescriptors
+#00		#iInterface 
+# 
+##class_descriptor hid_descriptor 
+#
+#09		#bLength   
+#21		#bDescriptorType  
+#00 02	#bcdHID 
+#00		#bCountryCode  
+#01		#bNumDescriptors  
 #22		#bDescriptorType
 #1b 00	#wItemLength (tot. len. of report confdesc)
-#
+# 
 ##endpoint_descriptor hid_endpoint_in_descriptor
 #
-#07		#bLength
-#05		#bDescriptorType
-#83		#bEndpointAddress
-#03		# bmAttributes
-#40 00	#MaxPacketSize (LITTLE ENDIAN)
+#07		#bLength  
+#05		#bDescriptorType  
+#83		#bEndpointAddress  
+#03		# bmAttributes  
+#40 00	#MaxPacketSize (LITTLE ENDIAN) 
 #02		#bInterval
 #
 ##endpoint_descriptor hid_endpoint_out_descriptor
 #
-#07		#bLength
-#05		#bDescriptorType
-#03		#bEndpointAddress
-#03		# bmAttributes
-#40 00	#MaxPacketSize (LITTLE ENDIAN)
+#07		#bLength  
+#05		#bDescriptorType  
+#03		#bEndpointAddress  
+#03		# bmAttributes  
+#40 00	#MaxPacketSize (LITTLE ENDIAN) 
 #02		#bInterval
 
-
 mem_dongle_kb_desc_new:
-17
-05 0c  		
-09 01  		
-a1 01				
-19 00  		
-2a ff 03 
-15 00 
-26 ff 03 		
-95 01  		
-75 10  			
-81 00  		
-c0
-
-mem_dongle_ms_desc_new:
-4B
-05 01 
-09 02 
-A1 01 
-85 01 
-09 01 
-A1 00 
-05 09 
-19 01 
-29 05 
-15 00 
-25 01 
-95 05 
+41
+05 01
+09 06
+a1 01
 75 01 
-81 02 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
 95 01 
-75 03 
-81 01 
-05 01 
-09 30 
-09 31 
-16 01 F8 
-26 FF 07 
-75 10 
-95 02 
-81 06 
-09 38 
-15 81 
-25 7F 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
 75 08 
-95 01 
-81 06 
-05 0C 
-0A 38 02 
-95 01 
-81 06 
-C0 
-C0 
+15 00 
+26 ff 00
+05 07
+19 00
+2a ff 00 
+81 00
+c0
+
 
 
