blob: c4c42cec5d4c7a2ae07c87a9bc0bfae700d7a4c5 [file] [log] [blame]
Sandeep Singh1edc2cf2019-12-06 15:52:54 +05301/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
4 */
5
6#ifndef __ICNSS_QMI_H__
7#define __ICNSS_QMI_H__
8
Mohammed Siddiq049053c2020-04-07 21:33:26 +05309#define QDSS_TRACE_SEG_LEN_MAX 32
10#define QDSS_TRACE_FILE_NAME_MAX 16
11
12struct icnss_mem_seg {
13 u64 addr;
14 u32 size;
15};
16
17struct icnss_qmi_event_qdss_trace_save_data {
18 u32 total_size;
19 u32 mem_seg_len;
20 struct icnss_mem_seg mem_seg[QDSS_TRACE_SEG_LEN_MAX];
21 char file_name[QDSS_TRACE_FILE_NAME_MAX + 1];
22};
23
Sandeep Singh1edc2cf2019-12-06 15:52:54 +053024#ifndef CONFIG_ICNSS2_QMI
25
26static inline int wlfw_ind_register_send_sync_msg(struct icnss_priv *priv)
27{
28 return 0;
29}
30static inline int icnss_connect_to_fw_server(struct icnss_priv *priv,
31 void *data)
32{
33 return 0;
34}
35static inline int wlfw_msa_mem_info_send_sync_msg(struct icnss_priv *priv)
36{
37 return 0;
38}
39static inline int wlfw_msa_ready_send_sync_msg(struct icnss_priv *priv)
40{
41 return 0;
42}
43static inline int wlfw_cap_send_sync_msg(struct icnss_priv *priv)
44{
45 return 0;
46}
47static inline int wlfw_dynamic_feature_mask_send_sync_msg(
48 struct icnss_priv *priv, uint64_t dynamic_feature_mask)
49{
50 return 0;
51}
52static inline int icnss_clear_server(struct icnss_priv *priv)
53{
54 return 0;
55}
56static inline int wlfw_rejuvenate_ack_send_sync_msg(struct icnss_priv *priv)
57{
58 return 0;
59}
60static inline void icnss_ignore_fw_timeout(bool ignore) {}
61static int wlfw_send_modem_shutdown_msg(struct icnss_priv *priv)
62{
63 return 0;
64}
65static inline int wlfw_ini_send_sync_msg(struct icnss_priv *priv,
66 uint8_t fw_log_mode)
67{
68 return 0;
69}
70static inline int wlfw_athdiag_read_send_sync_msg(struct icnss_priv *priv,
71 uint32_t offset, uint32_t mem_type,
72 uint32_t data_len, uint8_t *data)
73{
74 return 0;
75}
76static inline int wlfw_athdiag_write_send_sync_msg(struct icnss_priv *priv,
77 uint32_t offset, uint32_t mem_type,
78 uint32_t data_len, uint8_t *data)
79{
80 return 0;
81}
82static inline int wlfw_wlan_mode_send_sync_msg(struct icnss_priv *priv,
83 enum icnss_driver_mode mode)
84{
85 return 0;
86}
87static int wlfw_host_cap_send_sync(struct icnss_priv *priv)
88{
89 return 0;
90}
91static inline int icnss_send_wlan_enable_to_fw(struct icnss_priv *priv,
92 struct icnss_wlan_enable_cfg *config,
93 enum icnss_driver_mode mode,
94 const char *host_version)
95{
96 return 0;
97}
98static inline int icnss_send_wlan_disable_to_fw(struct icnss_priv *priv)
99{
100 return 0;
101}
102static inline int icnss_register_fw_service(struct icnss_priv *priv)
103{
104 return 0;
105}
106static inline void icnss_unregister_fw_service(struct icnss_priv *priv) {}
107static inline int icnss_send_vbatt_update(struct icnss_priv *priv,
108 uint64_t voltage_uv)
109{
110 return 0;
111}
112
113static inline int wlfw_device_info_send_msg(struct icnss_priv *priv)
114{
115 return 0;
116}
117int wlfw_wlan_mode_send_sync_msg(struct icnss_priv *priv,
118 enum wlfw_driver_mode_enum_v01 mode)
119{
120 return 0;
121}
122int icnss_wlfw_bdf_dnld_send_sync(struct icnss_priv *priv, u32 bdf_type)
123{
124 return 0;
125}
Mohammed Siddiq049053c2020-04-07 21:33:26 +0530126
127int wlfw_qdss_trace_mem_info_send_sync(struct icnss_priv *priv)
128{
129 return 0;
130}
Mohammed Siddiq8dad2db2020-04-17 15:27:57 +0530131
132int wlfw_exit_power_save_send_msg(struct icnss_priv *priv)
133{
134 return 0;
135}
Naman Padhiar80389af2020-04-17 21:50:20 +0530136
137int icnss_wlfw_get_info_send_sync(struct icnss_priv *priv, int type,
138 void *cmd, int cmd_len)
139{
140 return 0;
141}
Sandeep Singh1edc2cf2019-12-06 15:52:54 +0530142#else
143int wlfw_ind_register_send_sync_msg(struct icnss_priv *priv);
144int icnss_connect_to_fw_server(struct icnss_priv *priv, void *data);
145int wlfw_msa_mem_info_send_sync_msg(struct icnss_priv *priv);
146int wlfw_msa_ready_send_sync_msg(struct icnss_priv *priv);
147int wlfw_cap_send_sync_msg(struct icnss_priv *priv);
148int icnss_qmi_pin_connect_result_ind(struct icnss_priv *priv,
149 void *msg, unsigned int msg_len);
150int wlfw_dynamic_feature_mask_send_sync_msg(struct icnss_priv *priv,
151 uint64_t dynamic_feature_mask);
152int icnss_clear_server(struct icnss_priv *priv);
153int wlfw_rejuvenate_ack_send_sync_msg(struct icnss_priv *priv);
154void icnss_ignore_fw_timeout(bool ignore);
155int wlfw_send_modem_shutdown_msg(struct icnss_priv *priv);
156int wlfw_ini_send_sync_msg(struct icnss_priv *priv, uint8_t fw_log_mode);
157int wlfw_athdiag_read_send_sync_msg(struct icnss_priv *priv,
158 uint32_t offset, uint32_t mem_type,
159 uint32_t data_len, uint8_t *data);
160int wlfw_athdiag_write_send_sync_msg(struct icnss_priv *priv,
161 uint32_t offset, uint32_t mem_type,
162 uint32_t data_len, uint8_t *data);
163int icnss_send_wlan_enable_to_fw(struct icnss_priv *priv,
164 struct icnss_wlan_enable_cfg *config,
165 enum icnss_driver_mode mode,
166 const char *host_version);
167int icnss_send_wlan_disable_to_fw(struct icnss_priv *priv);
168int icnss_register_fw_service(struct icnss_priv *priv);
169void icnss_unregister_fw_service(struct icnss_priv *priv);
170int icnss_send_vbatt_update(struct icnss_priv *priv, uint64_t voltage_uv);
171int wlfw_host_cap_send_sync(struct icnss_priv *priv);
172int wlfw_device_info_send_msg(struct icnss_priv *priv);
173int wlfw_wlan_mode_send_sync_msg(struct icnss_priv *priv,
174 enum wlfw_driver_mode_enum_v01 mode);
175int icnss_wlfw_bdf_dnld_send_sync(struct icnss_priv *priv, u32 bdf_type);
Mohammed Siddiq049053c2020-04-07 21:33:26 +0530176int wlfw_qdss_trace_mem_info_send_sync(struct icnss_priv *priv);
Mohammed Siddiq8dad2db2020-04-17 15:27:57 +0530177int wlfw_exit_power_save_send_msg(struct icnss_priv *priv);
Naman Padhiar80389af2020-04-17 21:50:20 +0530178int icnss_wlfw_get_info_send_sync(struct icnss_priv *priv, int type,
179 void *cmd, int cmd_len);
Sandeep Singh1edc2cf2019-12-06 15:52:54 +0530180#endif
181
182#endif /* __ICNSS_QMI_H__*/