conn_md_test.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #define DFT_TAG "[CONN_MD_EXP]"
  2. #include "conn_md_log.h"
  3. #include "conn_md_exp.h"
  4. #include "conn_md.h"
  5. CONN_MD_BRIDGE_OPS g_ops;
  6. static int conn_md_test_rx_cb(ipc_ilm_t *ilm);
  7. int conn_md_test(void)
  8. {
  9. #define PACKAGE_SIZE 100
  10. ipc_ilm_t ilm;
  11. local_para_struct *p_buf_str;
  12. int i = 0;
  13. int msg_len = 0;
  14. p_buf_str = kmalloc(sizeof(local_para_struct) + PACKAGE_SIZE, GFP_ATOMIC);
  15. if (NULL == p_buf_str) {
  16. CONN_MD_ERR_FUNC("kmalloc for local para ptr structure failed.\n");
  17. return -1;
  18. }
  19. p_buf_str->msg_len = PACKAGE_SIZE;
  20. for (i = 0; i < PACKAGE_SIZE; i++)
  21. p_buf_str->data[i] = i;
  22. ilm.local_para_ptr = p_buf_str;
  23. g_ops.rx_cb = conn_md_test_rx_cb;
  24. mtk_conn_md_bridge_reg(0x800001, &g_ops);
  25. mtk_conn_md_bridge_reg(0x800005, &g_ops);
  26. mtk_conn_md_bridge_reg(0x800009, &g_ops);
  27. ilm.dest_mod_id = 0x800005;
  28. ilm.src_mod_id = 0x800001;
  29. ilm.msg_id = 0;
  30. mtk_conn_md_bridge_send_msg(&ilm);
  31. ilm.dest_mod_id = 0x800005;
  32. ilm.src_mod_id = 0x800009;
  33. ilm.msg_id++;
  34. msg_len += 10;
  35. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  36. ilm.local_para_ptr->msg_len = msg_len;
  37. mtk_conn_md_bridge_send_msg(&ilm);
  38. ilm.dest_mod_id = 0x800001;
  39. ilm.src_mod_id = 0x800009;
  40. ilm.msg_id++;
  41. msg_len += 10;
  42. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  43. ilm.local_para_ptr->msg_len = msg_len;
  44. mtk_conn_md_bridge_send_msg(&ilm);
  45. ilm.dest_mod_id = 0x80000a;
  46. ilm.src_mod_id = 0x800009;
  47. ilm.msg_id++;
  48. msg_len += 10;
  49. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  50. ilm.local_para_ptr->msg_len = msg_len;
  51. mtk_conn_md_bridge_send_msg(&ilm);
  52. ilm.dest_mod_id = 0x800009;
  53. ilm.src_mod_id = 0x80000a;
  54. ilm.msg_id++;
  55. msg_len += 10;
  56. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  57. ilm.local_para_ptr->msg_len = msg_len;
  58. mtk_conn_md_bridge_send_msg(&ilm);
  59. ilm.dest_mod_id = 0x800005;
  60. ilm.src_mod_id = 0x800001;
  61. ilm.msg_id++;
  62. msg_len += 10;
  63. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  64. ilm.local_para_ptr->msg_len = msg_len;
  65. mtk_conn_md_bridge_send_msg(&ilm);
  66. ilm.dest_mod_id = 0x800001;
  67. ilm.src_mod_id = 0x800005;
  68. ilm.msg_id++;
  69. msg_len += 10;
  70. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  71. ilm.local_para_ptr->msg_len = msg_len;
  72. mtk_conn_md_bridge_send_msg(&ilm);
  73. ilm.dest_mod_id = 0x800001;
  74. ilm.src_mod_id = 0x80000a;
  75. ilm.msg_id++;
  76. msg_len += 10;
  77. msg_len = ((msg_len >= PACKAGE_SIZE) ? PACKAGE_SIZE : msg_len);
  78. ilm.local_para_ptr->msg_len = msg_len;
  79. mtk_conn_md_bridge_send_msg(&ilm);
  80. kfree(p_buf_str);
  81. p_buf_str = NULL;
  82. conn_md_dmp_msg_queued(0, 0x80000a);
  83. mtk_conn_md_bridge_unreg(0x800001);
  84. conn_md_dmp_msg_queued(0, 0);
  85. conn_md_dmp_msg_active(0, 0);
  86. mtk_conn_md_bridge_unreg(0x800009);
  87. mtk_conn_md_bridge_unreg(0x80000a);
  88. conn_md_dmp_msg_queued(0, 0);
  89. conn_md_dmp_msg_active(0, 0);
  90. conn_md_dmp_msg_logged(0x800009, 0x800001);
  91. conn_md_dmp_msg_logged(0x800009, 0);
  92. conn_md_dmp_msg_logged(0, 0);
  93. conn_md_dmp_msg_logged(0x80000a, 0);
  94. return 0;
  95. }
  96. static int conn_md_test_rx_cb(ipc_ilm_t *ilm)
  97. {
  98. int i = 0;
  99. pr_warn("%s, ilm:0x%p\n", __func__, ilm);
  100. pr_warn("%s, ilm:src_id(%d), dst_id(%d), msg_id(%d)\n", __func__,
  101. ilm->src_mod_id, ilm->dest_mod_id, ilm->msg_id);
  102. pr_warn("%s, local_para_ptr:0x%p, msg_len:%d\n", __func__, ilm->local_para_ptr,
  103. ilm->local_para_ptr->msg_len);
  104. for (i = 0; i < ilm->local_para_ptr->msg_len; i++) {
  105. pr_warn("%d ", ilm->local_para_ptr->data[i]);
  106. if ((0 != i) && (((1 + i) % 8) == 0))
  107. pr_warn("\n");
  108. }
  109. return 0;
  110. }