Index: format/app_dongle.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/app_dongle.format	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/app_dongle.format	(working copy)
@@ -37,16 +37,17 @@
 1 mem_dongle_usb_header
 1 mem_dongle_usb_opcode
 1 mem_dongle_usb_len
-1 mem_dongle_usb_ep2_data_flag
-1 mem_dongle_usb_ep2_data_len
-64 mem_dongle_g24_usb_ep2_ack_data
-1 mem_dongle_24g_ep2_data_flag
-64 mem_dongle_24g_ep2_data
+1 mem_dongle_24g_data_ack_flag
+1 mem_dongle_24g_data_ack_len
+64 mem_dongle_g24_ack_data
 220 mem_usb_ep2_config
 1 mem_24g_ackpayload_enable_temp
-65 mem_usb_device_info_data
+6 mem_usb_get_report_sn_data
+1 mem_usb_get_report_dpi_data
+1 mem_usb_get_report_battery_data
 65 mem_usb_dpi_data
 65 mem_usb_rf_state_data
+65 mem_dongle_usb_ep2_data
 1 mem_usb_rf_state_report_flag
 1 mem_usb_rf_state_report_flag1
 8 mem_usb_ep2_fifo
@@ -85,16 +86,23 @@
 0xA3 REPORT_ID_AUTHCA_DATA_IN
 0xA4 REPORT_ID_AUTHCA_DATA_OUT
 
-//0x01 HCI_CMD_GET_DEVICE_INFO
-0x02 HCI_CMD_AUTH_ENABLE
-0x03 HCI_CMD_VOICE_CONTRAL
-0x04 HCI_CMD_DPI_CONTRAL
-0x05 HCI_CMD_GET_DEVICE_INFO
+//cmd
+0x01 HCI_CMD_GET_DEVICE_INFO
+0x02 HCI_CMD_SET_DPI
+0x03 HCI_CMD_GET_DPI
+0x04 HCI_CMD_SET_SN
+0x05 HCI_CMD_GET_SN
+0x06 HCI_CMD_SET_BATTERY
+0x07 HCI_CMD_GET_CONNECT_STATE
 
+//event
 0x01 HCI_EVENT_DEVICE_INFO_REP
-0x02 HCI_EVENT_DEVICE_VOICE_REP
-0x03 HCI_EVENT_KEY_REP
-0x06 HCI_EVENT_REP_COMPLETE
+0x02 HCI_EVENT_DPI_RSP	
+0x03 HCI_EVENT_SN_RSP
+0x04 HCI_EVENT_KEY_REP
+0x05 HCI_EVENT_CONNECT_REP
+0x06 HCI_EVENT_BATTERY_REP
+0x07 HCI_EVENT_COMMAND_REP
 )
 
 //otp address offset
Index: format/g24_protocol_stack/24g_pair.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/g24_protocol_stack/24g_pair.format	(revision 3583)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/g24_protocol_stack/24g_pair.format	(working copy)
@@ -48,6 +48,7 @@
 4 DATA_HTTP
 5 DATA_DPI
 6 DATA_DEVICE_INFO
