INT32 wmt_idc_init(VOID) { INT32 iRet; osal_memset(&gWmtIdcInfo, 0, osal_sizeof(gWmtIdcInfo)); gWmtIdcInfo.iit.src_mod_id = AP_MOD_WMT; gWmtIdcInfo.iit.dest_mod_id = MD_MOD_EL1; gWmtIdcInfo.iit.sap_id = 0; gWmtIdcInfo.ops.rx_cb = wmt_idc_msg_from_lte_handing; iRet = mtk_conn_md_bridge_reg(gWmtIdcInfo.iit.src_mod_id, &gWmtIdcInfo.ops); if (iRet) { WMT_ERR_FUNC("mtk_conn_md_bridge_reg fail(%d)\n", iRet); return -1; } /* mtk_wcn_stp_flush_rx_queue(COEX_TASK_INDX); */ return 0; }
int conn_md_test(void) { #define PACKAGE_SIZE 100 ipc_ilm_t ilm; local_para_struct *p_buf_str; int i =0; int msg_len = 0; p_buf_str = kmalloc (sizeof (local_para_struct) + PACKAGE_SIZE, GFP_ATOMIC); if (NULL == p_buf_str) { CONN_MD_ERR_FUNC("kmalloc for local para ptr structure failed.\n"); return -1; } p_buf_str->msg_len = PACKAGE_SIZE; for (i = 0; i < PACKAGE_SIZE; i++) p_buf_str->data[i] = i; ilm.local_para_ptr = p_buf_str; g_ops.rx_cb = conn_md_test_rx_cb; mtk_conn_md_bridge_reg (0x800001, &g_ops); mtk_conn_md_bridge_reg (0x800005, &g_ops); mtk_conn_md_bridge_reg (0x800009, &g_ops); ilm.dest_mod_id = 0x800005; ilm.src_mod_id = 0x800001; ilm.msg_id = 0; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x800005; ilm.src_mod_id = 0x800009; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x800001; ilm.src_mod_id = 0x800009; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x80000a; ilm.src_mod_id = 0x800009; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x800009; ilm.src_mod_id = 0x80000a; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x800005; ilm.src_mod_id = 0x800001; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x800001; ilm.src_mod_id = 0x800005; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); ilm.dest_mod_id = 0x800001; ilm.src_mod_id = 0x80000a; ilm.msg_id++; msg_len += 10; msg_len = msg_len >= PACKAGE_SIZE ? PACKAGE_SIZE : msg_len; ilm.local_para_ptr->msg_len = msg_len; mtk_conn_md_bridge_send_msg (&ilm); kfree(p_buf_str); p_buf_str = NULL; conn_md_dmp_msg_queued(0, 0x80000a); mtk_conn_md_bridge_unreg(0x800001); conn_md_dmp_msg_queued(0, 0); conn_md_dmp_msg_active(0, 0); mtk_conn_md_bridge_unreg(0x800009); mtk_conn_md_bridge_unreg(0x80000a); conn_md_dmp_msg_queued(0, 0); conn_md_dmp_msg_active(0, 0); conn_md_dmp_msg_logged(0x800009, 0x800001); conn_md_dmp_msg_logged(0x800009, 0); conn_md_dmp_msg_logged(0, 0); conn_md_dmp_msg_logged(0x80000a, 0); return 0; }