cnss_plat_ipc_service_v01.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */
  3. #ifndef CNSS_PLAT_IPC_SERVICE_V01_H
  4. #define CNSS_PLAT_IPC_SERVICE_V01_H
  5. #include <linux/soc/qcom/qmi.h>
  6. #define CNSS_PLATFORM_SERVICE_ID_V01 0x42E
  7. #define CNSS_PLATFORM_SERVICE_VERS_V01 0x01
  8. #define CNSS_PLAT_IPC_QMI_REG_CLIENT_RESP_V01 0x0006
  9. #define CNSS_PLAT_IPC_QMI_FILE_DOWNLOAD_REQ_V01 0x0003
  10. #define CNSS_PLAT_IPC_QMI_FILE_UPLOAD_IND_V01 0x0004
  11. #define CNSS_PLAT_IPC_QMI_FILE_DOWNLOAD_IND_V01 0x0002
  12. #define CNSS_PLAT_IPC_QMI_REG_CLIENT_REQ_V01 0x0006
  13. #define CNSS_PLAT_IPC_QMI_INIT_SETUP_REQ_V01 0x0001
  14. #define CNSS_PLAT_IPC_QMI_FILE_UPLOAD_REQ_V01 0x0005
  15. #define CNSS_PLAT_IPC_QMI_FILE_DOWNLOAD_RESP_V01 0x0003
  16. #define CNSS_PLAT_IPC_QMI_FILE_UPLOAD_RESP_V01 0x0005
  17. #define CNSS_PLAT_IPC_QMI_INIT_SETUP_RESP_V01 0x0001
  18. #define CNSS_PLAT_IPC_QMI_MAX_FILE_NAME_LEN_V01 32
  19. #define CNSS_PLAT_IPC_QMI_MAX_DATA_SIZE_V01 61440
  20. #define CNSS_PLAT_IPC_QMI_MAX_MSG_SIZE_V01 65535
  21. #define CNSS_PLAT_IPC_QMI_DRIVER_CBC_DONE_V01 ((u64)0x01ULL)
  22. #define CNSS_PLAT_IPC_QMI_DRIVER_WLAN_ACTIVE_V01 ((u64)0x02ULL)
  23. enum cnss_plat_ipc_qmi_client_id_v01 {
  24. CNSS_PLAT_IPC_QMI_CLIENT_ID_MIN_VAL_V01 = INT_MIN,
  25. CNSS_PLAT_IPC_BT_QMI_CLIENT_V01 = 0,
  26. CNSS_PLAT_IPC_DAEMON_QMI_CLIENT_V01 = 1,
  27. CNSS_PLAT_IPC_QMI_CLIENT_ID_MAX_VAL_V01 = INT_MAX,
  28. };
  29. struct cnss_plat_ipc_qmi_init_setup_req_msg_v01 {
  30. u8 dms_mac_addr_supported;
  31. u8 qdss_hw_trace_override;
  32. u32 cal_file_available_bitmask;
  33. };
  34. #define CNSS_PLAT_IPC_QMI_INIT_SETUP_REQ_MSG_V01_MAX_MSG_LEN 15
  35. extern struct qmi_elem_info cnss_plat_ipc_qmi_init_setup_req_msg_v01_ei[];
  36. struct cnss_plat_ipc_qmi_init_setup_resp_msg_v01 {
  37. struct qmi_response_type_v01 resp;
  38. u64 drv_status;
  39. };
  40. #define CNSS_PLAT_IPC_QMI_INIT_SETUP_RESP_MSG_V01_MAX_MSG_LEN 18
  41. extern struct qmi_elem_info cnss_plat_ipc_qmi_init_setup_resp_msg_v01_ei[];
  42. struct cnss_plat_ipc_qmi_file_download_ind_msg_v01 {
  43. char file_name[CNSS_PLAT_IPC_QMI_MAX_FILE_NAME_LEN_V01 + 1];
  44. u32 file_id;
  45. };
  46. #define CNSS_PLAT_IPC_QMI_FILE_DOWNLOAD_IND_MSG_V01_MAX_MSG_LEN 42
  47. extern struct qmi_elem_info cnss_plat_ipc_qmi_file_download_ind_msg_v01_ei[];
  48. struct cnss_plat_ipc_qmi_file_download_req_msg_v01 {
  49. u32 file_id;
  50. u32 file_size;
  51. u8 end;
  52. u32 seg_index;
  53. u32 seg_buf_len;
  54. u8 seg_buf[CNSS_PLAT_IPC_QMI_MAX_DATA_SIZE_V01];
  55. };
  56. #define CNSS_PLAT_IPC_QMI_FILE_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN 61470
  57. extern struct qmi_elem_info cnss_plat_ipc_qmi_file_download_req_msg_v01_ei[];
  58. struct cnss_plat_ipc_qmi_file_download_resp_msg_v01 {
  59. struct qmi_response_type_v01 resp;
  60. u32 file_id;
  61. u32 seg_index;
  62. };
  63. #define CNSS_PLAT_IPC_QMI_FILE_DOWNLOAD_RESP_MSG_V01_MAX_MSG_LEN 21
  64. extern struct qmi_elem_info cnss_plat_ipc_qmi_file_download_resp_msg_v01_ei[];
  65. struct cnss_plat_ipc_qmi_file_upload_ind_msg_v01 {
  66. char file_name[CNSS_PLAT_IPC_QMI_MAX_FILE_NAME_LEN_V01 + 1];
  67. u32 file_id;
  68. u32 file_size;
  69. };
  70. #define CNSS_PLAT_IPC_QMI_FILE_UPLOAD_IND_MSG_V01_MAX_MSG_LEN 49
  71. extern struct qmi_elem_info cnss_plat_ipc_qmi_file_upload_ind_msg_v01_ei[];
  72. struct cnss_plat_ipc_qmi_file_upload_req_msg_v01 {
  73. u32 file_id;
  74. u32 seg_index;
  75. };
  76. #define CNSS_PLAT_IPC_QMI_FILE_UPLOAD_REQ_MSG_V01_MAX_MSG_LEN 14
  77. extern struct qmi_elem_info cnss_plat_ipc_qmi_file_upload_req_msg_v01_ei[];
  78. struct cnss_plat_ipc_qmi_file_upload_resp_msg_v01 {
  79. struct qmi_response_type_v01 resp;
  80. u32 file_id;
  81. u8 end;
  82. u32 seg_index;
  83. u32 seg_buf_len;
  84. u8 seg_buf[CNSS_PLAT_IPC_QMI_MAX_DATA_SIZE_V01];
  85. };
  86. #define CNSS_PLAT_IPC_QMI_FILE_UPLOAD_RESP_MSG_V01_MAX_MSG_LEN 61470
  87. extern struct qmi_elem_info cnss_plat_ipc_qmi_file_upload_resp_msg_v01_ei[];
  88. struct cnss_plat_ipc_qmi_reg_client_req_msg_v01 {
  89. u8 client_id_valid;
  90. enum cnss_plat_ipc_qmi_client_id_v01 client_id;
  91. };
  92. #define CNSS_PLAT_IPC_QMI_REG_CLIENT_REQ_MSG_V01_MAX_MSG_LEN 7
  93. extern struct qmi_elem_info cnss_plat_ipc_qmi_reg_client_req_msg_v01_ei[];
  94. struct cnss_plat_ipc_qmi_reg_client_resp_msg_v01 {
  95. struct qmi_response_type_v01 resp;
  96. };
  97. #define CNSS_PLAT_IPC_QMI_REG_CLIENT_RESP_MSG_V01_MAX_MSG_LEN 7
  98. extern struct qmi_elem_info cnss_plat_ipc_qmi_reg_client_resp_msg_v01_ei[];
  99. #endif