Index: format/app_dongle.format
===================================================================
--- /1306ac/branch/dongle/usb_1M_YJX/format/app_dongle.format	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M_YJX/format/app_dongle.format	(working copy)
@@ -41,6 +41,7 @@
 0x5A DONGLE_KB_BIND_SUCCESS
 0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
 0xfcd DONGLE_KB_BIND_OTP_OFFECT
+0x7cd DONGLE_KB_BIND_OTP_OFFECT_NEW
 )
 
 (
Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/dongle/usb_1M_YJX/output/eeprom.dat	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M_YJX/output/eeprom.dat	(working copy)
@@ -2,48 +2,52 @@
 02
 aa
 55
-d6
-03
+3a
+04
 c2
 84
 00
-0b
+0c
 c0
 00
 00
-2d
+2e
 c0
 0b
 80
-4a
+4b
 c0
 0c
 00
-12
+13
 c0
 17
 80
-45
+46
 c0
 18
 00
-36
+37
 c0
 18
 80
-32
+33
+c0
+38
+00
+95
 c0
 61
 00
-94
+ad
 c0
 61
 80
-6c
+6d
 c0
 64
 00
-7c
+7d
 20
 20
 3a
@@ -55,23 +59,23 @@
 c0
 23
 80
-d0
+e9
 c0
 24
 80
-d6
+ef
 c0
 26
 80
-b3
+cc
 c0
 27
 80
-3a
+3b
 c0
 28
 00
-a8
+c1
 20
 20
 3a
@@ -147,7 +151,7 @@
 c0
 84
 00
-25
+26
 70
 8a
 08
@@ -171,7 +175,7 @@
 20
 40
 00
-51
+52
 70
 8a
 9a
@@ -214,7 +218,7 @@
 93
 df
 e0
-0f
+07
 cd
 20
 20
@@ -222,7 +226,7 @@
 83
 58
 00
-0f
+07
 cd
 da
 20
@@ -247,7 +251,7 @@
 20
 40
 00
-3e
+3f
 20
 20
 4a
@@ -307,11 +311,11 @@
 c0
 01
 80
-56
+57
 c0
 03
 00
-58
+59
 c0
 05
 3a
@@ -355,7 +359,7 @@
 20
 20
 00
-52
+53
 70
 8a
 3b
@@ -371,7 +375,7 @@
 20
 20
 00
-54
+55
 70
 8a
 39
@@ -411,7 +415,7 @@
 20
 20
 00
-5e
+5f
 70
 8a
 39
@@ -423,7 +427,7 @@
 20
 20
 00
-5e
+5f
 70
 8a
 39
@@ -435,7 +439,7 @@
 20
 20
 00
-5e
+5f
 20
 40
 6e
@@ -507,7 +511,7 @@
 c0
 01
 80
-7f
+80
 20
 20
 71
@@ -535,7 +539,7 @@
 c0
 00
 00
-86
+87
 20
 20
 72
@@ -596,6 +600,102 @@
 20
 74
 20
+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
+9d
+20
+20
+50
+bf
+6f
+e0
+c4
+d4
+c0
+00
+80
+a0
+c0
+01
+00
+a3
+6f
+e0
+c5
+dd
+c2
+80
+51
+9d
+20
+20
+00
+a5
+6f
+e0
+c5
+dd
+c2
+80
+d1
+a1
+6f
+e0
+c5
+5c
+c0
+00
+d1
+a8
+c0
+01
+80
+a9
+20
+60
+00
+00
+6f
+e0
+c4
+44
+c0
+00
+c9
+84
+c0
+7f
+c9
+84
+20
+20
+51
+af
 6f
 f0
 8c
@@ -619,7 +719,7 @@
 20
 40
 80
-a2
+bb
 6f
 f0
 8c
@@ -657,13 +757,13 @@
 87
 97
 c0
-52
-80
+5f
+00
 34
 20
 20
 00
-8f
+90
 6f
 e0
 87
@@ -675,7 +775,7 @@
 20
 20
 00
-8f
+90
 6f
 e0
 c5
@@ -687,7 +787,7 @@
 20
 40
 00
-ac
+c5
 20
 20
 4b
@@ -854,8 +954,8 @@
 d4
 c0
 7f
-80
-eb
+81
+04
 20
 60
 00
@@ -867,15 +967,15 @@
 c0
 00
 80
-db
+f4
 c0
 01
 4a
 4e
 c0
 7f
-80
-e9
+81
+02
 20
 20
 4a
@@ -911,7 +1011,7 @@
 c0
 00
 80
-e4
+fd
 20
 20
 4a
@@ -942,20 +1042,20 @@
 16
 20
 20
-00
-eb
+01
+04
 6f
 e0
 c5
 36
 c0
 00
-80
-ef
+81
+08
 c0
 01
-00
-f2
+01
+0b
 20
 60
 00
@@ -984,8 +1084,8 @@
 20
 4c
 16
-ec
-d1
+b5
+08
 aa
 55
 40
@@ -1006,7 +1106,7 @@
 00
 00
 00
-00
+01
 00
 00
 00
@@ -1104,15 +1204,15 @@
 00
 b3
 45
-10
+00
 aa
 55
 06
 00
 3c
 44
-36
-f0
+31
+f5
 10
 30
 12
@@ -1287,7 +1387,7 @@
 aa
 aa
 55
-88
+79
 46
-0e
-c4
+3c
+b7
Index: output/program.lis
===================================================================
--- /1306ac/branch/dongle/usb_1M_YJX/output/program.lis	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M_YJX/output/program.lis	(working copy)
@@ -1,322 +1,359 @@
               include "bt_format "
               org 0x0000
-0000 c284000b bbit1 8 ,pf_patch_ext 
-0001 c000002d beq patch00_0 ,p_soft_reset 
-0002 c00b804a beq patch02_7 ,p_txon_next 
-0003 c00c0012 beq patch03_0 ,p_initialize_radio_cont 
-0004 c0178045 beq patch05_7 ,p_dongle_default_init 
-0005 c0180036 beq patch06_0 ,p_dongle_read_kb_bind_status 
-0006 c0188032 beq patch06_1 ,p_dongle_write_kb_bind_status 
-0007 c0610094 beq patch18_2 ,p_usb_isr 
-0008 c061806c beq patch18_3 ,p_usb_init 
-0009 c064007c beq patch19_0 ,p_usb_out_standard_req 
-000a 20203a8a branch assert 
+0000 c284000c bbit1 8 ,pf_patch_ext 
+0001 c000002e beq patch00_0 ,p_soft_reset 
+0002 c00b804b beq patch02_7 ,p_txon_next 
+0003 c00c0013 beq patch03_0 ,p_initialize_radio_cont 
+0004 c0178046 beq patch05_7 ,p_dongle_default_init 
+0005 c0180037 beq patch06_0 ,p_dongle_read_kb_bind_status 
+0006 c0188033 beq patch06_1 ,p_dongle_write_kb_bind_status 
+0007 c0380095 beq patch0e_0 ,p_dongle_init 
+0008 c06100ad beq patch18_2 ,p_usb_isr 
+0009 c061806d beq patch18_3 ,p_usb_init 
+000a c064007d beq patch19_0 ,p_usb_out_standard_req 
+000b 20203a8a branch assert 
 
 pf_patch_ext:
-000b c17f8000 rtneq patch3f_7 
-000c c02380d0 beq patch28_7 ,p_g24_bind_data_parse_next 
-000d c02480d6 beq patch29_1 ,p_g24_receive_packet_start_next 
-000e c02680b3 beq patch29_5 ,p_g24_mode_switch_bind_search 
-000f c027803a beq patch29_7 ,p_g24_bind_mode_auto 
-0010 c02800a8 beq patch2a_0 ,p_g24_search_mode_auto 
-0011 20203a8a branch assert 
+000c c17f8000 rtneq patch3f_7 
+000d c02380e9 beq patch28_7 ,p_g24_bind_data_parse_next 
+000e c02480ef beq patch29_1 ,p_g24_receive_packet_start_next 
+000f c02680cc beq patch29_5 ,p_g24_mode_switch_bind_search 
+0010 c027803b beq patch29_7 ,p_g24_bind_mode_auto 
+0011 c02800c1 beq patch2a_0 ,p_g24_search_mode_auto 
+0012 20203a8a branch assert 
 
 p_initialize_radio_cont:
-0012 708a7503 jam 0x03 ,core_rx_lna_cfg3 
-0013 708a8500 jam 0 ,core_syn_loopdiv_dsm_cfg 
-0014 70896f10 jam 0x10 ,0x896f 
-0015 6fe0c3ef fetch 1 ,mem_wdt_always_work 
-0016 205a6d31 call wdt_set_disable ,blank 
-0017 708a0305 jam 0x05 ,core_clkpll_cfg0 
-0018 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-0019 20403a44 call initialize_rc_cal 
-001a 20403a3f call initialize_rf_ldo_cfg1 
-001b 20403a3a call initialize_syn_afc_cfg1 
-001c 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-001d 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-001e 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-001f 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-0020 70896876 jam 0x76 ,core_agc_wb_sat_th 
-0021 70896976 jam 0x76 ,core_agc_nb_sat_th 
-0022 6fe0c09a fetch 1 ,mem_fcomp_div 
-0023 c0840025 bne xtal_16m ,p_initialize_radio_cont_next 
-0024 708a0834 jam 0x34 ,core_clkpll_cfg5 
+0013 708a7503 jam 0x03 ,core_rx_lna_cfg3 
+0014 708a8500 jam 0 ,core_syn_loopdiv_dsm_cfg 
+0015 70896f10 jam 0x10 ,0x896f 
+0016 6fe0c3ef fetch 1 ,mem_wdt_always_work 
+0017 205a6d31 call wdt_set_disable ,blank 
+0018 708a0305 jam 0x05 ,core_clkpll_cfg0 
+0019 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+001a 20403a44 call initialize_rc_cal 
+001b 20403a3f call initialize_rf_ldo_cfg1 
+001c 20403a3a call initialize_syn_afc_cfg1 
+001d 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+001e 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+001f 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+0020 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+0021 70896876 jam 0x76 ,core_agc_wb_sat_th 
+0022 70896976 jam 0x76 ,core_agc_nb_sat_th 
+0023 6fe0c09a fetch 1 ,mem_fcomp_div 
+0024 c0840026 bne xtal_16m ,p_initialize_radio_cont_next 
+0025 708a0834 jam 0x34 ,core_clkpll_cfg5 
 
 p_initialize_radio_cont_next:
-0025 708a01ff jam 0xff ,core_clkpll_ctrl1 
-0026 20000064 nop 100 
-0027 708a020e jam 0x0e ,core_clkpll_ctrl2 
-0028 708a0003 jam 0x03 ,core_clkpll_ctrl0 
-0029 20400051 call p_set_tx_power_0db 
-002a 708a9a28 jam 0x28 ,core_tx_mixer_cfg1 
-002b 708a9b3f jam 0x3f ,core_tx_mixer_cfg2 
-002c 20203a35 branch initialize_radio_cont_next_2 
+0026 708a01ff jam 0xff ,core_clkpll_ctrl1 
+0027 20000064 nop 100 
+0028 708a020e jam 0x0e ,core_clkpll_ctrl2 
+0029 708a0003 jam 0x03 ,core_clkpll_ctrl0 
+002a 20400052 call p_set_tx_power_0db 
+002b 708a9a28 jam 0x28 ,core_tx_mixer_cfg1 
+002c 708a9b3f jam 0x3f ,core_tx_mixer_cfg2 
+002d 20203a35 branch initialize_radio_cont_next_2 
 
 p_soft_reset:
-002d 20800000 clear_stack 
-002e 6fe240cc fetch 4 ,mem_lpm_ctrl3 
-002f 67f2004c store 4 ,core_lpm_reg 
-0030 20403c16 call lpm_write_ctrl3 
-0031 20203803 branch soft_reset + 2 
+002e 20800000 clear_stack 
+002f 6fe240cc fetch 4 ,mem_lpm_ctrl3 
+0030 67f2004c store 4 ,core_lpm_reg 
+0031 20403c16 call lpm_write_ctrl3 
+0032 20203803 branch soft_reset + 2 
 
 p_dongle_write_kb_bind_status:
-0032 df200001 arg 1 ,loopcnt 
-0033 da204593 arg mem_dg_kb_bind_flag ,rega 
-0034 dfe00fcd arg dongle_kb_bind_otp_offect ,pdata 
-0035 20206883 branch otp_write 
+0033 df200001 arg 1 ,loopcnt 
+0034 da204593 arg mem_dg_kb_bind_flag ,rega 
+0035 dfe007cd arg dongle_kb_bind_otp_offect_new ,pdata 
+0036 20206883 branch otp_write 
 
 p_dongle_read_kb_bind_status:
-0036 58000fcd setarg dongle_kb_bind_otp_offect 
-0037 da204593 arg mem_dg_kb_bind_flag ,rega 
-0038 d8400001 arg 1 ,temp 
-0039 202068c5 branch otpd_read_data_with_pwr_operation 
+0037 580007cd setarg dongle_kb_bind_otp_offect_new 
+0038 da204593 arg mem_dg_kb_bind_flag ,rega 
+0039 d8400001 arg 1 ,temp 
+003a 202068c5 branch otpd_read_data_with_pwr_operation 
 
 p_g24_bind_mode_auto:
-003a 6fe0c561 fetch 1 ,mem_24g_work_mode 
-003b c1808000 rtnne dongle_bind 
-003c 2040003e call p_g24_bind_init 
-003d 20204ae3 branch g24_bind_mode_auto + 4 
+003b 6fe0c561 fetch 1 ,mem_24g_work_mode 
+003c c1808000 rtnne dongle_bind 
+003d 2040003f call p_g24_bind_init 
+003e 20204ae3 branch g24_bind_mode_auto + 4 
 
 p_g24_bind_init:
-003e 6fe0c560 fetch 1 ,mem_24g_mode_init 
-003f c3808000 rtnbit1 dongle_bind 
-0040 79207e01 set1 dongle_bind ,pdata 
-0041 67e0c560 store 1 ,mem_24g_mode_init 
-0042 58000000 setarg 0 
-0043 67e1c51e store 3 ,mem_24g_device1_bind_step 
-0044 20204980 branch g24_bind_init + 8 
+003f 6fe0c560 fetch 1 ,mem_24g_mode_init 
+0040 c3808000 rtnbit1 dongle_bind 
+0041 79207e01 set1 dongle_bind ,pdata 
+0042 67e0c560 store 1 ,mem_24g_mode_init 
+0043 58000000 setarg 0 
+0044 67e1c51e store 3 ,mem_24g_device1_bind_step 
+0045 20204980 branch g24_bind_init + 8 
 
 p_dongle_default_init:
-0045 204050c4 call dongle_default_init + 1 
-0046 6fe0c5e0 fetch 1 ,mem_24g_pair_tx_power_init 
-0047 67e0c51c store 1 ,mem_24g_pair_tx_power 
-0048 70451500 jam off ,mem_24g_disable_fec1 
-0049 202048fa branch g24_enable_1m 
+0046 204050c4 call dongle_default_init + 1 
+0047 6fe0c5e0 fetch 1 ,mem_24g_pair_tx_power_init 
+0048 67e0c51c store 1 ,mem_24g_pair_tx_power 
+0049 70451500 jam off ,mem_24g_disable_fec1 
+004a 202048fa branch g24_enable_1m 
 
 p_txon_next:
-004a 6fe0c116 fetch 1 ,mem_tx_power 
-004b c0018056 beq tx_power_3db ,p_set_tx_power_3db 
-004c c0030058 beq tx_power_6db ,p_set_tx_power_6db 
-004d c0053a00 beq tx_power_10db ,set_tx_power_10db 
-004e c04a3a09 beq tx_power_f20db ,set_tx_power_f20db 
-004f c04f3a0c beq tx_power_f30db ,set_tx_power_f30db 
-0050 c0553a0f beq tx_power_factory ,set_tx_power_factory 
+004b 6fe0c116 fetch 1 ,mem_tx_power 
+004c c0018057 beq tx_power_3db ,p_set_tx_power_3db 
+004d c0030059 beq tx_power_6db ,p_set_tx_power_6db 
+004e c0053a00 beq tx_power_10db ,set_tx_power_10db 
+004f c04a3a09 beq tx_power_f20db ,set_tx_power_f20db 
+0050 c04f3a0c beq tx_power_f30db ,set_tx_power_f30db 
+0051 c0553a0f beq tx_power_factory ,set_tx_power_factory 
 
 p_set_tx_power_0db:
-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 
+0052 708a3b2c jam 0x2c ,0x8a3b 
+0053 708a3c17 jam 0x17 ,0x8a3c 
+0054 708a398a jam 0x8a ,core_tx_pwr_ctrl0 
+0055 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
+0056 202039f4 branch set_rf_ldo_cfg89_2 
 
 p_set_tx_power_3db:
-0056 708a3b48 jam 0x48 ,0x8a3b 
-0057 20200052 branch p_set_tx_power_0db + 1 
+0057 708a3b48 jam 0x48 ,0x8a3b 
+0058 20200053 branch p_set_tx_power_0db + 1 
 
 p_set_tx_power_6db:
-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 
+0059 708a3b70 jam 0x70 ,0x8a3b 
+005a 708a3c1f jam 0x1f ,0x8a3c 
+005b 708a39c9 jam 0xc9 ,core_tx_pwr_ctrl0 
+005c 20200055 branch p_set_tx_power_0db + 3 
 
 p_set_tx_power_f20db:
-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 
+005d 708a3985 jam 0x85 ,core_tx_pwr_ctrl0 
+005e 708a3a04 jam 0x04 ,core_tx_pwr_ctrl1 
+005f 708a14a3 jam 0xa3 ,core_rf_ldo_cfg8 
+0060 708a150a jam 0x0a ,core_rf_ldo_cfg9 
+0061 708a3b18 jam 0x18 ,0x8a3b 
+0062 708a3c0f jam 0x0f ,0x8a3c 
+0063 20600000 rtn 
 
 p_set_tx_power_f30db:
-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 
+0064 708a3983 jam 0x83 ,core_tx_pwr_ctrl0 
+0065 708a3a02 jam 0x02 ,core_tx_pwr_ctrl1 
+0066 2020005f branch p_set_tx_power_f20db + 2 
 
 p_set_tx_power_f47db:
-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 
+0067 708a3982 jam 0x82 ,core_tx_pwr_ctrl0 
+0068 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
+0069 2020005f branch p_set_tx_power_f20db + 2 
 
 p_set_tx_power_f50db:
-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 
+006a 708a3981 jam 0x81 ,core_tx_pwr_ctrl0 
+006b 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
+006c 2020005f branch p_set_tx_power_f20db + 2 
 
 p_usb_init:
-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 
+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 
 
 p_usb_out_standard_req:
-007c 6fe0870c fetch 1 ,mem_usb_setup_brequest 
-007d c001807f beq set_feature ,p_usb0_request_set_feature 
-007e 20207102 branch usb_out_standard_req + 1 
+007d 6fe0870c fetch 1 ,mem_usb_setup_brequest 
+007e c0018080 beq set_feature ,p_usb0_request_set_feature 
+007f 20207102 branch usb_out_standard_req + 1 
 
 p_usb0_request_set_feature:
-007f 6fe08711 fetch 1 ,mem_usb_setup_blength 
-0080 c0807111 bne 0 ,usb0_force_stall 
-0081 6fe08712 fetch 1 ,mem_usb_setup_blengthh 
-0082 c0807111 bne 0 ,usb0_force_stall 
-0083 6fe0870b fetch 1 ,mem_usb_setup_bmrequesttype 
-0084 c0000086 beq out_device ,p_usb0_request_set_feature_out_device 
-0085 2020721e branch usb0_request_set_feature + 6 
+0080 6fe08711 fetch 1 ,mem_usb_setup_blength 
+0081 c0807111 bne 0 ,usb0_force_stall 
+0082 6fe08712 fetch 1 ,mem_usb_setup_blengthh 
+0083 c0807111 bne 0 ,usb0_force_stall 
+0084 6fe0870b fetch 1 ,mem_usb_setup_bmrequesttype 
+0085 c0000087 beq out_device ,p_usb0_request_set_feature_out_device 
+0086 2020721e branch usb0_request_set_feature + 6 
 
 p_usb0_request_set_feature_out_device:
-0086 6fe0870d fetch 1 ,mem_usb_setup_bvalue 
-0087 c080f111 bne device_remote_wakeup ,usb0_force_stall 
-0088 20405191 call dongle_set_pc_sleep_flag 
-0089 6ff08c00 fetch 1 ,core_usb_config 
-008a 79207e07 set1 7 ,pdata 
-008b 67f08c00 store 1 ,core_usb_config 
-008c 70079f01 jam 1 ,mem_usb_remote_wakeup 
-008d 70079700 jam 0 ,mem_usb_tx_win_enable 
-008e 20207116 branch usb0_reply_zerolen 
+0087 6fe0870d fetch 1 ,mem_usb_setup_bvalue 
+0088 c080f111 bne device_remote_wakeup ,usb0_force_stall 
+0089 20405191 call dongle_set_pc_sleep_flag 
+008a 6ff08c00 fetch 1 ,core_usb_config 
+008b 79207e07 set1 7 ,pdata 
+008c 67f08c00 store 1 ,core_usb_config 
+008d 70079f01 jam 1 ,mem_usb_remote_wakeup 
+008e 70079700 jam 0 ,mem_usb_tx_win_enable 
+008f 20207116 branch usb0_reply_zerolen 
 
 p_usb_wakeup_timer_reinit:
-008f 70079e03 jam usb_sleep ,mem_usb_state 
-0090 2040742d call timer_reinit 
-0091 58001388 setarg timer_wakeup_delay 
-0092 d8e0000f arg usb_timer_wakeup ,queue 
-0093 20207420 branch timer_init 
+0090 70079e03 jam usb_sleep ,mem_usb_state 
+0091 2040742d call timer_reinit 
+0092 58001388 setarg timer_wakeup_delay 
+0093 d8e0000f arg usb_timer_wakeup ,queue 
+0094 20207420 branch timer_init 
+
+p_dongle_init:
+0095 580050cc setarg dongle_dispatch 
+0096 67e1452b store 2 ,mem_cb_24g_receive_process 
+0097 580051b4 setarg dongle_g24_mouse 
+0098 67e1452f store 2 ,mem_cb_24g_data_device1 
+0099 580051c5 setarg dongle_g24_kb 
+009a 67e14531 store 2 ,mem_cb_24g_data_device2 
+009b 5800009d setarg p_dongle_ackpayload_prep 
+009c 202050bf branch dongle_init + 7 
+
+p_dongle_ackpayload_prep:
+009d 6fe0c4d4 fetch 1 ,mem_24g_data_type 
+009e c00080a0 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+009f c00100a3 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+
+p_dongle_ackpayload_prep_mouse:
+00a0 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+00a1 c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+00a2 202000a5 branch p_dongle_ackpayload_prep_end 
+
+p_dongle_ackpayload_prep_keyboard:
+00a3 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+00a4 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+
+p_dongle_ackpayload_prep_end:
+00a5 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
+00a6 c000d1a8 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+00a7 c00180a9 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+00a8 20600000 rtn 
+
+p_dongle_g24_kb_led_ackpayload_prep:
+00a9 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
+00aa c000c984 beq datatype_device1 ,g24_bind_ackpayload_prep + 1 
+00ab c07fc984 beq datatype_attemp ,g24_bind_ackpayload_prep + 1 
+00ac 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
 
 p_usb_isr:
-0094 6ff08c23 fetch 1 ,core_usb_status 
-0095 2feffe03 isolate1 usb_status_reset ,pdata 
-0096 2040f03f call usb_init ,true 
-0097 6ff08c23 fetch 1 ,core_usb_status 
-0098 2feffe01 isolate1 usb_status_suspend ,pdata 
-0099 204080a2 call p_usb_set_suspend ,true 
-009a 6ff08c23 fetch 1 ,core_usb_status 
-009b 67f08c23 store 1 ,core_usb_status 
-009c 67e0855e store 1 ,mem_usb_status 
-009d 2040709a call usb_nak_state_judge 
-009e 204070c1 call usb_rx 
-009f 204072d2 call usb0_tx 
-00a0 2040731a call usb_tx 
-00a1 20207092 branch usb_nak_state 
+00ad 6ff08c23 fetch 1 ,core_usb_status 
+00ae 2feffe03 isolate1 usb_status_reset ,pdata 
+00af 2040f03f call usb_init ,true 
+00b0 6ff08c23 fetch 1 ,core_usb_status 
+00b1 2feffe01 isolate1 usb_status_suspend ,pdata 
+00b2 204080bb call p_usb_set_suspend ,true 
+00b3 6ff08c23 fetch 1 ,core_usb_status 
+00b4 67f08c23 store 1 ,core_usb_status 
+00b5 67e0855e store 1 ,mem_usb_status 
+00b6 2040709a call usb_nak_state_judge 
+00b7 204070c1 call usb_rx 
+00b8 204072d2 call usb0_tx 
+00b9 2040731a call usb_tx 
+00ba 20207092 branch usb_nak_state 
 
 p_usb_set_suspend:
-00a2 6fe08797 fetch 1 ,mem_usb_tx_win_enable 
-00a3 c0528034 beq p_usb_set_suspend_win ,blank 
-00a4 2020008f branch p_usb_wakeup_timer_reinit 
+00bb 6fe08797 fetch 1 ,mem_usb_tx_win_enable 
+00bc c05f0034 beq p_usb_set_suspend_win ,blank 
+00bd 20200090 branch p_usb_wakeup_timer_reinit 
 
 p_usb_set_suspend_win:
-00a5 6fe0879f fetch 1 ,mem_usb_remote_wakeup 
-00a6 207a0000 rtn blank 
-00a7 2020008f branch p_usb_wakeup_timer_reinit 
+00be 6fe0879f fetch 1 ,mem_usb_remote_wakeup 
+00bf 207a0000 rtn blank 
+00c0 20200090 branch p_usb_wakeup_timer_reinit 
 
 p_g24_search_mode_auto:
-00a8 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00a9 c1838000 rtnne dongle_search 
-00aa 204000ac call p_g24_search_mode_init 
-00ab 20204b00 branch g24_search_mode_auto + 4 
+00c1 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00c2 c1838000 rtnne dongle_search 
+00c3 204000c5 call p_g24_search_mode_init 
+00c4 20204b00 branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00ac 6fe0c560 fetch 1 ,mem_24g_mode_init 
-00ad c3838000 rtnbit1 dongle_search 
-00ae 79207e07 set1 dongle_search ,pdata 
-00af 67e0c560 store 1 ,mem_24g_mode_init 
-00b0 6fe0c56e fetch 1 ,mem_tx_power_temp 
-00b1 67e0c116 store 1 ,mem_tx_power 
-00b2 20204af0 branch g24_search_mode_init + 4 
+00c5 6fe0c560 fetch 1 ,mem_24g_mode_init 
+00c6 c3838000 rtnbit1 dongle_search 
+00c7 79207e07 set1 dongle_search ,pdata 
+00c8 67e0c560 store 1 ,mem_24g_mode_init 
+00c9 6fe0c56e fetch 1 ,mem_tx_power_temp 
+00ca 67e0c116 store 1 ,mem_tx_power 
+00cb 20204af0 branch g24_search_mode_init + 4 
 
 p_g24_mode_switch_bind_search:
-00b3 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00b4 c1000000 rtneq dongle_work 
-00b5 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-00b6 247a0000 nrtn blank 
-00b7 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-00b8 247a0000 nrtn blank 
-00b9 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
-00ba 207a0000 rtn blank 
-00bb 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
-00bc c1800000 rtnne 0 
-00bd 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
-00be c1800000 rtnne 0 
-00bf 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
-00c0 2fe00603 compare 3 ,pdata ,3 
-00c1 2020cac1 branch g24_mode_b_s_switch_exit ,true 
-00c2 204048be call g24_timer_check 
-00c3 24740000 nrtn user 
-00c4 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-00c5 1fe0fe01 increase 1 ,pdata 
-00c6 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
-00c7 d84007d0 arg 0x7d0 ,temp 
-00c8 98467c00 isub temp ,null 
-00c9 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
-00ca 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
-00cb 1fe0fe01 increase 1 ,pdata 
-00cc 1fe17e01 and_into 1 ,pdata 
-00cd 67e0c574 store 1 ,mem_24g_b_s_time_slice 
-00ce c0004b88 beq 0 ,g24_search_mode_enable 
-00cf 20204abc branch g24_mode_switch_bind_search_next + 1 
+00cc 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00cd c1000000 rtneq dongle_work 
+00ce 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+00cf 247a0000 nrtn blank 
+00d0 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00d1 247a0000 nrtn blank 
+00d2 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
+00d3 207a0000 rtn blank 
+00d4 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
+00d5 c1800000 rtnne 0 
+00d6 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00d7 c1800000 rtnne 0 
+00d8 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
+00d9 2fe00603 compare 3 ,pdata ,3 
+00da 2020cac1 branch g24_mode_b_s_switch_exit ,true 
+00db 204048be call g24_timer_check 
+00dc 24740000 nrtn user 
+00dd 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+00de 1fe0fe01 increase 1 ,pdata 
+00df 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
+00e0 d84007d0 arg 0x7d0 ,temp 
+00e1 98467c00 isub temp ,null 
+00e2 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
+00e3 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
+00e4 1fe0fe01 increase 1 ,pdata 
+00e5 1fe17e01 and_into 1 ,pdata 
+00e6 67e0c574 store 1 ,mem_24g_b_s_time_slice 
+00e7 c0004b88 beq 0 ,g24_search_mode_enable 
+00e8 20204abc branch g24_mode_switch_bind_search_next + 1 
 
 p_g24_bind_data_parse_next:
-00d0 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00d1 c05549a2 beq datatype_bind ,g24_bind_first_step 
-00d2 c02ac9b3 beq datatype_config ,g24_bind_second_step 
-00d3 c01149d4 beq datatype_ok ,g24_bind_third_step 
-00d4 c07f80eb beq datatype_attemp ,p_g24_data_attemp 
-00d5 20600000 rtn 
+00e9 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00ea c05549a2 beq datatype_bind ,g24_bind_first_step 
+00eb c02ac9b3 beq datatype_config ,g24_bind_second_step 
+00ec c01149d4 beq datatype_ok ,g24_bind_third_step 
+00ed c07f8104 beq datatype_attemp ,p_g24_data_attemp 
+00ee 20600000 rtn 
 
 p_g24_receive_packet_start_next:
-00d6 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00d7 c00080db beq datatype_device1 ,p_g24_data_device1 
-00d8 c0014a4e beq datatype_device2 ,g24_data_device2 
-00d9 c07f80e9 beq datatype_attemp ,p_g24_data_receive_attemp 
-00da 20204a39 branch g24_rx_interrupt_clear 
+00ef 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00f0 c00080f4 beq datatype_device1 ,p_g24_data_device1 
+00f1 c0014a4e beq datatype_device2 ,g24_data_device2 
+00f2 c07f8102 beq datatype_attemp ,p_g24_data_receive_attemp 
+00f3 20204a39 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-00db 20404a08 call g24_binding_dvc1_living 
-00dc 20404ba2 call g24_ch_timer_reinit 
-00dd 6fe0c555 fetch 1 ,mem_24g_abort_packet 
-00de 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
-00df 284ffe03 isolate1 bit_abort ,temp 
-00e0 7920fe00 setflag true ,0 ,pdata 
-00e1 67e0c555 store 1 ,mem_24g_abort_packet 
-00e2 c00080e4 beq 1 ,p_g24_data_attemp_device1_abort 
-00e3 20204a47 branch g24_data_device1 + 8 
+00f4 20404a08 call g24_binding_dvc1_living 
+00f5 20404ba2 call g24_ch_timer_reinit 
+00f6 6fe0c555 fetch 1 ,mem_24g_abort_packet 
+00f7 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
+00f8 284ffe03 isolate1 bit_abort ,temp 
+00f9 7920fe00 setflag true ,0 ,pdata 
+00fa 67e0c555 store 1 ,mem_24g_abort_packet 
+00fb c00080fd beq 1 ,p_g24_data_attemp_device1_abort 
+00fc 20204a47 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-00e4 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-00e5 247a0000 nrtn blank 
-00e6 70452901 jam 1 ,mem_24g_device1_bind_disable 
-00e7 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
-00e8 20204c14 branch g24_store_device1_addr 
+00fd 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+00fe 247a0000 nrtn blank 
+00ff 70452901 jam 1 ,mem_24g_device1_bind_disable 
+0100 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
+0101 20204c14 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-00e9 20404a16 call g24_bind_device_status 
-00ea 202000eb branch p_g24_data_attemp 
+0102 20404a16 call g24_bind_device_status 
+0103 20200104 branch p_g24_data_attemp 
 
 p_g24_data_attemp:
-00eb 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
-00ec c00080ef beq datatype_device1 ,p_g24_data_attemp_device1 
-00ed c00100f2 beq datatype_device2 ,p_g24_data_attemp_device2 
-00ee 20600000 rtn 
+0104 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
+0105 c0008108 beq datatype_device1 ,p_g24_data_attemp_device1 
+0106 c001010b beq datatype_device2 ,p_g24_data_attemp_device2 
+0107 20600000 rtn 
 
 p_g24_data_attemp_device1:
-00ef 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-00f0 247a0000 nrtn blank 
-00f1 20204c12 branch g24_data_attemp_device1 
+0108 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+0109 247a0000 nrtn blank 
+010a 20204c12 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-00f2 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
-00f3 247a0000 nrtn blank 
-00f4 20204c16 branch g24_data_attemp_device2 
+010b 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
+010c 247a0000 nrtn blank 
+010d 20204c16 branch g24_data_attemp_device2 
               org 0x3800
 
 start:
Index: program/patch.prog
===================================================================
--- /1306ac/branch/dongle/usb_1M_YJX/program/patch.prog	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M_YJX/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_2,p_usb_isr
 	beq patch18_3,p_usb_init
 	beq patch19_0,p_usb_out_standard_req
@@ -73,11 +74,11 @@
 p_dongle_write_kb_bind_status:
 	arg 1,loopcnt
 	arg mem_dg_kb_bind_flag,rega
-	arg DONGLE_KB_BIND_OTP_OFFECT,pdata
+	arg DONGLE_KB_BIND_OTP_OFFECT_NEW,pdata
 	branch otp_write
 
 p_dongle_read_kb_bind_status:
-	setarg DONGLE_KB_BIND_OTP_OFFECT
+	setarg DONGLE_KB_BIND_OTP_OFFECT_NEW
 	arg mem_dg_kb_bind_flag,rega
 	arg 1,temp
 	branch otpd_read_data_with_pwr_operation
@@ -206,6 +207,41 @@
 	arg USB_TIMER_WAKEUP,queue
 	branch timer_init
 
+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
+	branch dongle_init+7
+
+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_usb_isr:
 	fetch 1,core_usb_status
 	isolate1 USB_STATUS_RESET,pdata
Index: sched/dongle.dat
===================================================================
--- /1306ac/branch/dongle/usb_1M_YJX/sched/dongle.dat	(revision 1015)
+++ /1306ac/branch/dongle/usb_1M_YJX/sched/dongle.dat	(working copy)
@@ -10,11 +10,11 @@
 #sys config
 #bit4:enable kb icon
 #bit0:enable new revision
-mem_dg_sys_config:10
+mem_dg_sys_config:00
 
 
 #rf config
-mem_24g_lap:36 f0 10 30 12 13#low 4B used for 24g rxaddr
+mem_24g_lap:31 f5 10 30 12 13#low 4B used for 24g rxaddr
 #mem_24g_tx_phy:02#0x01:1M/0x02:2M/0x04:S2/0x84:S8
 #mem_24g_rx_phy:02#0x01:1M/0x02:2M/0x04:S2/0x84:S8
 #mem_24g_disable_fec1:01
