struct rtl_btc_ops *btc_ops = rtlpriv->btcoexist.btc_ops;
 
        switch (c2h_cmd_id) {
-       case C2H_8192E_DBG:
+       case C2H_DBG:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_DBG!!\n");
                break;
-       case C2H_8192E_TXBF:
+       case C2H_TXBF:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8192E_TXBF!!\n");
                break;
-       case C2H_8192E_TX_REPORT:
+       case C2H_TX_REPORT:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE ,
                         "[C2H], C2H_8723BE_TX_REPORT!\n");
                rtl_tx_report_handler(hw, tmp_buf, c2h_cmd_len);
                break;
-       case C2H_8192E_BT_INFO:
+       case C2H_BT_INFO:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_BT_INFO!!\n");
                if (rtlpriv->cfg->ops->get_btc_status())
                        btc_ops->btc_btinfo_notify(rtlpriv, tmp_buf,
                                                   c2h_cmd_len);
                break;
-       case C2H_8192E_BT_MP:
+       case C2H_BT_MP:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_BT_MP!!\n");
                if (rtlpriv->cfg->ops->get_btc_status())
                        btc_ops->btc_btmpinfo_notify(rtlpriv, tmp_buf,
                                                     c2h_cmd_len);
                break;
-       case C2H_8192E_RA_RPT:
+       case C2H_RA_RPT:
                _rtl92ee_c2h_ra_report_handler(hw, tmp_buf, c2h_cmd_len);
                break;
        default:
                      "[C2H packet], Content Hex:\n", tmp_buf, c2h_cmd_len);
 
        switch (c2h_cmd_id) {
-       case C2H_8192E_BT_INFO:
-       case C2H_8192E_BT_MP:
+       case C2H_BT_INFO:
+       case C2H_BT_MP:
                rtl_c2hcmd_enqueue(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf);
                break;
        default:
 
        MAX_92E_H2CCMD
 };
 
-enum rtl8192e_c2h_evt {
-       C2H_8192E_DBG = 0,
-       C2H_8192E_LB = 1,
-       C2H_8192E_TXBF = 2,
-       C2H_8192E_TX_REPORT = 3,
-       C2H_8192E_BT_INFO = 9,
-       C2H_8192E_BT_MP = 11,
-       C2H_8192E_RA_RPT = 12,
-       MAX_8192E_C2HEVENT
-};
-
 #define pagenum_128(_len)      \
        (u32)(((_len) >> 7) + ((_len) & 0x7F ? 1 : 0))
 
 
        struct rtl_btc_ops *btc_ops = rtlpriv->btcoexist.btc_ops;
 
        switch (c2h_cmd_id) {
-       case C2H_8723B_DBG:
+       case C2H_DBG:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_DBG!!\n");
                break;
-       case C2H_8723B_TX_REPORT:
+       case C2H_TX_REPORT:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_TX_REPORT!\n");
                rtl_tx_report_handler(hw, tmp_buf, c2h_cmd_len);
                break;
-       case C2H_8723B_BT_INFO:
+       case C2H_BT_INFO:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_BT_INFO!!\n");
                if (rtlpriv->cfg->ops->get_btc_status())
                        btc_ops->btc_btinfo_notify(rtlpriv, tmp_buf,
                                                   c2h_cmd_len);
                break;
-       case C2H_8723B_BT_MP:
+       case C2H_BT_MP:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8723BE_BT_MP!!\n");
                if (rtlpriv->cfg->ops->get_btc_status())
                      "[C2H packet], Content Hex:\n", tmp_buf, c2h_cmd_len);
 
        switch (c2h_cmd_id) {
-       case C2H_8723B_BT_INFO:
-       case C2H_8723B_BT_MP:
+       case C2H_BT_INFO:
+       case C2H_BT_MP:
                rtl_c2hcmd_enqueue(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf);
                break;
 
 
        MAX_8723B_H2CCMD
 };
 
