Index: ep.bat
===================================================================
--- /1306ac/branch/dongle/usb_1M/ep.bat	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/ep.bat	(working copy)
@@ -1,6 +1,23 @@
-call do eep
+call do.bat eep
 e pu
 e 8043 00
+<<<<<<< .mine
+e 8070 0000000000000000
+e 8078 0000000000
+e 807a 6d
+e 807b 6c
+e 8073 3e
+e er 0 80
+e ew 0 1122
+e er 0 80
+||||||| .r757
+e er 0 10
+e 8070 3e6c6d
+e 8070l10
+set eepage=32  
+e ew 0 11223344
+e er 0 10
+=======
 e er 0 10
 e 8070 3e6c6d
 e 8070l10
@@ -8,6 +25,7 @@
 e ew 0 11223344
 e ep empty.dat 0
 e er 0 10
+>>>>>>> .r1009
 e ep
-e er 0 10
-e ku
\ No newline at end of file
+e er 0 80
+e ku
Index: format/app_dongle.format
===================================================================
--- /1306ac/branch/dongle/usb_1M/format/app_dongle.format	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/format/app_dongle.format	(working copy)
@@ -31,7 +31,10 @@
 1 mem_dg_usb_device_iserial_number
 1 mem_dg_24g_tx_power_default
 
+
 //patch
+70 mem_dongle_kb_desc_new
+1 mem_24g_pc_sleep
 1 mem_24g_pair_tx_power_init
 )
 