+7 DATA_BATTERY
 )
 
 (
Index: format/usb.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/usb.format	(revision 3583)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/format/usb.format	(working copy)
@@ -194,7 +194,9 @@
 0x22 USB_EP2_SYSTEMKEY
 0x23 USB_EP2_DEVICE_INFO
 0x24 USB_EP2_DPI
-0x25 USB_EP2_MSKB_STATE
+0x25 USB_EP2_BATTERY
+0x26 USB_EP2_SN
+0x27 USB_EP2_MSKB_STATE
 0x01 MAC_BOOT_MODE
 0x02 R_KEY
 0x03 LR_KEY
@@ -203,9 +205,8 @@
 
 (
 0x01ba PC_GET_REPORT
-0x02a3 PC_GET_REPORT_NEW
-0x02a1 PC_GET_REPORT_NEW2
-0x02a2 PC_SET_REPORT_PROLOTOL
+0x03a1 PC_GET_REPORT_PROTOCOL
+0x03a2 PC_SET_REPORT_PROTOCOL
 0x02a4 PC_SET_REPORT
 0x0200 PC_SET_REPORT_bValue
 0x0000 PC_SET_REPORT_wIndex
Index: output/eeprom.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-66
+4e
 10
 c2
 84
@@ -23,7 +23,7 @@
 c0
 0a
 03
-9c
+9a
 c0
 0a
 81
@@ -43,7 +43,7 @@
 c0
 1b
 84
-07
+01
 c0
 1c
 00
@@ -55,7 +55,7 @@
 c0
 1e
 83
-f5
+f3
 c0
 1f
 00
@@ -67,11 +67,11 @@
 c0
 6d
 03
-6d
+6b
 c0
 6e
 03
-7d
+7b
 c0
 7f
 01
@@ -79,7 +79,7 @@
 c0
 7f
 81
-98
+99
 c0
 7e
 81
@@ -103,19 +103,19 @@
 c0
 1c
 83
-b8
+b6
 c0
 26
 83
-bc
+ba
 c0
 37
 84
-0f
+09
 c0
 41
 03
-be
+bc
 c0
 42
 02
@@ -123,11 +123,11 @@
 c0
 44
 03
-dd
+db
 c0
 45
 03
-ea
+e8
 c1
 46
 80
@@ -222,19 +222,19 @@
 1b
 6f
 e0
-c9
-05
+c8
+cc
 c1
 00
 80
 00
 70
-49
-05
+48
+cc
 01
 70
-49
-04
+48
+cb
 00
 20
 20
@@ -242,72 +242,72 @@
 3b
 70
 48
-c3
+49
 40
 70
 48
-c4
+4a
 a1
 70
 48
-c5
+4b
 02
 70
 48
-c6
+4c
 04
 70
 48
-c7
+4d
 01
 70
 48
-c8
+4e
 00
 70
 06
 6f
-25
+27
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
 8b
 70
 48
-c3
+49
 40
 70
 48
-c4
+4a
 a1
 70
 48
-c5
+4b
 02
 70
 48
-c6
+4c
 04
 70
 48
-c7
+4d
 01
 70
 48
-c8
+4e
 01
 70
 06
 6f
-25
+27
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
@@ -430,8 +430,8 @@
 e1
 6f
 e0
-c8
-40
+c7
+ff
 67
 e0
 c6
@@ -643,11 +643,11 @@
 20
 40
 03
-3f
+3d
 20
 40
 03
-6a
+68
 20
 40
 00
@@ -663,7 +663,7 @@
 20
 20
 03
-6c
+6a
 20
 75
 80
@@ -1211,7 +1211,7 @@
 58
 00
 47
-64
+23
 67
 e1
 07
@@ -1347,7 +1347,7 @@
 20
 21
 01
-62
+65
 6f
 e0
 88
@@ -1355,7 +1355,7 @@
 c0
 80
 81
-62
+65
 ef
 e0
 80
@@ -1376,18 +1376,6 @@
 48
 c6
 e0
-20
-20
-01
-58
-6f
-e0
-c6
-2b
-20
-3a
-01
-62
 6f
 e0
 c6
@@ -1395,23 +1383,11 @@
 c0
 02
 81
-60
-c0
-01
-01
-60
-c0
-01
-81
-60
-c0
-02
-01
-60
+5c
 20
 20
 01
-62
+65
 70
 46
 e1
@@ -1419,14 +1395,50 @@
 20
 20
 01
-7d
+7e
 70
 48
-c3
+8a
 40
 70
 48
-c4
+8b
+a1
+70
+48
+8c
+02
+70
+48
+8d
+03
+70
+48
+8e
+06
+6f
+e3
+48
+00
+67
+e3
+48
+8f
+70
+09
+0c
+26
+20
+20
+02
+78
+70
+48
+49
+40
+70
+48
+4a
 a1
 d8
 40
@@ -1475,7 +1487,7 @@
 d8
 a0
 48
-c5
+4b
 6f
 e1
 c6
@@ -1511,34 +1523,26 @@
 70
 06
 6f
-25
+27
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
 8b
-70
-46
-e1
-a4
-20
-20
-01
-7d
 20
 40
 01
-86
+87
 70
 46
 11
 a2
 70
-48
-40
+47
+ff
 a2
 6f
 20
@@ -1623,7 +1627,7 @@
 20
 42
 81
-89
+8a
 1f
 26
 7c
@@ -1647,7 +1651,7 @@
 20
 40
 01
-89
+8a
 60
 48
 c6
@@ -1687,7 +1691,7 @@
 20
 20
 01
-a5
+a6
 6f
 e0
 87
@@ -1720,10 +1724,6 @@
 51
 01
 4d
-c0
-52
-01
-7b
 20
 60
 00
@@ -2222,19 +2222,19 @@
 0f
 6f
 e0
-c9
-04
+c8
+cb
 c1
 00
 80
 00
 70
-49
-05
+48
+cc
 00
 70
-49
-04
+48
+cb
 01
 20
 20
@@ -2245,8 +2245,8 @@
 02
 2a
 70
-48
-40
+47
+ff
 00
 70
 46
@@ -2331,15 +2331,19 @@
 c2
 82
 82
-62
+64
 c2
 83
 02
-6d
+6f
+c2
+83
+82
+75
 20
 20
 02
-48
+49
 6f
 e0
 c5
@@ -2351,11 +2355,11 @@
 20
 22
 82
-58
+5a
 20
 40
 02
-58
+5a
 6f
 e0
 c5
@@ -2395,11 +2399,15 @@
 c2
 82
 82
-62
+64
 c2
 83
 02
-6d
+6f
+c2
+83
+82
+75
 20
 60
 00
@@ -2451,35 +2459,35 @@
 67
 e0
 c8
-82
+08
 70
 48
-83
+09
 a1
+70
+48
+0a
+02
+70
+48
+0b
+02
+70
+48
+0c
+01
 6f
 e0
 c5
-7d
-1f
-e0
-ff
-ff
-1f
-e2
-72
-00
-d8
-c0
-45
 eb
-d8
-a0
-48
-84
-20
-40
-7c
-da
+67
+e0
+c8
+0d
+67
+e0
+c8
+06
 70
 09
 0c
@@ -2488,18 +2496,6 @@
 20
 02
 78
-58
-00
-00
-40
-67
-e0
-c8
-41
-70
-48
-42
-a1
 6f
 e0
 c5
@@ -2519,19 +2515,23 @@
 d8
 a0
 48
-43
+00
+20
 20
-40
 7c
 da
-70
-09
-0c
-23
-20
+6f
+e0
+c5
+eb
+67
+e0
+c8
+07
 20
-02
-78
+60
+00
+00
 6f
 e0
 89
@@ -2542,8 +2542,8 @@
 00
 da
 20
-49
-06
+48
+cd
 20
 40
 7d
@@ -2562,8 +2562,8 @@
 6f
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
@@ -2622,8 +2622,8 @@
 5a
 6f
 e0
-c9
-19
+c8
+e0
 c0
 00
 02
@@ -2681,13 +2681,13 @@
 00
 00
 70
-49
-19
+48
+e0
 01
 6f
 e1
-c9
-0f
+c8
+d6
 67
 e1
 89
@@ -2697,13 +2697,13 @@
 7c
 28
 70
-49
-19
+48
+e0
 01
 6f
 e1
-c9
-12
+c8
+d9
 67
 e1
 89
@@ -2713,13 +2713,13 @@
 7c
 28
 70
-49
-19
+48
+e0
 02
 6f
 e0
-c9
-0f
+c8
+d6
 67
 e0
 89
@@ -2729,8 +2729,8 @@
 7c
 28
 70
-49
-19
+48
+e0
 03
 d8
 a0
@@ -2745,21 +2745,21 @@
 7c
 a3
 70
-49
-1b
+48
+e2
 00
 20
 20
 7c
 28
 70
-49
-19
+48
+e0
 06
 6f
 e1
-c9
-15
+c8
+dc
 67
 e1
 89
@@ -2769,24 +2769,24 @@
 7c
 28
 70
-49
-19
+48
+e0
 07
 20
 20
 02
 aa
 70
-49
-19
+48
+e0
 08
 20
 20
 02
 b0
 70
-49
-19
+48
+e0
 00
 20
 20
@@ -2794,27 +2794,27 @@
 aa
 6f
 e0
-c9
-18
+c8
+df
 1f
 e0
 fe
 01
 67
 e0
-c9
-18
+c8
+df
 c1
 87
 80
 00
 70
-49
-18
+48
+df
 00
 70
-49
-19
+48
+e0
 04
 20
 60
@@ -2822,8 +2822,8 @@
 00
 6f
 e0
-c9
-1b
+c8
+e2
 c0
 00
 82
@@ -2837,8 +2837,8 @@
 00
 00
 70
-49
-19
+48
+e0
 05
 20
 60
@@ -2846,20 +2846,20 @@
 00
 d8
 40
-49
-1f
+48
+e6
 6f
 e0
-c9
-1e
+c8
+e5
 98
 40
 84
 00
 6f
 e1
-49
-1c
+48
+e3
 98
 46
 7c
@@ -2878,8 +2878,8 @@
 f8
 6f
 e0
-c9
-1a
+c8
+e1
 67
 e0
 89
@@ -2890,19 +2890,19 @@
 25
 6f
 e1
-49
-1c
+48
+e3
 1f
 e0
 fe
 01
 67
 e1
-49
-1c
+48
+e3
 70
-49
-1b
+48
+e2
 01
 20
 20
@@ -2910,8 +2910,8 @@
 28
 68
 49
-49
-1c
+48
+e3
 ef
 e0
 80
@@ -3045,13 +3045,13 @@
 00
 00
 70
-49
-1a
+48
+e1
 00
 6f
 e1
-49
-1c
+48
+e3
 ef
 e0
 80
@@ -3059,11 +3059,11 @@
 d8
 c0
 49
-47
+0e
 68
 48
 c9
-46
+0d
 18
 42
 72
@@ -3089,8 +3089,8 @@
 00
 00
 70
-49
-1a
+48
+e1
 02
 20
 60
@@ -3126,8 +3126,8 @@
 e1
 6f
 e0
-c9
-19
+c8
+e0
 20
 7a
 00
@@ -3138,8 +3138,8 @@
 3f
 da
 20
-49
-06
+48
+cd
 20
 40
 7d
@@ -3162,8 +3162,8 @@
 00
 da
 20
-49
-06
+48
+cd
 20
 40
 7d
@@ -3179,10 +3179,10 @@
 c0
 12
 03
-27
+28
 c0
-11
-83
+13
+03
 33
 c0
 10
@@ -3193,7 +3193,7 @@
 7c
 2c
 c0
-12
+13
 83
 1f
 20
@@ -3203,11 +3203,15 @@
 6f
 20
 c8
-c3
+49
+20
+7a
+00
+00
 d8
 c0
 48
-c4
+4a
 d8
 e0
 00
@@ -3227,31 +3231,27 @@
 d8
 a0
 48
-c3
+49
 20
 20
 03
 31
-70
-09
-0c
-00
 6f
 e0
 c8
-82
-1f
-e2
-72
-00
+08
 20
 7a
 00
 00
+1f
+e2
+72
+00
 d8
 c0
 48
-83
+09
 d8
 e0
 00
@@ -3271,7 +3271,7 @@
 d8
 a0
 48
-82
+08
 df
 20
 00
@@ -3280,26 +3280,22 @@
 20
 7c
 a1
-70
-09
-0c
-00
 6f
 e0
 c8
-41
-1f
-e2
-72
-00
+8a
 20
 7a
 00
 00
+1f
+e2
+72
+00
 d8
 c0
 48
-42
+8b
 d8
 e0
 00
@@ -3319,15 +3315,11 @@
 d8
 a0
 48
-41
-df
-20
-00
-41
+8a
 20
 20
-7c
-a1
+03
+31
 20
 75
 80
@@ -3379,7 +3371,7 @@
 20
 40
 03
-5c
+5a
 2a
 2f
 fe
@@ -3411,7 +3403,7 @@
 20
 40
 03
-5c
+5a
 d8
 a0
 8a
@@ -3439,7 +3431,7 @@
 20
 21
 03
-51
+4f
 20
 20
 21
@@ -3543,7 +3535,7 @@
 20
 40
 03
-95
+93
 70
 8a
 08
@@ -3579,7 +3571,7 @@
 20
 40
 03
-8b
+89
 6f
 f0
 8a
@@ -3623,7 +3615,7 @@
 20
 40
 03
-95
+93
 70
 80
 cd
@@ -3683,7 +3675,7 @@
 c3
 02
 83
-96
+94
 68
 59
 01
@@ -3719,7 +3711,7 @@
 c0
 08
 03
-b5
+b3
 58
 00
 57
@@ -3763,7 +3755,7 @@
 c0
 08
 03
-b2
+b0
 58
 00
 2b
@@ -3799,7 +3791,7 @@
 20
 20
 03
-ae
+ac
 58
 00
 83
@@ -3811,7 +3803,7 @@
 20
 20
 03
-a3
+a1
 6f
 e0
 c3
@@ -3851,7 +3843,7 @@
 c0
 11
 03
-c4
+c2
 c0
 7f
 b5
@@ -3867,7 +3859,7 @@
 20
 3a
 03
-ca
+c8
 6f
 e2
 45
@@ -3891,11 +3883,11 @@
 c0
 00
 83
-ce
+cc
 c0
 01
 03
-d5
+d3
 20
 60
 00
@@ -3915,7 +3907,7 @@
 c0
 01
 03
-d3
+d1
 20
 60
 00
@@ -3943,7 +3935,7 @@
 c0
 80
 03
-da
+d8
 20
 60
 00
@@ -4023,7 +4015,7 @@
 20
 40
 03
-ee
+ec
 20
 20
 34
@@ -4058,10 +4050,6 @@
 07
 20
 40
-04
-05
-20
-40
 03
 05
 6f
@@ -4094,19 +4082,7 @@
 f5
 d8
 40
-02
-a4
-98
-46
-7c
-00
-20
-22
-81
-ab
-d8
-40
-02
+03
 a2
 98
 46
@@ -4119,7 +4095,7 @@
 20
 20
 01
-ab
+ac
 58
 00
 00
@@ -4200,8 +4176,8 @@
 20
 31
 95
-45
-0f
+82
+e9
 aa
 55
 40
@@ -4449,7 +4425,7 @@
 55
 dc
 00
-64
+23
 47
 db
 05
@@ -4646,7 +4622,7 @@
 00
 09
 01
-91
+b1
 02
 c0
 06
@@ -4675,8 +4651,8 @@
 55
 09
 00
-0f
-49
+d6
+48
 08
 00
 15
@@ -4690,10 +4666,10 @@
 55
 11
 00
-1c
-49
-1f
-49
+e3
+48
+e6
+48
 0e
 77
 77
@@ -4713,7 +4689,7 @@
 55
 16
 00
-46
+0d
 49
 15
 7e
@@ -4937,7 +4913,7 @@
 aa
 aa
 55
-56
-a3
-f7
-a6
+4e
+a5
+fd
+02
Index: output/memmap.format
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/memmap.format	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/memmap.format	(working copy)
@@ -1491,30 +1491,31 @@
 0x46de mem_dongle_usb_header
 0x46df mem_dongle_usb_opcode
 0x46e0 mem_dongle_usb_len
-0x46e1 mem_dongle_usb_ep2_data_flag
-0x46e2 mem_dongle_usb_ep2_data_len
-0x46e3 mem_dongle_g24_usb_ep2_ack_data
-0x4723 mem_dongle_24g_ep2_data_flag
-0x4724 mem_dongle_24g_ep2_data
-0x4764 mem_usb_ep2_config
-0x4840 mem_24g_ackpayload_enable_temp
-0x4841 mem_usb_device_info_data
-0x4882 mem_usb_dpi_data
-0x48c3 mem_usb_rf_state_data
-0x4904 mem_usb_rf_state_report_flag
-0x4905 mem_usb_rf_state_report_flag1
-0x4906 mem_usb_ep2_fifo
-0x490e mem_dongle_freq_hop_flag
-0x490f mem_usb_win_cmd
-0x4912 mem_usb_mac_cmd
-0x4915 mem_usb_kb_enter
-0x4918 mem_usb_website_wait_count
-0x4919 mem_usb_website_step
-0x491a mem_usb_website_shift_flag
-0x491b mem_usb_website_release_flag
-0x491c mem_usb_website_ptr
-0x491e mem_usb_website_info
-0x4946 mem_usb_website_info_sign
+0x46e1 mem_dongle_24g_data_ack_flag
+0x46e2 mem_dongle_24g_data_ack_len
+0x46e3 mem_dongle_g24_ack_data
+0x4723 mem_usb_ep2_config
+0x47ff mem_24g_ackpayload_enable_temp
+0x4800 mem_usb_get_report_sn_data
+0x4806 mem_usb_get_report_dpi_data
+0x4807 mem_usb_get_report_battery_data
+0x4808 mem_usb_dpi_data
+0x4849 mem_usb_rf_state_data
+0x488a mem_dongle_usb_ep2_data
+0x48cb mem_usb_rf_state_report_flag
+0x48cc mem_usb_rf_state_report_flag1
+0x48cd mem_usb_ep2_fifo
+0x48d5 mem_dongle_freq_hop_flag
+0x48d6 mem_usb_win_cmd
+0x48d9 mem_usb_mac_cmd
+0x48dc mem_usb_kb_enter
+0x48df mem_usb_website_wait_count
+0x48e0 mem_usb_website_step
+0x48e1 mem_usb_website_shift_flag
+0x48e2 mem_usb_website_release_flag
+0x48e3 mem_usb_website_ptr
+0x48e5 mem_usb_website_info
+0x490d mem_usb_website_info_sign
 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_XZR/usb_1m_ai/output/otp.dat	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-66
+4e
 10
 c2
 84
@@ -32,7 +32,7 @@
 c0
 0a
 03
-9c
+9a
 c0
 0a
 81
@@ -52,7 +52,7 @@
 c0
 1b
 84
-07
+01
 c0
 1c
 00
@@ -64,7 +64,7 @@
 c0
 1e
 83
-f5
+f3
 c0
 1f
 00
@@ -76,11 +76,11 @@
 c0
 6d
 03
-6d
+6b
 c0
 6e
 03
-7d
+7b
 c0
 7f
 01
@@ -88,7 +88,7 @@
 c0
 7f
 81
-98
+99
 c0
 7e
 81
@@ -112,19 +112,19 @@
 c0
 1c
 83
-b8
+b6
 c0
 26
 83
-bc
+ba
 c0
 37
 84
-0f
+09
 c0
 41
 03
-be
+bc
 c0
 42
 02
@@ -132,11 +132,11 @@
 c0
 44
 03
-dd
+db
 c0
 45
 03
-ea
+e8
 c1
 46
 80
@@ -231,19 +231,19 @@
 1b
 6f
 e0
-c9
-05
+c8
+cc
 c1
 00
 80
 00
 70
-49
-05
+48
+cc
 01
 70
-49
-04
+48
+cb
 00
 20
 20
@@ -251,72 +251,72 @@
 3b
 70
 48
-c3
+49
 40
 70
 48
-c4
+4a
 a1
 70
 48
-c5
+4b
 02
 70
 48
-c6
+4c
 04
 70
 48
-c7
+4d
 01
 70
 48
-c8
+4e
 00
 70
 06
 6f
-25
+27
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
 8b
 70
 48
-c3
+49
 40
 70
 48
-c4
+4a
 a1
 70
 48
-c5
+4b
 02
 70
 48
-c6
+4c
 04
 70
 48
-c7
+4d
 01
 70
 48
-c8
+4e
 01
 70
 06
 6f
-25
+27
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
@@ -439,8 +439,8 @@
 e1
 6f
 e0
-c8
-40
+c7
+ff
 67
 e0
 c6
@@ -652,11 +652,11 @@
 20
 40
 03
-3f
+3d
 20
 40
 03
-6a
+68
 20
 40
 00
@@ -672,7 +672,7 @@
 20
 20
 03
-6c
+6a
 20
 75
 80
@@ -1220,7 +1220,7 @@
 58
 00
 47
-64
+23
 67
 e1
 07
@@ -1356,7 +1356,7 @@
 20
 21
 01
-62
+65
 6f
 e0
 88
@@ -1364,7 +1364,7 @@
 c0
 80
 81
-62
+65
 ef
 e0
 80
@@ -1385,18 +1385,6 @@
 48
 c6
 e0
-20
-20
-01
-58
-6f
-e0
-c6
-2b
-20
-3a
-01
-62
 6f
 e0
 c6
@@ -1404,23 +1392,11 @@
 c0
 02
 81
-60
-c0
-01
-01
-60
-c0
-01
-81
-60
-c0
-02
-01
-60
+5c
 20
 20
 01
-62
+65
 70
 46
 e1
@@ -1428,14 +1404,50 @@
 20
 20
 01
-7d
+7e
 70
 48
-c3
+8a
 40
 70
 48
-c4
+8b
+a1
+70
+48
+8c
+02
+70
+48
+8d
+03
+70
+48
+8e
+06
+6f
+e3
+48
+00
+67
+e3
+48
+8f
+70
+09
+0c
+26
+20
+20
+02
+78
+70
+48
+49
+40
+70
+48
+4a
 a1
 d8
 40
@@ -1484,7 +1496,7 @@
 d8
 a0
 48
-c5
+4b
 6f
 e1
 c6
@@ -1520,34 +1532,26 @@
 70
 06
 6f
-25
+27
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
 8b
-70
-46
-e1
-a4
-20
-20
-01
-7d
 20
 40
 01
-86
+87
 70
 46
 11
 a2
 70
-48
-40
+47
+ff
 a2
 6f
 20
@@ -1632,7 +1636,7 @@
 20
 42
 81
-89
+8a
 1f
 26
 7c
@@ -1656,7 +1660,7 @@
 20
 40
 01
-89
+8a
 60
 48
 c6
@@ -1696,7 +1700,7 @@
 20
 20
 01
-a5
+a6
 6f
 e0
 87
@@ -1729,10 +1733,6 @@
 51
 01
 4d
-c0
-52
-01
-7b
 20
 60
 00
@@ -2231,19 +2231,19 @@
 0f
 6f
 e0
-c9
-04
+c8
+cb
 c1
 00
 80
 00
 70
-49
-05
+48
+cc
 00
 70
-49
-04
+48
+cb
 01
 20
 20
@@ -2254,8 +2254,8 @@
 02
 2a
 70
-48
-40
+47
+ff
 00
 70
 46
@@ -2340,15 +2340,19 @@
 c2
 82
 82
-62
+64
 c2
 83
 02
-6d
+6f
+c2
+83
+82
+75
 20
 20
 02
-48
+49
 6f
 e0
 c5
@@ -2360,11 +2364,11 @@
 20
 22
 82
-58
+5a
 20
 40
 02
-58
+5a
 6f
 e0
 c5
@@ -2404,11 +2408,15 @@
 c2
 82
 82
-62
+64
 c2
 83
 02
-6d
+6f
+c2
+83
+82
+75
 20
 60
 00
@@ -2460,35 +2468,35 @@
 67
 e0
 c8
-82
+08
 70
 48
-83
+09
 a1
+70
+48
+0a
+02
+70
+48
+0b
+02
+70
+48
+0c
+01
 6f
 e0
 c5
-7d
-1f
-e0
-ff
-ff
-1f
-e2
-72
-00
-d8
-c0
-45
 eb
-d8
-a0
-48
-84
-20
-40
-7c
-da
+67
+e0
+c8
+0d
+67
+e0
+c8
+06
 70
 09
 0c
@@ -2497,18 +2505,6 @@
 20
 02
 78
-58
-00
-00
-40
-67
-e0
-c8
-41
-70
-48
-42
-a1
 6f
 e0
 c5
@@ -2528,19 +2524,23 @@
 d8
 a0
 48
-43
+00
+20
 20
-40
 7c
 da
-70
-09
-0c
-23
-20
+6f
+e0
+c5
+eb
+67
+e0
+c8
+07
 20
-02
-78
+60
+00
+00
 6f
 e0
 89
@@ -2551,8 +2551,8 @@
 00
 da
 20
-49
-06
+48
+cd
 20
 40
 7d
@@ -2571,8 +2571,8 @@
 6f
 da
 20
-49
-06
+48
+cd
 20
 20
 7d
@@ -2631,8 +2631,8 @@
 5a
 6f
 e0
-c9
-19
+c8
+e0
 c0
 00
 02
@@ -2690,13 +2690,13 @@
 00
 00
 70
-49
-19
+48
+e0
 01
 6f
 e1
-c9
-0f
+c8
+d6
 67
 e1
 89
@@ -2706,13 +2706,13 @@
 7c
 28
 70
-49
-19
+48
+e0
 01
 6f
 e1
-c9
-12
+c8
+d9
 67
 e1
 89
@@ -2722,13 +2722,13 @@
 7c
 28
 70
-49
-19
+48
+e0
 02
 6f
 e0
-c9
-0f
+c8
+d6
 67
 e0
 89
@@ -2738,8 +2738,8 @@
 7c
 28
 70
-49
-19
+48
+e0
 03
 d8
 a0
@@ -2754,21 +2754,21 @@
 7c
 a3
 70
-49
-1b
+48
+e2
 00
 20
 20
 7c
 28
 70
-49
-19
+48
+e0
 06
 6f
 e1
-c9
-15
+c8
+dc
 67
 e1
 89
@@ -2778,24 +2778,24 @@
 7c
 28
 70
-49
-19
+48
+e0
 07
 20
 20
 02
 aa
 70
-49
-19
+48
+e0
 08
 20
 20
 02
 b0
 70
-49
-19
+48
+e0
 00
 20
 20
@@ -2803,27 +2803,27 @@
 aa
 6f
 e0
-c9
-18
+c8
+df
 1f
 e0
 fe
 01
 67
 e0
-c9
-18
+c8
+df
 c1
 87
 80
 00
 70
-49
-18
+48
+df
 00
 70
-49
-19
+48
+e0
 04
 20
 60
@@ -2831,8 +2831,8 @@
 00
 6f
 e0
-c9
-1b
+c8
+e2
 c0
 00
 82
@@ -2846,8 +2846,8 @@
 00
 00
 70
-49
-19
+48
+e0
 05
 20
 60
@@ -2855,20 +2855,20 @@
 00
 d8
 40
-49
-1f
+48
+e6
 6f
 e0
-c9
-1e
+c8
+e5
 98
 40
 84
 00
 6f
 e1
-49
-1c
+48
+e3
 98
 46
 7c
@@ -2887,8 +2887,8 @@
 f8
 6f
 e0
-c9
-1a
+c8
+e1
 67
 e0
 89
@@ -2899,19 +2899,19 @@
 25
 6f
 e1
-49
-1c
+48
+e3
 1f
 e0
 fe
 01
 67
 e1
-49
-1c
+48
+e3
 70
-49
-1b
+48
+e2
 01
 20
 20
@@ -2919,8 +2919,8 @@
 28
 68
 49
-49
-1c
+48
+e3
 ef
 e0
 80
@@ -3054,13 +3054,13 @@
 00
 00
 70
-49
-1a
+48
+e1
 00
 6f
 e1
-49
-1c
+48
+e3
 ef
 e0
 80
@@ -3068,11 +3068,11 @@
 d8
 c0
 49
-47
+0e
 68
 48
 c9
-46
+0d
 18
 42
 72
@@ -3098,8 +3098,8 @@
 00
 00
 70
-49
-1a
+48
+e1
 02
 20
 60
@@ -3135,8 +3135,8 @@
 e1
 6f
 e0
-c9
-19
+c8
+e0
 20
 7a
 00
@@ -3147,8 +3147,8 @@
 3f
 da
 20
-49
-06
+48
+cd
 20
 40
 7d
@@ -3171,8 +3171,8 @@
 00
 da
 20
-49
-06
+48
+cd
 20
 40
 7d
@@ -3188,10 +3188,10 @@
 c0
 12
 03
-27
+28
 c0
-11
-83
+13
+03
 33
 c0
 10
@@ -3202,7 +3202,7 @@
 7c
 2c
 c0
-12
+13
 83
 1f
 20
@@ -3212,11 +3212,15 @@
 6f
 20
 c8
-c3
+49
+20
+7a
+00
+00
 d8
 c0
 48
-c4
+4a
 d8
 e0
 00
@@ -3236,31 +3240,27 @@
 d8
 a0
 48
-c3
+49
 20
 20
 03
 31
-70
-09
-0c
-00
 6f
 e0
 c8
-82
-1f
-e2
-72
-00
+08
 20
 7a
 00
 00
+1f
+e2
+72
+00
 d8
 c0
 48
-83
+09
 d8
 e0
 00
@@ -3280,7 +3280,7 @@
 d8
 a0
 48
-82
+08
 df
 20
 00
@@ -3289,26 +3289,22 @@
 20
 7c
 a1
-70
-09
-0c
-00
 6f
 e0
 c8
-41
-1f
-e2
-72
-00
+8a
 20
 7a
 00
 00
+1f
+e2
+72
+00
 d8
 c0
 48
-42
+8b
 d8
 e0
 00
@@ -3328,15 +3324,11 @@
 d8
 a0
 48
-41
-df
-20
-00
-41
+8a
 20
 20
-7c
-a1
+03
+31
 20
 75
 80
@@ -3388,7 +3380,7 @@
 20
 40
 03
-5c
+5a
 2a
 2f
 fe
@@ -3420,7 +3412,7 @@
 20
 40
 03
-5c
+5a
 d8
 a0
 8a
@@ -3448,7 +3440,7 @@
 20
 21
 03
-51
+4f
 20
 20
 21
@@ -3552,7 +3544,7 @@
 20
 40
 03
-95
+93
 70
 8a
 08
@@ -3588,7 +3580,7 @@
 20
 40
 03
-8b
+89
 6f
 f0
 8a
@@ -3632,7 +3624,7 @@
 20
 40
 03
-95
+93
 70
 80
 cd
@@ -3692,7 +3684,7 @@
 c3
 02
 83
-96
+94
 68
 59
 01
@@ -3728,7 +3720,7 @@
 c0
 08
 03
-b5
+b3
 58
 00
 57
@@ -3772,7 +3764,7 @@
 c0
 08
 03
-b2
+b0
 58
 00
 2b
@@ -3808,7 +3800,7 @@
 20
 20
 03
-ae
+ac
 58
 00
 83
@@ -3820,7 +3812,7 @@
 20
 20
 03
-a3
+a1
 6f
 e0
 c3
@@ -3860,7 +3852,7 @@
 c0
 11
 03
-c4
+c2
 c0
 7f
 b5
@@ -3876,7 +3868,7 @@
 20
 3a
 03
-ca
+c8
 6f
 e2
 45
@@ -3900,11 +3892,11 @@
 c0
 00
 83
-ce
+cc
 c0
 01
 03
-d5
+d3
 20
 60
 00
@@ -3924,7 +3916,7 @@
 c0
 01
 03
-d3
+d1
 20
 60
 00
@@ -3952,7 +3944,7 @@
 c0
 80
 03
-da
+d8
 20
 60
 00
@@ -4032,7 +4024,7 @@
 20
 40
 03
-ee
+ec
 20
 20
 34
@@ -4067,10 +4059,6 @@
 07
 20
 40
-04
-05
-20
-40
 03
 05
 6f
@@ -4103,19 +4091,7 @@
 f5
 d8
 40
-02
-a4
-98
-46
-7c
-00
-20
-22
-81
-ab
-d8
-40
-02
+03
 a2
 98
 46
@@ -4128,7 +4104,7 @@
 20
 20
 01
-ab
+ac
 58
 00
 00
@@ -4209,8 +4185,8 @@
 20
 31
 95
-45
-0f
+82
+e9
 aa
 55
 40
@@ -4458,7 +4434,7 @@
 55
 dc
 00
-64
+23
 47
 db
 05
@@ -4655,7 +4631,7 @@
 00
 09
 01
-91
+b1
 02
 c0
 06
@@ -4684,8 +4660,8 @@
 55
 09
 00
-0f
-49
+d6
+48
 08
 00
 15
@@ -4699,10 +4675,10 @@
 55
 11
 00
-1c
-49
-1f
-49
+e3
+48
+e6
+48
 0e
 77
 77
@@ -4722,7 +4698,7 @@
 55
 16
 00
-46
+0d
 49
 15
 7e
@@ -4946,8 +4922,8 @@
 aa
 aa
 55
-56
-a3
-f7
-a6
+4e
+a5
+fd
+02
 f0
Index: output/program.lis
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/output/program.lis	(working copy)
@@ -4,21 +4,21 @@
 0001 c0000022 beq patch00_0 ,p_soft_reset 
 0002 c001006d beq patch00_2 ,p_main_loop 
 0003 c0088076 beq patch02_1 ,p_set_sync_on 
-0004 c00a039c beq patch02_4 ,p_set_lemode 
+0004 c00a039a beq patch02_4 ,p_set_lemode 
 0005 c00a8110 beq patch02_5 ,p_rf_rx_enable 
 0006 c00c011e beq patch03_0 ,p_txon 
 0007 c00c80c4 beq patch03_1 ,p_set_tx_power 
 0008 c00d0084 beq patch03_2 ,p_initialize_radio_cont 
-0009 c01b8407 beq patch06_7 ,p_dongle_default_init 
+0009 c01b8401 beq patch06_7 ,p_dongle_default_init 
 000a c01c00e3 beq patch07_0 ,p_dongle_read_kb_bind_status 
 000b c01c80df beq patch07_1 ,p_dongle_write_kb_bind_status 
-000c c01e83f5 beq patch07_5 ,p_dongle_usb_dispatch 
+000c c01e83f3 beq patch07_5 ,p_dongle_usb_dispatch 
 000d c01f0028 beq patch07_6 ,p_dongle_work_mode_auto 
 000e c06280dc beq patch18_5 ,p_otp_read_data 
-000f c06d036d beq patch1b_2 ,p_sadc_calibration 
-0010 c06e037d beq patch1b_4 ,p_enable_adc 
+000f c06d036b beq patch1b_2 ,p_sadc_calibration 
+0010 c06e037b beq patch1b_4 ,p_enable_adc 
 0011 c07f0129 beq patch1f_6 ,p_usb_init 
-0012 c07f8198 beq patch1f_7 ,p_usb_rx 
+0012 c07f8199 beq patch1f_7 ,p_usb_rx 
 0013 c07e8125 beq patch1f_5 ,p_usb_isr 
 0014 2020235a branch assert 
 
@@ -26,13 +26,13 @@
 0015 c00001bf beq patch20_0 ,p_usb_class_type 
 0016 c00101fe beq patch20_2 ,p_usb0_request_get_descriptor 
 0017 c003021e beq patch20_6 ,p_usb_tx 
-0018 c01c83b8 beq patch27_1 ,p_le_parse 
-0019 c02683bc beq patch29_5 ,p_le_init_adv 
-001a c037840f beq patch2d_7 ,p_g24_receive_skip_end 
-001b c04103be beq patch30_2 ,p_g24_bind_data_parse_next 
+0018 c01c83b6 beq patch27_1 ,p_le_parse 
+0019 c02683ba beq patch29_5 ,p_le_init_adv 
+001a c0378409 beq patch2d_7 ,p_g24_receive_skip_end 
+001b c04103bc beq patch30_2 ,p_g24_bind_data_parse_next 
 001c c042022f beq patch30_4 ,p_g24_receive_packet_start1 
-001d c04403dd beq patch31_0 ,p_g24_mode_switch_bind_search 
-001e c04503ea beq patch31_2 ,p_g24_bind_mode_auto 
+001d c04403db beq patch31_0 ,p_g24_mode_switch_bind_search 
+001e c04503e8 beq patch31_2 ,p_g24_bind_mode_auto 
 001f c1468000 rtneq patch31_5 
 0020 c17f8000 rtneq patch3f_7 
 0021 2020235a branch assert 
@@ -62,32 +62,32 @@
 0033 20407cef call timer_check 
 0034 247a0000 nrtn blank 
 0035 2040351b call g24_ch_process + 3 
-0036 6fe0c905 fetch 1 ,mem_usb_rf_state_report_flag1 
+0036 6fe0c8cc fetch 1 ,mem_usb_rf_state_report_flag1 
 0037 c1008000 rtneq 0x1 
-0038 70490501 jam 0x1 ,mem_usb_rf_state_report_flag1 
-0039 70490400 jam 0x0 ,mem_usb_rf_state_report_flag 
+0038 7048cc01 jam 0x1 ,mem_usb_rf_state_report_flag1 
+0039 7048cb00 jam 0x0 ,mem_usb_rf_state_report_flag 
 003a 2020003b branch p_dongle_usb_ep2_disconnect_report 
 
 p_dongle_usb_ep2_disconnect_report:
-003b 7048c340 jam 0x40 ,mem_usb_rf_state_data 
-003c 7048c4a1 jam 0xa1 ,mem_usb_rf_state_data + 1 
-003d 7048c502 jam 0x2 ,mem_usb_rf_state_data + 2 
-003e 7048c604 jam 0x4 ,mem_usb_rf_state_data + 3 
-003f 7048c701 jam 0x1 ,mem_usb_rf_state_data + 4 
-0040 7048c800 jam 0x0 ,mem_usb_rf_state_data + 5 
-0041 70066f25 jam usb_ep2_mskb_state ,mem_fifo_temp 
-0042 da204906 arg mem_usb_ep2_fifo ,rega 
+003b 70484940 jam 0x40 ,mem_usb_rf_state_data 
+003c 70484aa1 jam 0xa1 ,mem_usb_rf_state_data + 1 
+003d 70484b02 jam 0x2 ,mem_usb_rf_state_data + 2 
+003e 70484c04 jam 0x4 ,mem_usb_rf_state_data + 3 
+003f 70484d01 jam 0x1 ,mem_usb_rf_state_data + 4 
+0040 70484e00 jam 0x0 ,mem_usb_rf_state_data + 5 
+0041 70066f27 jam usb_ep2_mskb_state ,mem_fifo_temp 
+0042 da2048cd arg mem_usb_ep2_fifo ,rega 
 0043 20207d8b branch fifo_in 
 
 p_dongle_usb_ep2_connect_report:
-0044 7048c340 jam 0x40 ,mem_usb_rf_state_data 
-0045 7048c4a1 jam 0xa1 ,mem_usb_rf_state_data + 1 
-0046 7048c502 jam 0x2 ,mem_usb_rf_state_data + 2 
-0047 7048c604 jam 0x4 ,mem_usb_rf_state_data + 3 
-0048 7048c701 jam 0x1 ,mem_usb_rf_state_data + 4 
-0049 7048c801 jam 0x1 ,mem_usb_rf_state_data + 5 
-004a 70066f25 jam usb_ep2_mskb_state ,mem_fifo_temp 
-004b da204906 arg mem_usb_ep2_fifo ,rega 
+0044 70484940 jam 0x40 ,mem_usb_rf_state_data 
+0045 70484aa1 jam 0xa1 ,mem_usb_rf_state_data + 1 
+0046 70484b02 jam 0x2 ,mem_usb_rf_state_data + 2 
+0047 70484c04 jam 0x4 ,mem_usb_rf_state_data + 3 
+0048 70484d01 jam 0x1 ,mem_usb_rf_state_data + 4 
+0049 70484e01 jam 0x1 ,mem_usb_rf_state_data + 5 
+004a 70066f27 jam usb_ep2_mskb_state ,mem_fifo_temp 
+004b da2048cd arg mem_usb_ep2_fifo ,rega 
 004c 20207d8b branch fifo_in 
 
 p_g24_work_mode_start:
@@ -132,7 +132,7 @@
 0069 20207ce1 branch timer_init 
 
 p_mouse_ackpayload_set:
-006a 6fe0c840 fetch 1 ,mem_24g_ackpayload_enable_temp 
+006a 6fe0c7ff fetch 1 ,mem_24g_ackpayload_enable_temp 
 006b 67e0c611 store 1 ,mem_24g_ackpayload_enable 
 006c 20600000 rtn 
 
@@ -193,12 +193,12 @@
 009c 58557474 setarg 0x557474 
 009d 67f18968 store 3 ,0x8968 
 009e 7089606e jam 0x6e ,0x8960 
-009f 2040033f call p_rx_dcoc 
-00a0 2040036a call p_rfpll_aac_ghpc 
+009f 2040033d call p_rx_dcoc 
+00a0 20400368 call p_rfpll_aac_ghpc 
 00a1 204000a5 call p_set_xtal_cap 
 00a2 7041480c jam system_clk_12m ,mem_system_clk 
 00a3 20406f4e call sadc_calibration 
-00a4 2020036c branch p_dpll_ring_ibias_calc 
+00a4 2020036a branch p_dpll_ring_ibias_calc 
 
 p_set_xtal_cap:
 00a5 20758000 rtn wake 
@@ -373,7 +373,7 @@
 012a 20407d88 call ice_set_write_bp 
 012b 20407396 call enable_authrom 
 012c 20407932 call usb_init_param 
-012d 58004764 setarg mem_usb_ep2_config 
+012d 58004723 setarg mem_usb_ep2_config 
 012e 67e107a9 store 2 ,mem_hidreportdesc_m 
 012f 58000243 setarg p_dongle_g24_mouse 
 0130 67e145e4 store 2 ,mem_cb_24g_data_device1 
@@ -413,125 +413,127 @@
 p_usb_rx_data_out:
 014d 6fe0870c fetch 1 ,mem_usb_read_len 
 014e 1fe67c02 sub pdata ,2 ,null 
-014f 20210162 branch p_dongle_hci_event_invalid_packet ,positive 
+014f 20210165 branch p_dongle_hci_event_invalid_packet ,positive 
 0150 6fe08877 fetch 1 ,mem_usb0_set_report_data + 2 
-0151 c0808162 bne 0x01 ,p_dongle_hci_event_invalid_packet 
+0151 c0808165 bne 0x01 ,p_dongle_hci_event_invalid_packet 
 0152 efe08006 ifetch 1 ,contr 
 0153 67e0c6df store 1 ,mem_dongle_usb_opcode 
 0154 e8408006 ifetcht 1 ,contr 
 0155 18c22200 copy contr ,rega 
 0156 6048c6e0 storet 1 ,mem_dongle_usb_len 
-0157 20200158 branch p_dongle_usb_hci_cmd_control 
 
 p_dongle_usb_hci_cmd_control:
-0158 6fe0c62b fetch 1 ,mem_24g_bind_device_living 
-0159 203a0162 branch p_dongle_hci_event_invalid_packet ,blank 
-015a 6fe0c6df fetch 1 ,mem_dongle_usb_opcode 
-015b c0028160 beq hci_cmd_get_device_info ,p_dongle_usb_hci_cmd_get_deivce_info 
-015c c0010160 beq hci_cmd_auth_enable ,p_dongle_usb_hci_cmd_get_deivce_info 
-015d c0018160 beq hci_cmd_voice_contral ,p_dongle_usb_hci_cmd_get_deivce_info 
-015e c0020160 beq hci_cmd_dpi_contral ,p_dongle_usb_hci_cmd_get_deivce_info 
-015f 20200162 branch p_dongle_hci_event_invalid_packet 
-
-p_dongle_usb_hci_cmd_get_deivce_info:
-0160 7046e1a2 jam report_id_data_out ,mem_dongle_usb_ep2_data_flag 
-0161 2020017d branch p_dongle_usb_ack_prep 
+0157 6fe0c6df fetch 1 ,mem_dongle_usb_opcode 
+0158 c002815c beq hci_cmd_get_sn ,p_dongle_usb_hci_cmd_get_sn 
+0159 20200165 branch p_dongle_hci_event_invalid_packet 
+
+p_dongle_usb_hci_cmd_set_dpi:
+
+p_dongle_usb_hci_cmd_set_sn:
+015a 7046e1a2 jam report_id_data_out ,mem_dongle_24g_data_ack_flag 
+015b 2020017e branch p_dongle_usb_ack_prep 
+
+p_dongle_usb_hci_cmd_get_sn:
+015c 70488a40 jam 0x40 ,mem_dongle_usb_ep2_data 
+015d 70488ba1 jam report_id_data_in ,mem_dongle_usb_ep2_data + 1 
+015e 70488c02 jam 0x02 ,mem_dongle_usb_ep2_data + 2 
+015f 70488d03 jam 0x03 ,mem_dongle_usb_ep2_data + 3 
+0160 70488e06 jam 0x06 ,mem_dongle_usb_ep2_data + 4 
+0161 6fe34800 fetch 6 ,mem_usb_get_report_sn_data 
+0162 67e3488f store 6 ,mem_dongle_usb_ep2_data + 5 
+0163 70090c26 jam usb_ep2_sn ,mem_usb_ep2_data 
+0164 20200278 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_hci_event_invalid_packet:
-0162 7048c340 jam 0x40 ,mem_usb_rf_state_data 
-0163 7048c4a1 jam 0xA1 ,mem_usb_rf_state_data + 1 
-0164 d8400001 arg 1 ,temp 
+0165 70484940 jam 0x40 ,mem_usb_rf_state_data 
+0166 70484aa1 jam 0xA1 ,mem_usb_rf_state_data + 1 
+0167 d8400001 arg 1 ,temp 
 
 p_dongle_hci_event_ack_packet:
-0165 da200000 arg 0 ,rega 
-0166 6fe0c6df fetch 1 ,mem_dongle_usb_opcode 
-0167 1fe22600 copy pdata ,regc 
+0168 da200000 arg 0 ,rega 
+0169 6fe0c6df fetch 1 ,mem_dongle_usb_opcode 
+016a 1fe22600 copy pdata ,regc 
 
 p_dongle_hci_event_packet:
-0168 7046df06 jam hci_event_cmd_res ,mem_dongle_usb_opcode 
-0169 58000002 setarg 2 
-016a 9a20fe00 iadd rega ,pdata 
-016b 7046de02 jam 0x02 ,mem_dongle_usb_header 
-016c 67e0c6e0 store 1 ,mem_dongle_usb_len 
-016d 604c0678 storet 8 ,mem_temp 
-016e 684c0678 fetcht 8 ,mem_temp 
-016f d8a048c5 arg mem_usb_rf_state_data + 2 ,contw 
-0170 6fe1c6de fetch 3 ,mem_dongle_usb_header 
-0171 e7e18005 istore 3 ,contw 
-0172 1a627e00 copy regc ,pdata 
-0173 e7e08005 istore 1 ,contw 
-0174 e0408005 istoret 1 ,contw 
-0175 1a227200 copy rega ,loopcnt 
-0176 1a420c00 copy regb ,contr 
-0177 20407cda call memcpy 
-0178 70066f25 jam usb_ep2_mskb_state ,mem_fifo_temp 
-0179 da204906 arg mem_usb_ep2_fifo ,rega 
-017a 20207d8b branch fifo_in 
-
-p_usb_rx_data_authca_out:
-017b 7046e1a4 jam report_id_authca_data_out ,mem_dongle_usb_ep2_data_flag 
-017c 2020017d branch p_dongle_usb_ack_prep 
+016b 7046df06 jam hci_event_cmd_res ,mem_dongle_usb_opcode 
+016c 58000002 setarg 2 
+016d 9a20fe00 iadd rega ,pdata 
+016e 7046de02 jam 0x02 ,mem_dongle_usb_header 
+016f 67e0c6e0 store 1 ,mem_dongle_usb_len 
+0170 604c0678 storet 8 ,mem_temp 
+0171 684c0678 fetcht 8 ,mem_temp 
+0172 d8a0484b arg mem_usb_rf_state_data + 2 ,contw 
+0173 6fe1c6de fetch 3 ,mem_dongle_usb_header 
+0174 e7e18005 istore 3 ,contw 
+0175 1a627e00 copy regc ,pdata 
+0176 e7e08005 istore 1 ,contw 
+0177 e0408005 istoret 1 ,contw 
+0178 1a227200 copy rega ,loopcnt 
+0179 1a420c00 copy regb ,contr 
+017a 20407cda call memcpy 
+017b 70066f27 jam usb_ep2_mskb_state ,mem_fifo_temp 
+017c da2048cd arg mem_usb_ep2_fifo ,rega 
+017d 20207d8b branch fifo_in 
 
 p_dongle_usb_ack_prep:
-017d 20400186 call p_dongle_g24_usb_ep2_ack_data_clr 
-017e 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
-017f 704840a2 jam report_id_data_out ,mem_24g_ackpayload_enable_temp 
-0180 6f208876 fetchr loopcnt ,1 ,mem_usb0_set_report_data + 1 
-0181 1f20f202 increase 2 ,loopcnt 
-0182 6720c6e2 storer loopcnt ,1 ,mem_dongle_usb_ep2_data_len 
-0183 d8c00875 arg mem_usb0_set_report_data ,contr 
-0184 d8a046e3 arg mem_dongle_g24_usb_ep2_ack_data ,contw 
-0185 20207cda branch memcpy 
-
-p_dongle_g24_usb_ep2_ack_data_clr:
-0186 df200040 arg 64 ,loopcnt 
-0187 d8a046e3 arg mem_dongle_g24_usb_ep2_ack_data ,contw 
-0188 20207ca1 branch clear_mem 
+017e 20400187 call p_dongle_g24_ack_data_clr 
+017f 704611a2 jam report_id_data_out ,mem_24g_ackpayload_enable 
+0180 7047ffa2 jam report_id_data_out ,mem_24g_ackpayload_enable_temp 
+0181 6f208876 fetchr loopcnt ,1 ,mem_usb0_set_report_data + 1 
+0182 1f20f202 increase 2 ,loopcnt 
+0183 6720c6e2 storer loopcnt ,1 ,mem_dongle_24g_data_ack_len 
+0184 d8c00875 arg mem_usb0_set_report_data ,contr 
+0185 d8a046e3 arg mem_dongle_g24_ack_data ,contw 
+0186 20207cda branch memcpy 
+
+p_dongle_g24_ack_data_clr:
+0187 df200040 arg 64 ,loopcnt 
+0188 d8a046e3 arg mem_dongle_g24_ack_data ,contw 
+0189 20207ca1 branch clear_mem 
 
 p_usb_rx_len:
-0189 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
-018a 6a110c04 fetchr contue ,2 ,core_usb_rx_eaddr 
-018b 68710c06 fetchr contu ,2 ,core_usb_rxptr 
-018c 18627e00 copy contu ,pdata 
-018d efe10003 ifetch 2 ,contu 
-018e 1fec8400 rshift8 pdata ,temp 
-018f 18518400 rshift4 temp ,temp 
-0190 d8c00fff arg 0xfff ,contr 
-0191 98c17200 iand contr ,loopcnt 
-0192 6721070c storer loopcnt ,2 ,mem_usb_read_len 
-0193 1f267c00 sub loopcnt ,0 ,null 
-0194 20428189 call p_usb_rx_len ,zero 
-0195 1f267c00 sub loopcnt ,0 ,null 
-0196 2042fd7c call ice_break ,zero 
-0197 20600000 rtn 
+018a 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
+018b 6a110c04 fetchr contue ,2 ,core_usb_rx_eaddr 
+018c 68710c06 fetchr contu ,2 ,core_usb_rxptr 
+018d 18627e00 copy contu ,pdata 
+018e efe10003 ifetch 2 ,contu 
+018f 1fec8400 rshift8 pdata ,temp 
+0190 18518400 rshift4 temp ,temp 
+0191 d8c00fff arg 0xfff ,contr 
+0192 98c17200 iand contr ,loopcnt 
+0193 6721070c storer loopcnt ,2 ,mem_usb_read_len 
+0194 1f267c00 sub loopcnt ,0 ,null 
+0195 2042818a call p_usb_rx_len ,zero 
+0196 1f267c00 sub loopcnt ,0 ,null 
+0197 2042fd7c call ice_break ,zero 
+0198 20600000 rtn 
 
 p_usb_rx:
-0198 6fe08709 fetch 1 ,mem_usb_status 
-0199 c4028000 rtnbit0 usb_status_rxready 
-019a 20400189 call p_usb_rx_len 
-019b 6048c697 storet 1 ,mem_usb_rx_endpoint 
-019c 2841fe0d compare 13 ,temp ,0xff 
-019d 2020f999 branch usb_rx_ep13 ,true 
-019e 6fe0c696 fetch 1 ,mem_setreport_count 
-019f c00081af beq 1 ,p_setreport_next_page_data 
-01a0 1f267c00 sub loopcnt ,0 ,null 
-01a1 2042fd7c call ice_break ,zero 
-01a2 d8a0086d arg mem_usb_setup ,contw 
-01a3 20407994 call usb_rx_read 
-01a4 202001a5 branch p_usb_rx_next 
+0199 6fe08709 fetch 1 ,mem_usb_status 
+019a c4028000 rtnbit0 usb_status_rxready 
+019b 2040018a call p_usb_rx_len 
+019c 6048c697 storet 1 ,mem_usb_rx_endpoint 
+019d 2841fe0d compare 13 ,temp ,0xff 
+019e 2020f999 branch usb_rx_ep13 ,true 
+019f 6fe0c696 fetch 1 ,mem_setreport_count 
+01a0 c00081af beq 1 ,p_setreport_next_page_data 
+01a1 1f267c00 sub loopcnt ,0 ,null 
+01a2 2042fd7c call ice_break ,zero 
+01a3 d8a0086d arg mem_usb_setup ,contw 
+01a4 20407994 call usb_rx_read 
+01a5 202001a6 branch p_usb_rx_next 
 
 p_usb_rx_next:
-01a5 6fe0870c fetch 1 ,mem_usb_read_len 
-01a6 c0007986 beq 0x00 ,usb_rx_no_data 
-01a7 c000f9b6 beq 0x01 ,usb_out_one_byte 
-01a8 1fe67c07 sub pdata ,7 ,null 
-01a9 20610000 rtn positive 
-01aa 202001bf branch p_usb_class_type 
+01a6 6fe0870c fetch 1 ,mem_usb_read_len 
+01a7 c0007986 beq 0x00 ,usb_rx_no_data 
+01a8 c000f9b6 beq 0x01 ,usb_out_one_byte 
+01a9 1fe67c07 sub pdata ,7 ,null 
+01aa 20610000 rtn positive 
+01ab 202001bf branch p_usb_class_type 
 
 p_dongle_usb_data_received_analysis:
-01ab 6fe08875 fetch 1 ,mem_usb0_set_report_data 
-01ac c051014d beq report_id_data_out ,p_usb_rx_data_out 
-01ad c052017b beq report_id_authca_data_out ,p_usb_rx_data_authca_out 
+01ac 6fe08875 fetch 1 ,mem_usb0_set_report_data 
+01ad c051014d beq report_id_data_out ,p_usb_rx_data_out 
 01ae 20600000 rtn 
 
 p_setreport_next_page_data:
@@ -686,15 +688,15 @@
 0229 2020030f branch p_usb_tx_data_ep2 
 
 p_dongle_usb_ep2_connect_report_send:
-022a 6fe0c904 fetch 1 ,mem_usb_rf_state_report_flag 
+022a 6fe0c8cb fetch 1 ,mem_usb_rf_state_report_flag 
 022b c1008000 rtneq 0x1 
-022c 70490500 jam 0x0 ,mem_usb_rf_state_report_flag1 
-022d 70490401 jam 0x1 ,mem_usb_rf_state_report_flag 
+022c 7048cc00 jam 0x0 ,mem_usb_rf_state_report_flag1 
+022d 7048cb01 jam 0x1 ,mem_usb_rf_state_report_flag 
 022e 20200044 branch p_dongle_usb_ep2_connect_report 
 
 p_g24_receive_packet_start1:
 022f 2040022a call p_dongle_usb_ep2_connect_report_send 
-0230 70484000 jam 0 ,mem_24g_ackpayload_enable_temp 
+0230 7047ff00 jam 0 ,mem_24g_ackpayload_enable_temp 
 0231 70461100 jam 0 ,mem_24g_ackpayload_enable 
 0232 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
 0233 c000b3c4 beq datatype_device1 ,g24_data_device1 
@@ -721,75 +723,77 @@
 p_dongle_g24_mouse:
 0243 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
 0244 c282023f bbit1 data_http ,p_dongle_usb_tx_http_data 
-0245 c2828262 bbit1 data_dpi ,p_dongle_receive_dpi_data 
-0246 c283026d bbit1 data_device_info ,p_dongle_receive_device_info_data 
-0247 20200248 branch p_dongle_g24_mouse_next 
+0245 c2828264 bbit1 data_dpi ,p_dongle_receive_dpi_data 
+0246 c283026f bbit1 data_device_info ,p_dongle_receive_device_info_data 
+0247 c2838275 bbit1 data_battery ,p_dongle_receive_battery_data 
+0248 20200249 branch p_dongle_g24_mouse_next 
 
 p_dongle_g24_mouse_next:
-0248 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0249 1fe67c09 sub pdata ,0x09 ,null 
-024a 20228258 branch p_dongle_g24_mouse_data ,zero 
-024b 20400258 call p_dongle_g24_mouse_data 
-024c 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-024d 1fe0fff8 add pdata ,-8 ,pdata 
-024e 67e0c57d store 1 ,mem_24g_rxdata_length 
-024f 1fe27200 copy pdata ,loopcnt 
-0250 d8a045ea arg mem_24g_rxdata_temp + 2 ,contw 
-0251 d8c045f2 arg mem_24g_rxdata_temp + 10 ,contr 
-0252 20407cda call memcpy 
-0253 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-0254 c282023f bbit1 data_http ,p_dongle_usb_tx_http_data 
-0255 c2828262 bbit1 data_dpi ,p_dongle_receive_dpi_data 
-0256 c283026d bbit1 data_device_info ,p_dongle_receive_device_info_data 
-0257 20600000 rtn 
+0249 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+024a 1fe67c09 sub pdata ,0x09 ,null 
+024b 2022825a branch p_dongle_g24_mouse_data ,zero 
+024c 2040025a call p_dongle_g24_mouse_data 
+024d 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+024e 1fe0fff8 add pdata ,-8 ,pdata 
+024f 67e0c57d store 1 ,mem_24g_rxdata_length 
+0250 1fe27200 copy pdata ,loopcnt 
+0251 d8a045ea arg mem_24g_rxdata_temp + 2 ,contw 
+0252 d8c045f2 arg mem_24g_rxdata_temp + 10 ,contr 
+0253 20407cda call memcpy 
+0254 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+0255 c282023f bbit1 data_http ,p_dongle_usb_tx_http_data 
+0256 c2828264 bbit1 data_dpi ,p_dongle_receive_dpi_data 
+0257 c283026f bbit1 data_device_info ,p_dongle_receive_device_info_data 
+0258 c2838275 bbit1 data_battery ,p_dongle_receive_battery_data 
+0259 20600000 rtn 
 
 p_dongle_g24_mouse_data:
-0258 58000001 setarg ms_report_id 
-0259 67e08913 store 1 ,mem_usb_mouse_data 
-025a 6fe3c5eb fetch 7 ,mem_24g_rxdata_temp + 3 
-025b e7e38005 istore 7 ,contw 
-025c 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-025d 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+025a 58000001 setarg ms_report_id 
+025b 67e08913 store 1 ,mem_usb_mouse_data 
+025c 6fe3c5eb fetch 7 ,mem_24g_rxdata_temp + 3 
+025d e7e38005 istore 7 ,contw 
 025e 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-025f 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
-0260 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
-0261 20200278 branch p_dongle_usb_tx_enable_ep2 
+025f 245a48dd ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+0260 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0261 205a48e1 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+0262 70090c20 jam usb_ep2_ms ,mem_usb_ep2_data 
+0263 20200278 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_dpi_data:
-0262 58000040 setarg 0x40 
-0263 67e0c882 store 1 ,mem_usb_dpi_data 
-0264 704883a1 jam report_id_data_in ,mem_usb_dpi_data + 1 
-0265 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0266 1fe0ffff increase -1 ,pdata 
-0267 1fe27200 copy pdata ,loopcnt 
-0268 d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
-0269 d8a04884 arg mem_usb_dpi_data + 2 ,contw 
-026a 20407cda call memcpy 
-026b 70090c24 jam usb_ep2_dpi ,mem_usb_ep2_data 
-026c 20200278 branch p_dongle_usb_tx_enable_ep2 
+0264 58000040 setarg 0x40 
+0265 67e0c808 store 1 ,mem_usb_dpi_data 
+0266 704809a1 jam report_id_data_in ,mem_usb_dpi_data + 1 
+0267 70480a02 jam 0x02 ,mem_usb_dpi_data + 2 
+0268 70480b02 jam 0x02 ,mem_usb_dpi_data + 3 
+0269 70480c01 jam 0x01 ,mem_usb_dpi_data + 4 
+026a 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+026b 67e0c80d store 1 ,mem_usb_dpi_data + 5 
+026c 67e0c806 store 1 ,mem_usb_get_report_dpi_data 
+026d 70090c24 jam usb_ep2_dpi ,mem_usb_ep2_data 
+026e 20200278 branch p_dongle_usb_tx_enable_ep2 
 
 p_dongle_receive_device_info_data:
-026d 58000040 setarg 0x40 
-026e 67e0c841 store 1 ,mem_usb_device_info_data 
-026f 704842a1 jam report_id_data_in ,mem_usb_device_info_data + 1 
-0270 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-0271 1fe0ffff increase -1 ,pdata 
-0272 1fe27200 copy pdata ,loopcnt 
-0273 d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
-0274 d8a04843 arg mem_usb_device_info_data + 2 ,contw 
-0275 20407cda call memcpy 
-0276 70090c23 jam usb_ep2_device_info ,mem_usb_ep2_data 
-0277 20200278 branch p_dongle_usb_tx_enable_ep2 
+026f 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+0270 1fe0ffff increase -1 ,pdata 
+0271 1fe27200 copy pdata ,loopcnt 
+0272 d8c045eb arg mem_24g_rxdata_temp + 3 ,contr 
+0273 d8a04800 arg mem_usb_get_report_sn_data ,contw 
+0274 20207cda branch memcpy 
+
+p_dongle_receive_battery_data:
+0275 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+0276 67e0c807 store 1 ,mem_usb_get_report_battery_data 
+0277 20600000 rtn 
 
 p_dongle_usb_tx_enable_ep2:
 0278 6fe0890e fetch 1 ,mem_usb_device_enumeration_endflag 
 0279 207a0000 rtn blank 
-027a da204906 arg mem_usb_ep2_fifo ,rega 
+027a da2048cd arg mem_usb_ep2_fifo ,rega 
 027b 20407da5 call fifo_is_full 
 027c 247a0000 nrtn blank 
 027d 6fe0890c fetch 1 ,mem_usb_ep2_data 
 027e 67e0866f store 1 ,mem_fifo_temp 
-027f da204906 arg mem_usb_ep2_fifo ,rega 
+027f da2048cd arg mem_usb_ep2_fifo ,rega 
 0280 20207d8b branch fifo_in 
 
 p_usb_tx_data_ep1:
@@ -808,7 +812,7 @@
 028d 2020235a branch assert 
 
 p_usb_tx_http_data_set:
-028e 6fe0c919 fetch 1 ,mem_usb_website_step 
+028e 6fe0c8e0 fetch 1 ,mem_usb_website_step 
 028f c0000299 beq website_win ,p_usb_website_winr_data 
 0290 c00082a5 beq website_r_space_release ,p_usb_website_r_space_release_data 
 0291 c00102a9 beq website_win_release ,p_usb_website_win_release_data 
@@ -827,92 +831,92 @@
 029c 20600000 rtn 
 
 p_usb_tx_winos_winr_data:
-029d 70491901 jam website_r_space_release ,mem_usb_website_step 
-029e 6fe1c90f fetch 3 ,mem_usb_win_cmd 
+029d 7048e001 jam website_r_space_release ,mem_usb_website_step 
+029e 6fe1c8d6 fetch 3 ,mem_usb_win_cmd 
 029f 67e18923 store 3 ,mem_usb_kb_data 
 02a0 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_macos_winr_data:
-02a1 70491901 jam website_r_space_release ,mem_usb_website_step 
-02a2 6fe1c912 fetch 3 ,mem_usb_mac_cmd 
+02a1 7048e001 jam website_r_space_release ,mem_usb_website_step 
+02a2 6fe1c8d9 fetch 3 ,mem_usb_mac_cmd 
 02a3 67e18923 store 3 ,mem_usb_kb_data 
 02a4 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_r_space_release_data:
-02a5 70491902 jam website_win_release ,mem_usb_website_step 
-02a6 6fe0c90f fetch 1 ,mem_usb_win_cmd 
+02a5 7048e002 jam website_win_release ,mem_usb_website_step 
+02a6 6fe0c8d6 fetch 1 ,mem_usb_win_cmd 
 02a7 67e08923 store 1 ,mem_usb_kb_data 
 02a8 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_win_release_data:
-02a9 70491903 jam website_wait ,mem_usb_website_step 
+02a9 7048e003 jam website_wait ,mem_usb_website_step 
 
 p_usb_webstie_release_data:
 02aa d8a00923 arg mem_usb_kb_data ,contw 
 02ab df200008 arg 8 ,loopcnt 
 02ac 20407ca3 call memset0 
-02ad 70491b00 jam 0 ,mem_usb_website_release_flag 
+02ad 7048e200 jam 0 ,mem_usb_website_release_flag 
 02ae 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_data1:
-02af 70491906 jam website_enter_release_1 ,mem_usb_website_step 
+02af 7048e006 jam website_enter_release_1 ,mem_usb_website_step 
 
 p_usb_webstie_enter_data:
-02b0 6fe1c915 fetch 3 ,mem_usb_kb_enter 
+02b0 6fe1c8dc fetch 3 ,mem_usb_kb_enter 
 02b1 67e18923 store 3 ,mem_usb_kb_data 
 02b2 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_website_enter_release_data1:
-02b3 70491907 jam website_enter_2 ,mem_usb_website_step 
+02b3 7048e007 jam website_enter_2 ,mem_usb_website_step 
 02b4 202002aa branch p_usb_webstie_release_data 
 
 p_usb_website_enter_data2:
-02b5 70491908 jam website_enter_release_2 ,mem_usb_website_step 
+02b5 7048e008 jam website_enter_release_2 ,mem_usb_website_step 
 02b6 202002b0 branch p_usb_webstie_enter_data 
 
 p_usb_website_enter_release_data2:
-02b7 70491900 jam website_done ,mem_usb_website_step 
+02b7 7048e000 jam website_done ,mem_usb_website_step 
 02b8 202002aa branch p_usb_webstie_release_data 
 
 p_usb_website_wait_tx_data:
-02b9 6fe0c918 fetch 1 ,mem_usb_website_wait_count 
+02b9 6fe0c8df fetch 1 ,mem_usb_website_wait_count 
 02ba 1fe0fe01 increase 1 ,pdata 
-02bb 67e0c918 store 1 ,mem_usb_website_wait_count 
+02bb 67e0c8df store 1 ,mem_usb_website_wait_count 
 02bc c1878000 rtnne website_wait_count 
-02bd 70491800 jam 0 ,mem_usb_website_wait_count 
-02be 70491904 jam website_data ,mem_usb_website_step 
+02bd 7048df00 jam 0 ,mem_usb_website_wait_count 
+02be 7048e004 jam website_data ,mem_usb_website_step 
 02bf 20600000 rtn 
 
 p_usb_website_data:
-02c0 6fe0c91b fetch 1 ,mem_usb_website_release_flag 
+02c0 6fe0c8e2 fetch 1 ,mem_usb_website_release_flag 
 02c1 c00082aa beq 1 ,p_usb_webstie_release_data 
 02c2 c00002c6 beq 0 ,p_usb_website_info_data 
 02c3 20600000 rtn 
 
 p_usb_webstie_info_data_done:
-02c4 70491905 jam website_enter_1 ,mem_usb_website_step 
+02c4 7048e005 jam website_enter_1 ,mem_usb_website_step 
 02c5 20600000 rtn 
 
 p_usb_website_info_data:
-02c6 d840491f arg mem_usb_website_info + 1 ,temp 
-02c7 6fe0c91e fetch 1 ,mem_usb_website_info 
+02c6 d84048e6 arg mem_usb_website_info + 1 ,temp 
+02c7 6fe0c8e5 fetch 1 ,mem_usb_website_info 
 02c8 98408400 iadd temp ,temp 
-02c9 6fe1491c fetch 2 ,mem_usb_website_ptr 
+02c9 6fe148e3 fetch 2 ,mem_usb_website_ptr 
 02ca 98467c00 isub temp ,null 
 02cb 202282c4 branch p_usb_webstie_info_data_done ,zero 
 02cc 204002d6 call p_usb_tx_website_acii2hidkey 
 02cd 204002f8 call p_usb_tx_website_need_shift 
-02ce 6fe0c91a fetch 1 ,mem_usb_website_shift_flag 
+02ce 6fe0c8e1 fetch 1 ,mem_usb_website_shift_flag 
 02cf 67e08923 store 1 ,mem_usb_kb_data 
 02d0 62208925 storer rega ,1 ,mem_usb_kb_data + 2 
-02d1 6fe1491c fetch 2 ,mem_usb_website_ptr 
+02d1 6fe148e3 fetch 2 ,mem_usb_website_ptr 
 02d2 1fe0fe01 increase 1 ,pdata 
-02d3 67e1491c store 2 ,mem_usb_website_ptr 
-02d4 70491b01 jam 1 ,mem_usb_website_release_flag 
+02d3 67e148e3 store 2 ,mem_usb_website_ptr 
+02d4 7048e201 jam 1 ,mem_usb_website_release_flag 
 02d5 20207c28 branch usb_tx_kb_normal_data 
 
 p_usb_tx_website_acii2hidkey:
-02d6 6849491c fetcht 2 ,mem_usb_website_ptr 
+02d6 684948e3 fetcht 2 ,mem_usb_website_ptr 
 02d7 efe08002 ifetch 1 ,temp 
 02d8 1fe67c7a sub pdata ,0x7a ,null 
 02d9 242102dd nbranch p_usb_tx_website_acii2hidkey1 ,positive 
@@ -964,11 +968,11 @@
 02f7 20600000 rtn 
 
 p_usb_tx_website_need_shift:
-02f8 70491a00 jam 0 ,mem_usb_website_shift_flag 
-02f9 6fe1491c fetch 2 ,mem_usb_website_ptr 
+02f8 7048e100 jam 0 ,mem_usb_website_shift_flag 
+02f9 6fe148e3 fetch 2 ,mem_usb_website_ptr 
 02fa efe0803f ifetch 1 ,pdata 
-02fb d8c04947 arg mem_usb_website_info_sign + 1 ,contr 
-02fc 6848c946 fetcht 1 ,mem_usb_website_info_sign 
+02fb d8c0490e arg mem_usb_website_info_sign + 1 ,contr 
+02fc 6848c90d fetcht 1 ,mem_usb_website_info_sign 
 02fd 18427200 copy temp ,loopcnt 
 
 p_usb_tx_website_need_shift_check_loop:
@@ -979,7 +983,7 @@
 0302 20600000 rtn 
 
 p_usb_tx_website_need_shift_setflag:
-0303 70491a02 jam 2 ,mem_usb_website_shift_flag 
+0303 7048e102 jam 2 ,mem_usb_website_shift_flag 
 0304 20600000 rtn 
 
 p_g24_100ms_timer_event:
@@ -994,44 +998,44 @@
 030b 20207ce1 branch timer_init 
 
 p_g24_http_over_pack_check:
-030c 6fe0c919 fetch 1 ,mem_usb_website_step 
+030c 6fe0c8e0 fetch 1 ,mem_usb_website_step 
 030d 207a0000 rtn blank 
 030e 2020023f branch p_dongle_usb_tx_http_data 
 
 p_usb_tx_data_ep2:
-030f da204906 arg mem_usb_ep2_fifo ,rega 
+030f da2048cd arg mem_usb_ep2_fifo ,rega 
 0310 20407da3 call fifo_is_empty 
 0311 207a0000 rtn blank 
 0312 6ff08c25 fetch 1 ,core_usb_txbusy 
 0313 1fe17e0f and_into 0x0f ,pdata 
 0314 247a0000 nrtn blank 
-0315 da204906 arg mem_usb_ep2_fifo ,rega 
+0315 da2048cd arg mem_usb_ep2_fifo ,rega 
 0316 20407d97 call fifo_out 
 0317 207a0000 rtn blank 
 0318 c0107c09 beq usb_ep2_ms ,usb_tx_ms_data 
-0319 c0120327 beq usb_ep2_dpi ,p_usb_tx_dpi_data 
-031a c0118333 beq usb_ep2_device_info ,p_usb_tx_device_info_data 
+0319 c0120328 beq usb_ep2_dpi ,p_usb_tx_dpi_data 
+031a c0130333 beq usb_ep2_sn ,p_usb_tx_sn_data 
 031b c010fc24 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
 031c c0117c2c beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-031d c012831f beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
+031d c013831f beq usb_ep2_mskb_state ,p_usb_tx_rf_state_data 
 031e 2020235a branch assert 
 
 p_usb_tx_rf_state_data:
-031f 6f20c8c3 fetchr loopcnt ,1 ,mem_usb_rf_state_data 
-0320 d8c048c4 arg mem_usb_rf_state_data + 1 ,contr 
-0321 d8e00002 arg 2 ,queue 
-0322 da200759 arg mem_usb_txbuf2 ,rega 
-0323 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-0324 20407bd2 call usb_tx_buf 
-0325 d8a048c3 arg mem_usb_rf_state_data ,contw 
-0326 20200331 branch p_usb_release_dpi_buf + 1 
+031f 6f20c849 fetchr loopcnt ,1 ,mem_usb_rf_state_data 
+0320 207a0000 rtn blank 
+0321 d8c0484a arg mem_usb_rf_state_data + 1 ,contr 
+0322 d8e00002 arg 2 ,queue 
+0323 da200759 arg mem_usb_txbuf2 ,rega 
+0324 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+0325 20407bd2 call usb_tx_buf 
+0326 d8a04849 arg mem_usb_rf_state_data ,contw 
+0327 20200331 branch p_usb_release_dpi_buf + 1 
 
 p_usb_tx_dpi_data:
-0327 70090c00 jam 0 ,mem_usb_ep2_data 
-0328 6fe0c882 fetch 1 ,mem_usb_dpi_data 
-0329 1fe27200 copy pdata ,loopcnt 
-032a 207a0000 rtn blank 
-032b d8c04883 arg mem_usb_dpi_data + 1 ,contr 
+0328 6fe0c808 fetch 1 ,mem_usb_dpi_data 
+0329 207a0000 rtn blank 
+032a 1fe27200 copy pdata ,loopcnt 
+032b d8c04809 arg mem_usb_dpi_data + 1 ,contr 
 
 p_usb_tx_dpi_ep2:
 032c d8e00002 arg 2 ,queue 
@@ -1040,307 +1044,299 @@
 032f 20407bd2 call usb_tx_buf 
 
 p_usb_release_dpi_buf:
-0330 d8a04882 arg mem_usb_dpi_data ,contw 
+0330 d8a04808 arg mem_usb_dpi_data ,contw 
 0331 df200041 arg 65 ,loopcnt 
 0332 20207ca1 branch clear_mem 
 
-p_usb_tx_device_info_data:
-0333 70090c00 jam 0 ,mem_usb_ep2_data 
-0334 6fe0c841 fetch 1 ,mem_usb_device_info_data 
+p_usb_tx_sn_data:
+0333 6fe0c88a fetch 1 ,mem_dongle_usb_ep2_data 
+0334 207a0000 rtn blank 
 0335 1fe27200 copy pdata ,loopcnt 
-0336 207a0000 rtn blank 
-0337 d8c04842 arg mem_usb_device_info_data + 1 ,contr 
+0336 d8c0488b arg mem_dongle_usb_ep2_data + 1 ,contr 
 
-p_usb_tx_device_info_ep2:
-0338 d8e00002 arg 2 ,queue 
-0339 da200759 arg mem_usb_txbuf2 ,rega 
-033a 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
-033b 20407bd2 call usb_tx_buf 
-
-p_usb_release_device_info_buf:
-033c d8a04841 arg mem_usb_device_info_data ,contw 
-033d df200041 arg 65 ,loopcnt 
-033e 20207ca1 branch clear_mem 
+p_usb_tx_sn_ep2:
+0337 d8e00002 arg 2 ,queue 
+0338 da200759 arg mem_usb_txbuf2 ,rega 
+0339 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+033a 20407bd2 call usb_tx_buf 
+033b d8a0488a arg mem_dongle_usb_ep2_data ,contw 
+033c 20200331 branch p_usb_release_dpi_buf + 1 
 
 p_rx_dcoc:
-033f 20758000 rtn wake 
-0340 20402160 call set_sync_on 
-0341 d8400027 arg 39 ,temp 
-0342 2040216f call set_freq_rx 
-0343 204021a6 call rf_rx_enable 
-0344 708a257f jam 0x7f ,0x8a25 
-0345 708a301a jam 0x1a ,0x8a30 
-0346 708a3178 jam 0x78 ,0x8a31 
-0347 708a8fb2 jam 0xb2 ,0x8a8f 
-0348 708ac200 jam 0 ,0x8ac2 
-0349 708ac300 jam 0 ,0x8ac3 
-034a d8e00006 arg 6 ,queue 
-034b 2040035c call p_rx_dcoc_avg 
-034c 2a2ffe0d isolate1 13 ,rega 
-034d 2040211d call qset_start 
-034e 2a4ffe0d isolate1 13 ,regb 
-034f 2040211e call qset_p 
-0350 d8e00005 arg 5 ,queue 
+033d 20758000 rtn wake 
+033e 20402160 call set_sync_on 
+033f d8400027 arg 39 ,temp 
+0340 2040216f call set_freq_rx 
+0341 204021a6 call rf_rx_enable 
+0342 708a257f jam 0x7f ,0x8a25 
+0343 708a301a jam 0x1a ,0x8a30 
+0344 708a3178 jam 0x78 ,0x8a31 
+0345 708a8fb2 jam 0xb2 ,0x8a8f 
+0346 708ac200 jam 0 ,0x8ac2 
+0347 708ac300 jam 0 ,0x8ac3 
+0348 d8e00006 arg 6 ,queue 
+0349 2040035a call p_rx_dcoc_avg 
+034a 2a2ffe0d isolate1 13 ,rega 
+034b 2040211d call qset_start 
+034c 2a4ffe0d isolate1 13 ,regb 
+034d 2040211e call qset_p 
+034e d8e00005 arg 5 ,queue 
 
 p_rx_dcoc_loop2:
-0351 2040211c call qset1_p 
-0352 2040211e call qset_p 
-0353 2040035c call p_rx_dcoc_avg 
-0354 d8a08ac2 arg 0x8ac2 ,contw 
-0355 1a31fe00 rshift4 rega ,pdata 
+034f 2040211c call qset1_p 
+0350 2040211e call qset_p 
+0351 2040035a call p_rx_dcoc_avg 
+0352 d8a08ac2 arg 0x8ac2 ,contw 
+0353 1a31fe00 rshift4 rega ,pdata 
+0354 20402117 call qsetxor 
+0355 1a51fe00 rshift4 regb ,pdata 
 0356 20402117 call qsetxor 
-0357 1a51fe00 rshift4 regb ,pdata 
-0358 20402117 call qsetxor 
-0359 18e08fff increase -1 ,queue 
-035a 20210351 branch p_rx_dcoc_loop2 ,positive 
-035b 2020214f branch rx_dcoc_loop2 + 10 
+0357 18e08fff increase -1 ,queue 
+0358 2021034f branch p_rx_dcoc_loop2 ,positive 
+0359 2020214f branch rx_dcoc_loop2 + 10 
 
 p_rx_dcoc_avg:
-035c 2000003c nop 60 
-035d 58000f00 setarg mem_dcoc_buf 
-035e 67f10982 store 2 ,0x8982 
-035f 58000ff0 setarg mem_dcoc_buf_end 
-0360 67f10984 store 2 ,0x8984 
-0361 70898109 jam 0x9 ,0x8981 
-0362 70898103 jam 0x3 ,0x8981 
-0363 70898006 jam 0x6 ,0x8980 
-0364 2000003c nop 60 
-0365 da200000 arg 0 ,rega 
-0366 da400000 arg 0 ,regb 
-0367 df200010 arg 16 ,loopcnt 
-0368 d8c00f00 arg mem_dcoc_buf ,contr 
-0369 2020212d branch rx_dcoc_loop 
+035a 2000003c nop 60 
+035b 58000f00 setarg mem_dcoc_buf 
+035c 67f10982 store 2 ,0x8982 
+035d 58000ff0 setarg mem_dcoc_buf_end 
+035e 67f10984 store 2 ,0x8984 
+035f 70898109 jam 0x9 ,0x8981 
+0360 70898103 jam 0x3 ,0x8981 
+0361 70898006 jam 0x6 ,0x8980 
+0362 2000003c nop 60 
+0363 da200000 arg 0 ,rega 
+0364 da400000 arg 0 ,regb 
+0365 df200010 arg 16 ,loopcnt 
+0366 d8c00f00 arg mem_dcoc_buf ,contr 
+0367 2020212d branch rx_dcoc_loop 
 
 p_rfpll_aac_ghpc:
-036a 20758000 rtn wake 
-036b 20202272 branch rfpll_aac_ghpc + 1 
+0368 20758000 rtn wake 
+0369 20202272 branch rfpll_aac_ghpc + 1 
 
 p_dpll_ring_ibias_calc:
-036c 20600000 rtn 
+036a 20600000 rtn 
 
 p_sadc_calibration:
-036d 20758000 rtn wake 
-036e 708a0777 jam 0x77 ,core_gpadc_ctrl 
-036f 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
-0370 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0371 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-0372 67f080cd store 1 ,core_sadc_clkdiv 
-0373 20000bb8 nop 3000 
-0374 20400395 call p_sadc_read 
-0375 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-0376 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-0377 df200008 arg 8 ,loopcnt 
-0378 20406f58 call sadc_cal_read + 1 
-0379 6fe0c419 fetch 1 ,mem_spi_write_addr 
-037a 67e0c433 store 1 ,mem_adc_cal_c7 
-037b 6240c419 storer regb ,1 ,mem_spi_write_addr 
-037c 20600000 rtn 
+036b 20758000 rtn wake 
+036c 708a0777 jam 0x77 ,core_gpadc_ctrl 
+036d 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+036e 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+036f 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0370 67f080cd store 1 ,core_sadc_clkdiv 
+0371 20000bb8 nop 3000 
+0372 20400393 call p_sadc_read 
+0373 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0374 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+0375 df200008 arg 8 ,loopcnt 
+0376 20406f58 call sadc_cal_read + 1 
+0377 6fe0c419 fetch 1 ,mem_spi_write_addr 
+0378 67e0c433 store 1 ,mem_adc_cal_c7 
+0379 6240c419 storer regb ,1 ,mem_spi_write_addr 
+037a 20600000 rtn 
 
 p_enable_adc:
-037d 2040038b call p_sadc_cal_write 
-037e 6ff08a09 fetch 1 ,core_gpadc_cfg1 
-037f 793ffe07 set0 7 ,pdata 
-0380 67f08a09 store 1 ,core_gpadc_cfg1 
-0381 708a0777 jam 0x77 ,core_gpadc_ctrl 
-0382 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
-0383 708a0b01 jam 0x01 ,core_gpadc_cfg3 
-0384 20406f90 call sadc_channel 
-0385 6fe0c409 fetch 1 ,mem_adc_clkdiv 
-0386 67f080cd store 1 ,core_sadc_clkdiv 
-0387 20000bb8 nop 3000 
-0388 20400395 call p_sadc_read 
-0389 7080cd00 jam 0 ,core_sadc_clkdiv 
-038a 20206fa1 branch sadc_dma 
+037b 20400389 call p_sadc_cal_write 
+037c 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+037d 793ffe07 set0 7 ,pdata 
+037e 67f08a09 store 1 ,core_gpadc_cfg1 
+037f 708a0777 jam 0x77 ,core_gpadc_ctrl 
+0380 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+0381 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+0382 20406f90 call sadc_channel 
+0383 6fe0c409 fetch 1 ,mem_adc_clkdiv 
+0384 67f080cd store 1 ,core_sadc_clkdiv 
+0385 20000bb8 nop 3000 
+0386 20400393 call p_sadc_read 
+0387 7080cd00 jam 0 ,core_sadc_clkdiv 
+0388 20206fa1 branch sadc_dma 
 
 p_sadc_cal_write:
-038b 6ff080cc fetch 1 ,core_sadc_ctrl 
-038c 79207e01 set1 1 ,pdata 
-038d 67f080cc store 1 ,core_sadc_ctrl 
-038e 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
-038f 6fe0c433 fetch 1 ,mem_adc_cal_c7 
-0390 67e0c419 store 1 ,mem_spi_write_addr 
-0391 df200008 arg 8 ,loopcnt 
-0392 20406f67 call sadc_cal_write + 4 
-0393 6240c419 storer regb ,1 ,mem_spi_write_addr 
-0394 20600000 rtn 
+0389 6ff080cc fetch 1 ,core_sadc_ctrl 
+038a 79207e01 set1 1 ,pdata 
+038b 67f080cc store 1 ,core_sadc_ctrl 
+038c 6a40c419 fetchr regb ,1 ,mem_spi_write_addr 
+038d 6fe0c433 fetch 1 ,mem_adc_cal_c7 
+038e 67e0c419 store 1 ,mem_spi_write_addr 
+038f df200008 arg 8 ,loopcnt 
+0390 20406f67 call sadc_cal_write + 4 
+0391 6240c419 storer regb ,1 ,mem_spi_write_addr 
+0392 20600000 rtn 
 
 p_sadc_read:
-0395 7080cc03 jam 0x03 ,core_sadc_ctrl 
+0393 7080cc03 jam 0x03 ,core_sadc_ctrl 
 
 p_sadc_read_wait:
-0396 6ff08129 fetch 1 ,core_perf_status 
-0397 c3028396 bbit0 saradc_done ,p_sadc_read_wait 
-0398 68590164 fetcht 2 ,core_sadc_data 
-0399 6049440a storet 2 ,mem_adc_current_value 
-039a 7080cc00 jam 0x00 ,core_sadc_ctrl 
-039b 20600000 rtn 
+0394 6ff08129 fetch 1 ,core_perf_status 
+0395 c3028394 bbit0 saradc_done ,p_sadc_read_wait 
+0396 68590164 fetcht 2 ,core_sadc_data 
+0397 6049440a storet 2 ,mem_adc_current_value 
+0398 7080cc00 jam 0x00 ,core_sadc_ctrl 
+0399 20600000 rtn 
 
 p_set_lemode:
-039c 708a8211 jam 0x11 ,0x8a82 
-039d 708a8d12 jam 0x12 ,0x8a8d 
-039e 708a8e0a jam 0x0a ,0x8a8e 
-039f 6fe0c099 fetch 1 ,mem_fcomp_div 
-03a0 c00803b5 beq xtal_16m ,p_set_lemode_2m_16m 
-03a1 58005762 setarg 0x5762 
-03a2 67f10907 store 2 ,0x8907 
+039a 708a8211 jam 0x11 ,0x8a82 
+039b 708a8d12 jam 0x12 ,0x8a8d 
+039c 708a8e0a jam 0x0a ,0x8a8e 
+039d 6fe0c099 fetch 1 ,mem_fcomp_div 
+039e c00803b3 beq xtal_16m ,p_set_lemode_2m_16m 
+039f 58005762 setarg 0x5762 
+03a0 67f10907 store 2 ,0x8907 
 
 p_set_lemode_2m:
-03a3 70890103 jam 3 ,0x8901 
-03a4 70893003 jam 3 ,0x8930 
-03a5 c6168000 rtnmark1 mark_ble_2m 
-03a6 70890101 jam 1 ,0x8901 
-03a7 708a8207 jam 0x07 ,0x8a82 
-03a8 708a8d44 jam 0x44 ,0x8a8d 
-03a9 708a8e0a jam 0x0a ,0x8a8e 
-03aa 6fe0c099 fetch 1 ,mem_fcomp_div 
-03ab c00803b2 beq xtal_16m ,p_set_lemode_1m_16m 
-03ac 58002bb1 setarg 0x2bb1 
-03ad 67f10907 store 2 ,0x8907 
+03a1 70890103 jam 3 ,0x8901 
+03a2 70893003 jam 3 ,0x8930 
+03a3 c6168000 rtnmark1 mark_ble_2m 
+03a4 70890101 jam 1 ,0x8901 
+03a5 708a8207 jam 0x07 ,0x8a82 
+03a6 708a8d44 jam 0x44 ,0x8a8d 
+03a7 708a8e0a jam 0x0a ,0x8a8e 
+03a8 6fe0c099 fetch 1 ,mem_fcomp_div 
+03a9 c00803b0 beq xtal_16m ,p_set_lemode_1m_16m 
+03aa 58002bb1 setarg 0x2bb1 
+03ab 67f10907 store 2 ,0x8907 
 
 p_set_lemode_1m:
-03ae c6978000 rtnmark0 mark_ble_lr 
-03af 70893024 jam 0x24 ,0x8930 
-03b0 70890105 jam 5 ,0x8901 
-03b1 20600000 rtn 
+03ac c6978000 rtnmark0 mark_ble_lr 
+03ad 70893024 jam 0x24 ,0x8930 
+03ae 70890105 jam 5 ,0x8901 
+03af 20600000 rtn 
 
 p_set_lemode_1m_16m:
-03b2 58004189 setarg 0x4189 
-03b3 67f10907 store 2 ,0x8907 
-03b4 202003ae branch p_set_lemode_1m 
+03b0 58004189 setarg 0x4189 
+03b1 67f10907 store 2 ,0x8907 
+03b2 202003ac branch p_set_lemode_1m 
 
 p_set_lemode_2m_16m:
-03b5 58008312 setarg 0x8312 
-03b6 67f10907 store 2 ,0x8907 
-03b7 202003a3 branch p_set_lemode_2m 
+03b3 58008312 setarg 0x8312 
+03b4 67f10907 store 2 ,0x8907 
+03b5 202003a1 branch p_set_lemode_2m 
 
 p_le_parse:
-03b8 6fe0c334 fetch 1 ,mem_le_packet_llid 
-03b9 c1000000 rtneq llid_reserved 
-03ba c001b04a beq llid_le_ll ,le_parse_ll 
-03bb 202028e1 branch le_parse_l2cap 
+03b6 6fe0c334 fetch 1 ,mem_le_packet_llid 
+03b7 c1000000 rtneq llid_reserved 
+03b8 c001b04a beq llid_le_ll ,le_parse_ll 
+03b9 202028e1 branch le_parse_l2cap 
 
 p_le_init_adv:
-03bc 793f8030 set0 mark_ble_crc_fail ,mark 
-03bd 20202af6 branch le_init_adv + 1 
+03ba 793f8030 set0 mark_ble_crc_fail ,mark 
+03bb 20202af6 branch le_init_adv + 1 
 
 p_g24_bind_data_parse_next:
-03be 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
-03bf c0553329 beq datatype_bind ,g24_bind_first_step 
-03c0 c02ab33a beq datatype_config ,g24_bind_second_step 
-03c1 c01103c4 beq datatype_ok ,p_g24_bind_third_step 
-03c2 c07fb59b beq datatype_attemp ,g24_data_attemp 
-03c3 20600000 rtn 
+03bc 6fe0c5ea fetch 1 ,mem_24g_rxdata_temp + 2 
+03bd c0553329 beq datatype_bind ,g24_bind_first_step 
+03be c02ab33a beq datatype_config ,g24_bind_second_step 
+03bf c01103c2 beq datatype_ok ,p_g24_bind_third_step 
+03c0 c07fb59b beq datatype_attemp ,g24_data_attemp 
+03c1 20600000 rtn 
 
 p_g24_bind_third_step:
-03c4 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-03c5 203a03ca branch p_g24_bind_third_step_skip ,blank 
-03c6 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
-03c7 684a462c fetcht 4 ,mem_24g_transmitter_addr 
-03c8 98467c00 isub temp ,null 
-03c9 24628000 nrtn zero 
+03c2 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+03c3 203a03c8 branch p_g24_bind_third_step_skip ,blank 
+03c4 6fe245ec fetch 4 ,mem_24g_rxdata_temp + 4 
+03c5 684a462c fetcht 4 ,mem_24g_transmitter_addr 
+03c6 98467c00 isub temp ,null 
+03c7 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-03ca 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
-03cb c00083ce beq datatype_device1 ,p_g24_bind_third_step_device1 
-03cc c00103d5 beq datatype_device2 ,p_g24_bind_third_step_device2 
-03cd 20600000 rtn 
+03c8 6fe0c5eb fetch 1 ,mem_24g_rxdata_temp + 3 
+03c9 c00083cc beq datatype_device1 ,p_g24_bind_third_step_device1 
+03ca c00103d3 beq datatype_device2 ,p_g24_bind_third_step_device2 
+03cb 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-03ce 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
-03cf 247a0000 nrtn blank 
-03d0 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
-03d1 c00103d3 beq 2 ,p_g24_bind_dvc1_step_success 
-03d2 20600000 rtn 
+03cc 6fe0c5de fetch 1 ,mem_24g_device1_bind_disable 
+03cd 247a0000 nrtn blank 
+03ce 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03cf c00103d1 beq 2 ,p_g24_bind_dvc1_step_success 
+03d0 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-03d3 7045de01 jam 1 ,mem_24g_device1_bind_disable 
-03d4 2020336b branch g24_bind_dvc1_step_success + 1 
+03d1 7045de01 jam 1 ,mem_24g_device1_bind_disable 
+03d2 2020336b branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-03d5 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
-03d6 247a0000 nrtn blank 
-03d7 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-03d8 c08003da bne 0 ,p_g24_bind_dvc2_step_success 
-03d9 20600000 rtn 
+03d3 6fe0c5df fetch 1 ,mem_24g_device2_bind_disable 
+03d4 247a0000 nrtn blank 
+03d5 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
+03d6 c08003d8 bne 0 ,p_g24_bind_dvc2_step_success 
+03d7 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-03da 7045df01 jam 1 ,mem_24g_device2_bind_disable 
-03db 20403393 call g24_binding_dvc2_living 
-03dc 20203378 branch g24_bind_dvc2_step_success + 1 
+03d8 7045df01 jam 1 ,mem_24g_device2_bind_disable 
+03d9 20403393 call g24_binding_dvc2_living 
+03da 20203378 branch g24_bind_dvc2_step_success + 1 
 
 p_g24_mode_switch_bind_search:
-03dd 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03de c1000000 rtneq dongle_work 
-03df 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+03db 6fe0c616 fetch 1 ,mem_24g_work_mode 
+03dc c1000000 rtneq dongle_work 
+03dd 6fe0c62a fetch 1 ,mem_24g_b_s_mode_switch_disable 
+03de 247a0000 nrtn blank 
+03df 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
 03e0 247a0000 nrtn blank 
-03e1 6fe0c628 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-03e2 247a0000 nrtn blank 
-03e3 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
-03e4 207a0000 rtn blank 
-03e5 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03e1 6fe0c624 fetch 1 ,mem_24g_mode_b_s_switch 
+03e2 207a0000 rtn blank 
+03e3 6fe0c5d3 fetch 1 ,mem_24g_device1_bind_step 
+03e4 c1800000 rtnne 0 
+03e5 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
 03e6 c1800000 rtnne 0 
-03e7 6fe0c5d4 fetch 1 ,mem_24g_device2_bind_step 
-03e8 c1800000 rtnne 0 
-03e9 20203436 branch g24_mode_switch_bind_search + 9 
+03e7 20203436 branch g24_mode_switch_bind_search + 9 
 
 p_g24_bind_mode_auto:
-03ea 6fe0c616 fetch 1 ,mem_24g_work_mode 
-03eb c1808000 rtnne dongle_bind 
-03ec 204003ee call p_g24_bind_init 
-03ed 2020346d branch g24_bind_mode_auto + 4 
+03e8 6fe0c616 fetch 1 ,mem_24g_work_mode 
+03e9 c1808000 rtnne dongle_bind 
+03ea 204003ec call p_g24_bind_init 
+03eb 2020346d branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-03ee 6fe0c615 fetch 1 ,mem_24g_mode_init 
-03ef c3808000 rtnbit1 dongle_bind 
-03f0 79207e01 set1 dongle_bind ,pdata 
-03f1 67e0c615 store 1 ,mem_24g_mode_init 
-03f2 58000000 setarg 0 
-03f3 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
-03f4 20203307 branch g24_bind_init + 8 
+03ec 6fe0c615 fetch 1 ,mem_24g_mode_init 
+03ed c3808000 rtnbit1 dongle_bind 
+03ee 79207e01 set1 dongle_bind ,pdata 
+03ef 67e0c615 store 1 ,mem_24g_mode_init 
+03f0 58000000 setarg 0 
+03f1 67e1c5d3 store 3 ,mem_24g_device1_bind_step 
+03f2 20203307 branch g24_bind_init + 8 
 
 p_dongle_usb_dispatch:
-03f5 20400405 call p_wdt_kick 
-03f6 20400305 call p_g24_100ms_timer_event 
-03f7 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
-03f8 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
-03f9 20407906 call usb_isr 
-03fa 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
-03fb 207a0000 rtn blank 
-03fc 7008f700 jam 0 ,mem_usb0_get_set_report 
-03fd 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
-03fe d84002a4 arg pc_set_report ,temp 
-03ff 98467c00 isub temp ,null 
-0400 202281ab branch p_dongle_usb_data_received_analysis ,zero 
-0401 d84002a2 arg pc_set_report_prolotol ,temp 
-0402 98467c00 isub temp ,null 
-0403 24628000 nrtn zero 
-0404 202001ab branch p_dongle_usb_data_received_analysis 
+03f3 20400305 call p_g24_100ms_timer_event 
+03f4 6fe08901 fetch 1 ,mem_usb_remote_wakeup 
+03f5 205a48b5 call dongle_clear_pc_sleep_flag ,blank 
+03f6 20407906 call usb_isr 
+03f7 6fe088f7 fetch 1 ,mem_usb0_get_set_report 
+03f8 207a0000 rtn blank 
+03f9 7008f700 jam 0 ,mem_usb0_get_set_report 
+03fa 6fe108f5 fetch 2 ,mem_usb_setup_bvalue_temp 
+03fb d84003a2 arg pc_set_report_protocol ,temp 
+03fc 98467c00 isub temp ,null 
+03fd 24628000 nrtn zero 
+03fe 202001ac branch p_dongle_usb_data_received_analysis 
 
 p_wdt_kick:
-0405 58000010 setarg 16 
-0406 202070c8 branch wdt_init_config 
+03ff 58000010 setarg 16 
+0400 202070c8 branch wdt_init_config 
 
 p_dongle_default_init:
-0407 204047c3 call dongle_default_init + 1 
-0408 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
-0409 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
-040a 20403281 call g24_enable_1m 
-040b 6fe0c669 fetch 1 ,mem_dg_sys_config 
-040c c4000000 rtnbit0 dg_enable_new_revision 
-040d 7045ca01 jam on ,mem_24g_disable_fec1 
-040e 20203284 branch g24_enable_2m 
+0401 204047c3 call dongle_default_init + 1 
+0402 6fe0c695 fetch 1 ,mem_24g_pair_tx_power_init 
+0403 67e0c5d1 store 1 ,mem_24g_pair_tx_power 
+0404 20403281 call g24_enable_1m 
+0405 6fe0c669 fetch 1 ,mem_dg_sys_config 
+0406 c4000000 rtnbit0 dg_enable_new_revision 
+0407 7045ca01 jam on ,mem_24g_disable_fec1 
+0408 20203284 branch g24_enable_2m 
 
 p_g24_receive_skip_end:
-040f 6fe0c669 fetch 1 ,mem_dg_sys_config 
-0410 c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
-0411 7837fc00 enable user3 
-0412 20000018 nop 24 
-0413 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
-0414 79207e00 set1 bit_ack_24g ,pdata 
-0415 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
-0416 204033a5 call g24_ackpayload_prep 
-0417 204031e5 call g24_transmit_prep 
-0418 20203195 branch g24_transmit 
+0409 6fe0c669 fetch 1 ,mem_dg_sys_config 
+040a c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
+040b 7837fc00 enable user3 
+040c 20000018 nop 24 
+040d 6fe0c4f8 fetch 1 ,mem_24g_rxbuf + 1 
+040e 79207e00 set1 bit_ack_24g ,pdata 
+040f 67e0c4f8 store 1 ,mem_24g_rxbuf + 1 
+0410 204033a5 call g24_ackpayload_prep 
+0411 204031e5 call g24_transmit_prep 
+0412 20203195 branch g24_transmit 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/program/patch.prog	(working copy)
@@ -429,26 +429,49 @@
 	fetch 1,mem_usb_read_len
 	sub pdata,2,null
 	branch p_dongle_hci_event_invalid_packet,positive
-	fetch 1,mem_usb0_set_report_data+2
+	fetch 1,mem_usb0_set_report_data+2		//len+event+opcode+len+payload
 	bne 0x01,p_dongle_hci_event_invalid_packet
 	ifetch 1,contr
 	store 1,mem_dongle_usb_opcode
 	ifetcht 1,contr
 	copy contr,rega
 	storet 1,mem_dongle_usb_len
-	branch p_dongle_usb_hci_cmd_control
 p_dongle_usb_hci_cmd_control:
-	fetch 1,mem_24g_bind_device_living
-	branch p_dongle_hci_event_invalid_packet,blank
+//	fetch 1,mem_24g_bind_device_living
+//	branch p_dongle_hci_event_invalid_packet,blank
 	fetch 1,mem_dongle_usb_opcode
-	beq HCI_CMD_GET_DEVICE_INFO,p_dongle_usb_hci_cmd_get_deivce_info
-	beq HCI_CMD_AUTH_ENABLE,p_dongle_usb_hci_cmd_get_deivce_info
-	beq HCI_CMD_VOICE_CONTRAL,p_dongle_usb_hci_cmd_get_deivce_info
-	beq HCI_CMD_DPI_CONTRAL,p_dongle_usb_hci_cmd_get_deivce_info
+//	beq HCI_CMD_GET_DEVICE_INFO,p_dongle_usb_hci_cmd_get_deivce_info
+//	beq HCI_CMD_SET_DPI,p_dongle_usb_hci_cmd_set_dpi
+//	beq HCI_CMD_GET_DPI,p_dongle_usb_hci_cmd_get_dpi
+//	beq HCI_CMD_SET_SN,p_dongle_usb_hci_cmd_set_sn
+	beq HCI_CMD_GET_SN,p_dongle_usb_hci_cmd_get_sn
+//	beq HCI_CMD_SET_BATTERY,p_dongle_usb_hci_cmd_get_battery
+//	beq HCI_CMD_GET_CONNECT_STATE,p_dongle_usb_hci_cmd_get_conn_state
 	branch p_dongle_hci_event_invalid_packet
-p_dongle_usb_hci_cmd_get_deivce_info:
-	jam REPORT_ID_DATA_OUT,mem_dongle_usb_ep2_data_flag
+	
+p_dongle_usb_hci_cmd_set_dpi:
+p_dongle_usb_hci_cmd_set_sn:
+	jam REPORT_ID_DATA_OUT,mem_dongle_24g_data_ack_flag
 	branch p_dongle_usb_ack_prep
+/*
+p_dongle_usb_hci_cmd_get_deivce_info:	//02 01 0b
+	jam REPORT_ID_DATA_IN,mem_usb0_get_report_data
+	jam 0x02,mem_usb0_get_report_data+1
+	jam 0x01,mem_usb0_get_report_data+2
+	jam 0x0b,mem_usb0_get_report_data+3
+	rtn
+*/
+
+p_dongle_usb_hci_cmd_get_sn:	//02 03 06 +6byte mac
+	jam 0x40,mem_dongle_usb_ep2_data
+	jam REPORT_ID_DATA_IN,mem_dongle_usb_ep2_data+1
+	jam 0x02,mem_dongle_usb_ep2_data+2
+	jam 0x03,mem_dongle_usb_ep2_data+3
+	jam 0x06,mem_dongle_usb_ep2_data+4
+	fetch 6,mem_usb_get_report_sn_data
+	store 6,mem_dongle_usb_ep2_data+5
+	jam USB_EP2_SN,mem_usb_ep2_data
+	branch p_dongle_usb_tx_enable_ep2
 
 
 p_dongle_hci_event_invalid_packet:
@@ -481,25 +504,20 @@
 	branch fifo_in
 
 
-
-p_usb_rx_data_authca_out:
-	jam REPORT_ID_AUTHCA_DATA_OUT,mem_dongle_usb_ep2_data_flag
-	branch p_dongle_usb_ack_prep
-
 p_dongle_usb_ack_prep:
-	call p_dongle_g24_usb_ep2_ack_data_clr
+	call p_dongle_g24_ack_data_clr
 	jam REPORT_ID_DATA_OUT,mem_24g_ackpayload_enable
 	jam REPORT_ID_DATA_OUT,mem_24g_ackpayload_enable_temp
 	fetchr loopcnt,1,mem_usb0_set_report_data+1		//a4(1byte)+len(1byte)+n(byte)data
 	increase 2,loopcnt
-	storer loopcnt,1,mem_dongle_usb_ep2_data_len
+	storer loopcnt,1,mem_dongle_24g_data_ack_len
 	arg mem_usb0_set_report_data,contr
-	arg mem_dongle_g24_usb_ep2_ack_data,contw
+	arg mem_dongle_g24_ack_data,contw
 	branch memcpy
 
-p_dongle_g24_usb_ep2_ack_data_clr:
+p_dongle_g24_ack_data_clr:
 	arg 64,loopcnt
-	arg mem_dongle_g24_usb_ep2_ack_data,contw
+	arg mem_dongle_g24_ack_data,contw
 	branch clear_mem
 
 p_usb_rx_len:
@@ -542,9 +560,8 @@
 	branch p_usb_class_type
 
 p_dongle_usb_data_received_analysis:
-	fetch 1,mem_usb0_set_report_data		//a2  data out  a4 authcation data out
+	fetch 1,mem_usb0_set_report_data		//a2  protocol data out
 	beq REPORT_ID_DATA_OUT,p_usb_rx_data_out
-	beq REPORT_ID_AUTHCA_DATA_OUT,p_usb_rx_data_authca_out
 	rtn
 
 
@@ -737,6 +754,7 @@
 	bbit1 DATA_HTTP,p_dongle_usb_tx_http_data
 	bbit1 DATA_DPI,p_dongle_receive_dpi_data
 	bbit1 DATA_DEVICE_INFO,p_dongle_receive_device_info_data
+	bbit1 DATA_BATTERY,p_dongle_receive_battery_data
 	branch p_dongle_g24_mouse_next
 
 p_dongle_g24_mouse_next:
@@ -755,6 +773,7 @@
 	bbit1 DATA_HTTP,p_dongle_usb_tx_http_data
 	bbit1 DATA_DPI,p_dongle_receive_dpi_data
 	bbit1 DATA_DEVICE_INFO,p_dongle_receive_device_info_data
+	bbit1 DATA_BATTERY,p_dongle_receive_battery_data
 	rtn
 p_dongle_g24_mouse_data:	
 	setarg MS_REPORT_ID
@@ -768,33 +787,32 @@
 	jam USB_EP2_MS,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
-
-p_dongle_receive_dpi_data:
+p_dongle_receive_dpi_data:	//rsp=len+a1+02 02 01 +dpi level
 	setarg 0x40
 	store 1,mem_usb_dpi_data
 	jam REPORT_ID_DATA_IN,mem_usb_dpi_data+1
-	fetch 1,mem_24g_rxdata_length						
-	increase -1,pdata
-	copy pdata,loopcnt
-	arg mem_24g_rxdata_temp+3,contr
-	arg mem_usb_dpi_data+2,contw
-	call memcpy
+	jam 0x02,mem_usb_dpi_data+2
+	jam 0x02,mem_usb_dpi_data+3
+	jam 0x01,mem_usb_dpi_data+4
+	fetch 1,mem_24g_rxdata_temp+3
+	store 1,mem_usb_dpi_data+5
+	store 1,mem_usb_get_report_dpi_data		//updata dpi
 	jam USB_EP2_DPI,mem_usb_ep2_data
 	branch p_dongle_usb_tx_enable_ep2
 
-p_dongle_receive_device_info_data:
-	setarg 0x40
-	store 1,mem_usb_device_info_data
-	jam REPORT_ID_DATA_IN,mem_usb_device_info_data+1
-	fetch 1,mem_24g_rxdata_length						
+p_dongle_receive_device_info_data:	//len+6byte mac+1byte dpi+1bye battery
+	fetch 1,mem_24g_rxdata_length
 	increase -1,pdata
 	copy pdata,loopcnt
 	arg mem_24g_rxdata_temp+3,contr
-	arg mem_usb_device_info_data+2,contw
-	call memcpy
-	jam USB_EP2_DEVICE_INFO,mem_usb_ep2_data
-	branch p_dongle_usb_tx_enable_ep2
+	arg mem_usb_get_report_sn_data,contw
+	branch memcpy
 
+p_dongle_receive_battery_data:		//1byte battery
+	fetch 1,mem_24g_rxdata_temp+3
+	store 1,mem_usb_get_report_battery_data
+	rtn
+	
 p_dongle_usb_tx_enable_ep2:
 	fetch 1,mem_usb_device_enumeration_endflag
 	rtn blank
@@ -1007,13 +1025,15 @@
 	rtn blank
 	beq USB_EP2_MS,usb_tx_ms_data
 	beq USB_EP2_DPI,p_usb_tx_dpi_data
-	beq USB_EP2_DEVICE_INFO,p_usb_tx_device_info_data
+	beq USB_EP2_SN,p_usb_tx_sn_data
+//	beq USB_EP2_BATTERY,p_usb_tx_battery_data
 	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
 	beq USB_EP2_SYSTEMKEY,usb_tx_kb_systemkey_data
 	beq USB_EP2_MSKB_STATE,p_usb_tx_rf_state_data
 	branch assert
 p_usb_tx_rf_state_data:
 	fetchr loopcnt,1,mem_usb_rf_state_data
+	rtn blank
 	arg mem_usb_rf_state_data+1,contr
 	arg 2,queue
 	arg mem_usb_txbuf2,rega
@@ -1023,10 +1043,9 @@
 	branch p_usb_release_dpi_buf+1
 	
 p_usb_tx_dpi_data:
-	jam 0,mem_usb_ep2_data
 	fetch 1,mem_usb_dpi_data
-	copy pdata,loopcnt
 	rtn blank
+	copy pdata,loopcnt
 	arg mem_usb_dpi_data+1,contr
 p_usb_tx_dpi_ep2:
 	arg 2,queue
@@ -1038,21 +1057,18 @@
 	arg 65,loopcnt
 	branch clear_mem
 
-p_usb_tx_device_info_data:
-	jam 0,mem_usb_ep2_data
-	fetch 1,mem_usb_device_info_data
-	copy pdata,loopcnt
+p_usb_tx_sn_data:
+	fetch 1,mem_dongle_usb_ep2_data
 	rtn blank
-	arg mem_usb_device_info_data+1,contr
-p_usb_tx_device_info_ep2:
+	copy pdata,loopcnt
+	arg mem_dongle_usb_ep2_data+1,contr
+p_usb_tx_sn_ep2:
 	arg 2,queue
 	arg mem_usb_txbuf2,rega
 	storer rega,2,core_usb_tx_saddr2
 	call usb_tx_buf
-p_usb_release_device_info_buf:
-	arg mem_usb_device_info_data,contw
-	arg 65,loopcnt
-	branch clear_mem
+	arg mem_dongle_usb_ep2_data,contw
+	branch p_usb_release_dpi_buf+1
 
 p_rx_dcoc:
 	rtn wake
@@ -1285,7 +1301,7 @@
 	branch g24_bind_init+8
 
 p_dongle_usb_dispatch:
-	call p_wdt_kick
+//	call p_wdt_kick
 	call p_g24_100ms_timer_event
 	
 	fetch 1,mem_usb_remote_wakeup
@@ -1295,10 +1311,7 @@
 	rtn blank
 	jam 0,mem_usb0_get_set_report
 	fetch 2,mem_usb_setup_bValue_temp
-	arg PC_SET_REPORT,temp
-	isub temp,null
-	branch p_dongle_usb_data_received_analysis,zero
-	arg PC_SET_REPORT_PROLOTOL,temp
+	arg PC_SET_REPORT_PROTOCOL,temp
 	isub temp,null	
 	nrtn zero
 	branch p_dongle_usb_data_received_analysis
Index: sched/dongle.dat
===================================================================
--- /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/sched/dongle.dat	(revision 3653)
+++ /1121s/branch/dongle/1m/USB_XZR/usb_1m_ai/sched/dongle.dat	(working copy)
@@ -127,7 +127,7 @@
 25 FF
 15 00 
 09 01 
-91 02 
+b1 02 
 C0 
 06 A2 FF 
 09 01 