-enum rtl8723b_c2h_evt {
-       C2H_8723B_DBG = 0,
-       C2H_8723B_LB = 1,
-       C2H_8723B_TXBF = 2,
-       C2H_8723B_TX_REPORT = 3,
-       C2H_8723B_BT_INFO = 9,
-       C2H_8723B_BT_MP = 11,
-       MAX_8723B_C2HEVENT
-};
-
 #define pagenum_128(_len) (u32)(((_len)>>7) + ((_len)&0x7F ? 1 : 0))
 
 
 
        struct rtl_btc_ops *btc_ops = rtlpriv->btcoexist.btc_ops;
 
        switch (c2h_cmd_id) {
-       case C2H_8812_DBG:
+       case C2H_DBG:
                RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "[C2H], C2H_8812_DBG!!\n");
                break;
-       case C2H_8812_TX_REPORT:
+       case C2H_TX_REPORT:
                rtl_tx_report_handler(hw, tmp_buf, c2h_cmd_len);
                break;
-       case C2H_8812_RA_RPT:
+       case C2H_RA_RPT:
                rtl8821ae_c2h_ra_report_handler(hw, tmp_buf, c2h_cmd_len);
                break;
-       case C2H_8812_BT_INFO:
+       case C2H_BT_INFO:
                RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD,
                         "[C2H], C2H_8812_BT_INFO!!\n");
                if (rtlpriv->cfg->ops->get_btc_status())
                        btc_ops->btc_btinfo_notify(rtlpriv, tmp_buf,
                                                   c2h_cmd_len);
                break;
-       case C2H_8812_BT_MP:
+       case C2H_BT_MP:
                RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE,
                         "[C2H], C2H_8812_BT_MP!!\n");
                if (rtlpriv->cfg->ops->get_btc_status())
                      "[C2H packet], Content Hex:\n", tmp_buf, c2h_cmd_len);
 
        switch (c2h_cmd_id) {
-       case C2H_8812_BT_INFO:
+       case C2H_BT_INFO:
                rtl_c2hcmd_enqueue(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf);
                break;
 
 
 #define        FW_PWR_STATE_ACTIVE     ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE))
 #define        FW_PWR_STATE_RF_OFF     0
 
-enum rtl8812_c2h_evt {
-       C2H_8812_DBG = 0,
-       C2H_8812_LB = 1,
-       C2H_8812_TXBF = 2,
-       C2H_8812_TX_REPORT = 3,
-       C2H_8812_BT_INFO = 9,
-       C2H_8812_BT_MP = 11,
-       C2H_8812_RA_RPT = 12,
-
-       C2H_8812_FW_SWCHNL = 0x10,
-       C2H_8812_IQK_FINISH = 0x11,
-       MAX_8812_C2HEVENT
-};
-
 enum rtl8821a_h2c_cmd {
        H2C_8821AE_RSVDPAGE = 0,
        H2C_8821AE_MSRRPT = 1,
 
        H2C_BT_PORT_ID = 0x71,
 };
 
+enum rtl_c2h_evt_v1 {
+       C2H_DBG = 0,
+       C2H_LB = 1,
+       C2H_TXBF = 2,
+       C2H_TX_REPORT = 3,
+       C2H_BT_INFO = 9,
+       C2H_BT_MP = 11,
+       C2H_RA_RPT = 12,
+
+       C2H_FW_SWCHNL = 0x10,
+       C2H_IQK_FINISH = 0x11,
+
+       C2H_EXT_V2 = 0xFF,
+};
+
+enum rtl_c2h_evt_v2 {
+       C2H_V2_CCX_RPT = 0x0F,
+};
+
 #define GET_TX_REPORT_SN_V1(c2h)       (c2h[6])
 #define GET_TX_REPORT_ST_V1(c2h)       (c2h[0] & 0xC0)
 #define GET_TX_REPORT_RETRY_V1(c2h)    (c2h[2] & 0x3F)