@@ -40,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
 )
 
 (
Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/dongle/usb_1M/output/eeprom.dat	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/output/eeprom.dat	(working copy)
@@ -2,40 +2,44 @@
 02
 aa
 55
-7a
-03
+12
+04
 c2
 84
 00
-09
+0a
 c0
 00
 00
-2b
+2c
 c0
 0b
 80
-48
+49
 c0
 0c
 00
-10
+11
 c0
 17
 80
-43
+44
 c0
 18
 00
-34
+35
 c0
 18
 80
-30
+31
+c0
+38
+00
+7c
 c0
 61
 80
-6b
+6c
 20
 20
 3a
@@ -47,23 +51,23 @@
 c0
 23
 80
-a5
+df
 c0
 24
 80
-ab
+e5
 c0
 26
 80
-88
+c2
 c0
 27
 80
-38
+39
 c0
 28
 00
-7d
+b7
 20
 20
 3a
@@ -139,7 +143,7 @@
 c0
 84
 00
-23
+24
 70
 8a
 08
@@ -163,7 +167,7 @@
 20
 40
 00
-50
+51
 70
 8a
 9a
@@ -206,7 +210,7 @@
 93
 df
 e0
-0f
+07
 cd
 20
 20
@@ -214,7 +218,7 @@
 83
 58
 00
-0f
+07
 cd
 da
 20
@@ -239,7 +243,7 @@
 20
 40
 00
-3c
+3d
 20
 20
 4a
@@ -278,8 +282,8 @@
 c4
 6f
 e0
-c5
-e0
+c6
+27
 67
 e0
 c5
@@ -299,11 +303,11 @@
 c0
 01
 80
-55
+56
 c0
 03
 00
-57
+58
 c0
 05
 3a
@@ -319,7 +323,7 @@
 c0
 55
 80
-65
+66
 c0
 55
 3a
@@ -351,7 +355,7 @@
 20
 20
 00
-51
+52
 70
 8a
 3b
@@ -367,7 +371,7 @@
 20
 20
 00
-53
+54
 70
 8a
 39
@@ -407,7 +411,7 @@
 20
 20
 00
-5d
+5e
 70
 8a
 39
@@ -419,7 +423,7 @@
 20
 20
 00
-5d
+5e
 70
 8a
 39
@@ -431,15 +435,7 @@
 20
 20
 00
-5d
-58
-00
-00
-ca
-67
-e1
-45
-2d
+5e
 20
 40
 6e
@@ -504,6 +500,242 @@
 20
 70
 4f
+58
+00
+50
+cc
+67
+e1
+45
+2b
+58
+00
+51
+b4
+67
+e1
+45
+2f
+58
+00
+51
+c5
+67
+e1
+45
+31
+58
+00
+00
+a7
+67
+e1
+45
+2d
+58
+00
+00
+87
+67
+e1
+06
+f3
+20
+20
+00
+6c
+6f
+e0
+c5
+b3
+c2
+82
+00
+8b
+6f
+e0
+c5
+93
+c0
+ad
+00
+8f
+70
+45
+93
+5a
+6f
+f2
+13
+7a
+79
+20
+7e
+1d
+67
+e2
+06
+26
+6f
+e0
+c5
+de
+67
+e0
+86
+2e
+20
+40
+50
+fc
+20
+40
+70
+8d
+20
+40
+00
+9e
+6f
+e0
+c5
+93
+c0
+2d
+00
+9a
+58
+00
+92
+72
+67
+e1
+05
+fb
+70
+06
+4a
+1a
+20
+60
+00
+00
+58
+00
+45
+e0
+67
+e1
+05
+fb
+70
+06
+4a
+41
+20
+60
+00
+00
+6f
+e0
+86
+f9
+20
+7a
+00
+00
+6f
+e0
+c5
+93
+c0
+2d
+00
+a5
+6f
+e2
+06
+fa
+67
+e2
+06
+26
+20
+60
+00
+00
+6f
+e2
+06
+fe
+20
+20
+00
+a3
+6f
+e0
+c4
+d4
+c0
+00
+80
+aa
+c0
+01
+00
+ad
+6f
+e0
+c5
+dd
+c2
+80
+51
+9d
+20
+20
+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
+20
+20
+51
+af
 6f
 e0
 c5
@@ -515,7 +747,7 @@
 20
 40
 00
-81
+bb
 20
 20
 4b
@@ -683,7 +915,7 @@
 c0
 7f
 80
-c0
+fa
 20
 60
 00
@@ -695,7 +927,7 @@
 c0
 00
 80
-b0
+ea
 c0
 01
 4a
@@ -703,7 +935,7 @@
 c0
 7f
 80
-be
+f8
 20
 20
 4a
@@ -739,7 +971,7 @@
 c0
 00
 80
-b9
+f3
 20
 20
 4a
@@ -771,7 +1003,7 @@
 20
 20
 00
-c0
+fa
 6f
 e0
 c5
@@ -779,11 +1011,11 @@
 c0
 00
 80
-c4
+fe
 c0
 01
-00
-c7
+01
+01
 20
 60
 00
@@ -812,88 +1044,8 @@
 20
 4c
 16
-6f
-e0
-c4
-d4
-c0
-00
-80
-cd
-c0
-01
-00
-d0
-6f
-e0
-c5
-dd
-c2
-80
-51
-9d
-20
-20
-00
-d2
-6f
-e0
-c5
-dd
-c2
-80
-d1
-a1
-6f
-e0
-c5
-5c
-c0
-00
-80
-d6
-c0
-01
-80
-da
-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
-80
-d6
-c0
-7f
-80
-d6
-20
-20
-51
-af
-d2
-50
+1d
+e9
 aa
 55
 40
@@ -914,7 +1066,7 @@
 00
 00
 00
-00
+01
 00
 00
 00
@@ -1101,8 +1253,8 @@
 55
 01
 00
-e0
-45
+27
+46
 ab
 aa
 55
@@ -1113,6 +1265,78 @@
 00
 aa
 55
+42
+00
+e0
+45
+41
+05
+01
+09
+06
+a1
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+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
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+aa
+55
 08
 00
 c4
@@ -1193,7 +1417,7 @@
 aa
 aa
 55
-e4
-44
-43
-7b
+83
+55
+0f
+45
Index: output/memmap.format
===================================================================
--- /1306ac/branch/dongle/usb_1M/output/memmap.format	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/output/memmap.format	(working copy)
@@ -1324,7 +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
+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: output/program.lis
===================================================================
--- /1306ac/branch/dongle/usb_1M/output/program.lis	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/output/program.lis	(working copy)
@@ -1,297 +1,353 @@
               include "bt_format "
               org 0x0000
-0000 c2840009 bbit1 8 ,pf_patch_ext 
-0001 c000002b beq patch00_0 ,p_soft_reset 
-0002 c00b8048 beq patch02_7 ,p_txon_next 
-0003 c00c0010 beq patch03_0 ,p_initialize_radio_cont 
-0004 c0178043 beq patch05_7 ,p_dongle_default_init 
-0005 c0180034 beq patch06_0 ,p_dongle_read_kb_bind_status 
-0006 c0188030 beq patch06_1 ,p_dongle_write_kb_bind_status 
-0007 c061806b beq patch18_3 ,p_usb_init 
-0008 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:
-0009 c17f8000 rtneq patch3f_7 
-000a c02380a5 beq patch28_7 ,p_g24_bind_data_parse_next 
-000b c02480ab beq patch29_1 ,p_g24_receive_packet_start_next 
-000c c0268088 beq patch29_5 ,p_g24_mode_switch_bind_search 
-000d c0278038 beq patch29_7 ,p_g24_bind_mode_auto 
-000e c028007d beq patch2a_0 ,p_g24_search_mode_auto 
-000f 20203a8a branch assert 
+000a c17f8000 rtneq patch3f_7 
+000b c02380df beq patch28_7 ,p_g24_bind_data_parse_next 
+000c c02480e5 beq patch29_1 ,p_g24_receive_packet_start_next 
+000d c02680c2 beq patch29_5 ,p_g24_mode_switch_bind_search 
+000e c0278039 beq patch29_7 ,p_g24_bind_mode_auto 
+000f c02800b7 beq patch2a_0 ,p_g24_search_mode_auto 
+0010 20203a8a branch assert 
 
 p_initialize_radio_cont:
-0010 708a7503 jam 0x03 ,core_rx_lna_cfg3 
-0011 708a8500 jam 0 ,core_syn_loopdiv_dsm_cfg 
-0012 70896f10 jam 0x10 ,0x896f 
-0013 6fe0c3ef fetch 1 ,mem_wdt_always_work 
-0014 205a6d31 call wdt_set_disable ,blank 
-0015 708a0305 jam 0x05 ,core_clkpll_cfg0 
-0016 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-0017 20403a44 call initialize_rc_cal 
-0018 20403a3f call initialize_rf_ldo_cfg1 
-0019 20403a3a call initialize_syn_afc_cfg1 
-001a 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-001b 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-001c 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-001d 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-001e 70896876 jam 0x76 ,core_agc_wb_sat_th 
-001f 70896976 jam 0x76 ,core_agc_nb_sat_th 
-0020 6fe0c09a fetch 1 ,mem_fcomp_div 
-0021 c0840023 bne xtal_16m ,p_initialize_radio_cont_next 
-0022 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:
-0023 708a01ff jam 0xff ,core_clkpll_ctrl1 
-0024 20000064 nop 100 
-0025 708a020e jam 0x0e ,core_clkpll_ctrl2 
-0026 708a0003 jam 0x03 ,core_clkpll_ctrl0 
-0027 20400050 call p_set_tx_power_0db 
-0028 708a9a28 jam 0x28 ,core_tx_mixer_cfg1 
-0029 708a9b3f jam 0x3f ,core_tx_mixer_cfg2 
-002a 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:
-002b 20800000 clear_stack 
-002c 6fe240cc fetch 4 ,mem_lpm_ctrl3 
-002d 67f2004c store 4 ,core_lpm_reg 
-002e 20403c16 call lpm_write_ctrl3 
-002f 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:
-0030 df200001 arg 1 ,loopcnt 
-0031 da204593 arg mem_dg_kb_bind_flag ,rega 
-0032 dfe00fcd arg dongle_kb_bind_otp_offect ,pdata 
-0033 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:
-0034 58000fcd setarg dongle_kb_bind_otp_offect 
-0035 da204593 arg mem_dg_kb_bind_flag ,rega 
-0036 d8400001 arg 1 ,temp 
-0037 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:
-0038 6fe0c561 fetch 1 ,mem_24g_work_mode 
-0039 c1808000 rtnne dongle_bind 
-003a 2040003c call p_g24_bind_init 
-003b 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:
-003c 6fe0c560 fetch 1 ,mem_24g_mode_init 
-003d c3808000 rtnbit1 dongle_bind 
-003e 79207e01 set1 dongle_bind ,pdata 
-003f 67e0c560 store 1 ,mem_24g_mode_init 
-0040 58000000 setarg 0 
-0041 67e1c51e store 3 ,mem_24g_device1_bind_step 
-0042 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:
-0043 204050c4 call dongle_default_init + 1 
-0044 6fe0c5e0 fetch 1 ,mem_24g_pair_tx_power_init 
-0045 67e0c51c store 1 ,mem_24g_pair_tx_power 
-0046 70451500 jam off ,mem_24g_disable_fec1 
-0047 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:
-0048 6fe0c116 fetch 1 ,mem_tx_power 
-0049 c0018055 beq tx_power_3db ,p_set_tx_power_3db 
-004a c0030057 beq tx_power_6db ,p_set_tx_power_6db 
-004b c0053a00 beq tx_power_10db ,set_tx_power_10db 
-004c c04a3a09 beq tx_power_f20db ,set_tx_power_f20db 
-004d c04f3a0c beq tx_power_f30db ,set_tx_power_f30db 
-004e c0558065 beq tx_power_f47db ,p_set_tx_power_f47db 
-004f 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:
-0050 708a3b2c jam 0x2c ,0x8a3b 
-0051 708a3c17 jam 0x17 ,0x8a3c 
-0052 708a398a jam 0x8a ,core_tx_pwr_ctrl0 
-0053 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
-0054 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:
-0055 708a3b48 jam 0x48 ,0x8a3b 
-0056 20200051 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:
-0057 708a3b70 jam 0x70 ,0x8a3b 
-0058 708a3c1f jam 0x1f ,0x8a3c 
-0059 708a39c9 jam 0xc9 ,core_tx_pwr_ctrl0 
-005a 20200053 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:
-005b 708a3985 jam 0x85 ,core_tx_pwr_ctrl0 
-005c 708a3a04 jam 0x04 ,core_tx_pwr_ctrl1 
-005d 708a14a3 jam 0xa3 ,core_rf_ldo_cfg8 
-005e 708a150a jam 0x0a ,core_rf_ldo_cfg9 
-005f 708a3b18 jam 0x18 ,0x8a3b 
-0060 708a3c0f jam 0x0f ,0x8a3c 
-0061 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:
-0062 708a3983 jam 0x83 ,core_tx_pwr_ctrl0 
-0063 708a3a02 jam 0x02 ,core_tx_pwr_ctrl1 
-0064 2020005d 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:
-0065 708a3982 jam 0x82 ,core_tx_pwr_ctrl0 
-0066 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
-0067 2020005d branch p_set_tx_power_f20db + 2 
+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:
-0068 708a3981 jam 0x81 ,core_tx_pwr_ctrl0 
-0069 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
-006a 2020005d branch p_set_tx_power_f20db + 2 
+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:
-006b 580000ca setarg p_dongle_ackpayload_prep 
-006c 67e1452d store 2 ,mem_cb_24g_ackpayload 
-006d 20406eb3 call enable_authrom 
-006e 20407056 call usb_init_param 
-006f 708c0000 jam 0x00 ,core_usb_config 
-0070 20002710 nop 10000 
-0071 708c1800 jam 0x00 ,core_usb_trig 
-0072 6ff10050 fetch 2 ,core_clkoff 
-0073 793ffe0a set0 clock_off_usb ,pdata 
-0074 67f10050 store 2 ,core_clkoff 
-0075 708c1100 jam 0x00 ,core_usb_hmode 
-0076 708c003c jam 0x3c ,core_usb_config 
-0077 58000d00 setarg mem_usb_rxbuf_new 
-0078 67f10c03 store 2 ,core_usb_rx_saddr 
-0079 67f10c07 store 2 ,core_usb_rxptr 
-007a 58000d44 setarg mem_usb_rxbuf_new_end 
-007b 67f10c05 store 2 ,core_usb_rx_eaddr 
-007c 2020704f branch usb_init + 16 
+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:
+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:
+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:
+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:
+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:
+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 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
 
 p_g24_search_mode_auto:
-007d 6fe0c561 fetch 1 ,mem_24g_work_mode 
-007e c1838000 rtnne dongle_search 
-007f 20400081 call p_g24_search_mode_init 
-0080 20204b00 branch g24_search_mode_auto + 4 
+00b7 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00b8 c1838000 rtnne dongle_search 
+00b9 204000bb call p_g24_search_mode_init 
+00ba 20204b00 branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-0081 6fe0c560 fetch 1 ,mem_24g_mode_init 
-0082 c3838000 rtnbit1 dongle_search 
-0083 79207e07 set1 dongle_search ,pdata 
-0084 67e0c560 store 1 ,mem_24g_mode_init 
-0085 6fe0c56e fetch 1 ,mem_tx_power_temp 
-0086 67e0c116 store 1 ,mem_tx_power 
-0087 20204af0 branch g24_search_mode_init + 4 
+00bb 6fe0c560 fetch 1 ,mem_24g_mode_init 
+00bc c3838000 rtnbit1 dongle_search 
+00bd 79207e07 set1 dongle_search ,pdata 
+00be 67e0c560 store 1 ,mem_24g_mode_init 
+00bf 6fe0c56e fetch 1 ,mem_tx_power_temp 
+00c0 67e0c116 store 1 ,mem_tx_power 
+00c1 20204af0 branch g24_search_mode_init + 4 
 
 p_g24_mode_switch_bind_search:
-0088 6fe0c561 fetch 1 ,mem_24g_work_mode 
-0089 c1000000 rtneq dongle_work 
-008a 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-008b 247a0000 nrtn blank 
-008c 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-008d 247a0000 nrtn blank 
-008e 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
-008f 207a0000 rtn blank 
-0090 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
-0091 c1800000 rtnne 0 
-0092 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
-0093 c1800000 rtnne 0 
-0094 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
-0095 2fe00603 compare 3 ,pdata ,3 
-0096 2020cac1 branch g24_mode_b_s_switch_exit ,true 
-0097 204048be call g24_timer_check 
-0098 24740000 nrtn user 
-0099 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-009a 1fe0fe01 increase 1 ,pdata 
-009b 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
-009c d84007d0 arg 0x7d0 ,temp 
-009d 98467c00 isub temp ,null 
-009e 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
-009f 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
-00a0 1fe0fe01 increase 1 ,pdata 
-00a1 1fe17e01 and_into 1 ,pdata 
-00a2 67e0c574 store 1 ,mem_24g_b_s_time_slice 
-00a3 c0004b88 beq 0 ,g24_search_mode_enable 
-00a4 20204abc branch g24_mode_switch_bind_search_next + 1 
+00c2 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00c3 c1000000 rtneq dongle_work 
+00c4 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+00c5 247a0000 nrtn blank 
+00c6 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00c7 247a0000 nrtn blank 
+00c8 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
+00c9 207a0000 rtn blank 
+00ca 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
+00cb c1800000 rtnne 0 
+00cc 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00cd c1800000 rtnne 0 
+00ce 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
+00cf 2fe00603 compare 3 ,pdata ,3 
+00d0 2020cac1 branch g24_mode_b_s_switch_exit ,true 
+00d1 204048be call g24_timer_check 
+00d2 24740000 nrtn user 
+00d3 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+00d4 1fe0fe01 increase 1 ,pdata 
+00d5 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
+00d6 d84007d0 arg 0x7d0 ,temp 
+00d7 98467c00 isub temp ,null 
+00d8 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
+00d9 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
+00da 1fe0fe01 increase 1 ,pdata 
+00db 1fe17e01 and_into 1 ,pdata 
+00dc 67e0c574 store 1 ,mem_24g_b_s_time_slice 
+00dd c0004b88 beq 0 ,g24_search_mode_enable 
+00de 20204abc branch g24_mode_switch_bind_search_next + 1 
 
 p_g24_bind_data_parse_next:
-00a5 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00a6 c05549a2 beq datatype_bind ,g24_bind_first_step 
-00a7 c02ac9b3 beq datatype_config ,g24_bind_second_step 
-00a8 c01149d4 beq datatype_ok ,g24_bind_third_step 
-00a9 c07f80c0 beq datatype_attemp ,p_g24_data_attemp 
-00aa 20600000 rtn 
+00df 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00e0 c05549a2 beq datatype_bind ,g24_bind_first_step 
+00e1 c02ac9b3 beq datatype_config ,g24_bind_second_step 
+00e2 c01149d4 beq datatype_ok ,g24_bind_third_step 
+00e3 c07f80fa beq datatype_attemp ,p_g24_data_attemp 
+00e4 20600000 rtn 
 
 p_g24_receive_packet_start_next:
-00ab 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00ac c00080b0 beq datatype_device1 ,p_g24_data_device1 
-00ad c0014a4e beq datatype_device2 ,g24_data_device2 
-00ae c07f80be beq datatype_attemp ,p_g24_data_receive_attemp 
-00af 20204a39 branch g24_rx_interrupt_clear 
+00e5 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00e6 c00080ea beq datatype_device1 ,p_g24_data_device1 
+00e7 c0014a4e beq datatype_device2 ,g24_data_device2 
+00e8 c07f80f8 beq datatype_attemp ,p_g24_data_receive_attemp 
+00e9 20204a39 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-00b0 20404a08 call g24_binding_dvc1_living 
-00b1 20404ba2 call g24_ch_timer_reinit 
-00b2 6fe0c555 fetch 1 ,mem_24g_abort_packet 
-00b3 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
-00b4 284ffe03 isolate1 bit_abort ,temp 
-00b5 7920fe00 setflag true ,0 ,pdata 
-00b6 67e0c555 store 1 ,mem_24g_abort_packet 
-00b7 c00080b9 beq 1 ,p_g24_data_attemp_device1_abort 
-00b8 20204a47 branch g24_data_device1 + 8 
+00ea 20404a08 call g24_binding_dvc1_living 
+00eb 20404ba2 call g24_ch_timer_reinit 
+00ec 6fe0c555 fetch 1 ,mem_24g_abort_packet 
+00ed 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
+00ee 284ffe03 isolate1 bit_abort ,temp 
+00ef 7920fe00 setflag true ,0 ,pdata 
+00f0 67e0c555 store 1 ,mem_24g_abort_packet 
+00f1 c00080f3 beq 1 ,p_g24_data_attemp_device1_abort 
+00f2 20204a47 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-00b9 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-00ba 247a0000 nrtn blank 
-00bb 70452901 jam 1 ,mem_24g_device1_bind_disable 
-00bc 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
-00bd 20204c14 branch g24_store_device1_addr 
+00f3 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+00f4 247a0000 nrtn blank 
+00f5 70452901 jam 1 ,mem_24g_device1_bind_disable 
+00f6 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
+00f7 20204c14 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-00be 20404a16 call g24_bind_device_status 
-00bf 202000c0 branch p_g24_data_attemp 
+00f8 20404a16 call g24_bind_device_status 
+00f9 202000fa branch p_g24_data_attemp 
 
 p_g24_data_attemp:
-00c0 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
-00c1 c00080c4 beq datatype_device1 ,p_g24_data_attemp_device1 
-00c2 c00100c7 beq datatype_device2 ,p_g24_data_attemp_device2 
-00c3 20600000 rtn 
+00fa 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
+00fb c00080fe beq datatype_device1 ,p_g24_data_attemp_device1 
+00fc c0010101 beq datatype_device2 ,p_g24_data_attemp_device2 
+00fd 20600000 rtn 
 
 p_g24_data_attemp_device1:
-00c4 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-00c5 247a0000 nrtn blank 
-00c6 20204c12 branch g24_data_attemp_device1 
+00fe 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+00ff 247a0000 nrtn blank 
+0100 20204c12 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-00c7 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
-00c8 247a0000 nrtn blank 
-00c9 20204c16 branch g24_data_attemp_device2 
-
-p_dongle_ackpayload_prep:
-00ca 6fe0c4d4 fetch 1 ,mem_24g_data_type 
-00cb c00080cd beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-00cc c00100d0 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
-
-p_dongle_ackpayload_prep_mouse:
-00cd 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-00ce c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-00cf 202000d2 branch p_dongle_ackpayload_prep_end 
-
-p_dongle_ackpayload_prep_keyboard:
-00d0 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-00d1 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
-
-p_dongle_ackpayload_prep_end:
-00d2 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
-00d3 c00080d6 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-00d4 c00180da beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-00d5 20600000 rtn 
-
-p_dongle_g24_bind_ackpayload_prep:
-00d6 70455c01 jam 1 ,mem_24g_ackpayload_enable 
-00d7 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00d8 c1000000 rtneq dongle_work 
-00d9 202051a8 branch dongle_g24_bind_ackpayload_prep 
-
-p_dongle_g24_kb_led_ackpayload_prep:
-00da 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
-00db c00080d6 beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
-00dc c07f80d6 beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
-00dd 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
+0101 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
+0102 247a0000 nrtn blank 
+0103 20204c16 branch g24_data_attemp_device2 
               org 0x3800
 
 start:
Index: program/patch.prog
===================================================================
--- /1306ac/branch/dongle/usb_1M/program/patch.prog	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/program/patch.prog	(working copy)
@@ -8,6 +8,7 @@
 	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 patch18_3,p_usb_init
 //	beq patch1c_3,p_le_enable_phy_by_pdata
 	branch assert
@@ -159,8 +160,6 @@
 */	
 
 p_usb_init:
-	setarg p_dongle_ackpayload_prep
-	store 2,mem_cb_24g_ackpayload
 	call enable_authrom
 	call usb_init_param
 	jam 0x00,core_usb_config
@@ -178,6 +177,91 @@
 	store 2,core_usb_rx_eaddr
 	branch usb_init+16
 
+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
+	fetch 1,mem_dg_kb_bind_flag
+	bne DONGLE_KB_BIND_SUCCESS,p_dongle_usb_config_param
+p_dongle_usb_config_kb:
+	jam DONGLE_KB_BIND_SUCCESS,mem_dg_kb_bind_flag
+	fetch 4,USB_DEVICEDATA_ADDR+9
+	set1 29,pdata
+	store 4,mem_devicedesc+9
+p_dongle_usb_config_param:
+	fetch 1,mem_dg_usb_device_iserial_number
+	store 1,mem_devicedesc+17
+	call dongle_usb_device_name
+	call usb_tx_interval_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
+	setarg USB_KBDATA_VENDOR_DEFINE_ADDR
+	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 0x41,mem_confdesc+26//hid_descriptor--keyboard length	
+	rtn
+
+
+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
+
 /*
 p_le_enable_phy_by_pdata:
 	copy temp,pdata
@@ -367,29 +451,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: sched/dongle.dat
===================================================================
--- /1306ac/branch/dongle/usb_1M/sched/dongle.dat	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M/sched/dongle.dat	(working copy)
@@ -212,7 +212,40 @@
 #40 00	#MaxPacketSize (LITTLE ENDIAN) 
 #02		#bInterval
 
-
+mem_dongle_kb_desc_new:
+41
+05 01
+09 06
+a1 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+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 
+15 00 
+26 ff 00
+05 07
+19 00
+2a ff 00 
+81 00
+c0
 
 
 
