Merge "qcacmn: Add logs in wmi_unified_cmd_send()"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
5a9b87fd93
@@ -223,17 +223,24 @@ wmi_buf_t wmi_buf_alloc_fl(wmi_unified_t wmi_handle, uint32_t len,
|
||||
void wmi_buf_free(wmi_buf_t net_buf);
|
||||
|
||||
/**
|
||||
* generic function to send unified WMI command
|
||||
* wmi_unified_cmd_send() - generic function to send unified WMI command
|
||||
* @wmi_handle: handle to WMI.
|
||||
* @buf: wmi command buffer
|
||||
* @buflen: wmi command buffer length
|
||||
* @cmd_id: WMI cmd id
|
||||
*
|
||||
* @param wmi_handle : handle to WMI.
|
||||
* @param buf : wmi command buffer
|
||||
* @param buflen : wmi command buffer length
|
||||
* @param cmd_id : WMI cmd id
|
||||
* @return 0 on success and -ve on failure.
|
||||
* Note, it is NOT safe to access buf after calling this function!
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
#define wmi_unified_cmd_send(wmi_handle, buf, buflen, cmd_id) \
|
||||
wmi_unified_cmd_send_fl(wmi_handle, buf, buflen, \
|
||||
cmd_id, __func__, __LINE__)
|
||||
|
||||
QDF_STATUS
|
||||
wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen,
|
||||
uint32_t cmd_id);
|
||||
wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
uint32_t buflen, uint32_t cmd_id,
|
||||
const char *func, uint32_t line);
|
||||
|
||||
/**
|
||||
* wmi_unified_register_event() - WMI event handler
|
||||
|
@@ -1307,19 +1307,9 @@ static bool wmi_is_pm_resume_cmd(uint32_t cmd_id)
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wmi_unified_cmd_send() - WMI command API
|
||||
* @wmi_handle: handle to wmi
|
||||
* @buf: wmi buf
|
||||
* @len: wmi buffer length
|
||||
* @cmd_id: wmi command id
|
||||
*
|
||||
* Note, it is NOT safe to access buf after calling this function!
|
||||
*
|
||||
* Return: 0 on success
|
||||
*/
|
||||
QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
uint32_t len, uint32_t cmd_id)
|
||||
QDF_STATUS wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
uint32_t len, uint32_t cmd_id,
|
||||
const char *func, uint32_t line)
|
||||
{
|
||||
HTC_PACKET *pkt;
|
||||
QDF_STATUS status;
|
||||
@@ -1331,14 +1321,12 @@ QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
wmi_handle, buf, cmd_id);
|
||||
} else if (qdf_atomic_read(&wmi_handle->is_target_suspended) &&
|
||||
(!wmi_is_pm_resume_cmd(cmd_id))) {
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Target is suspended", __func__);
|
||||
QDF_ASSERT(0);
|
||||
wmi_nofl_err("%s:%d, Target is suspended", func, line);
|
||||
QDF_DEBUG_PANIC();
|
||||
return QDF_STATUS_E_BUSY;
|
||||
}
|
||||
if (wmi_handle->wmi_stopinprogress) {
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"WMI stop in progress");
|
||||
wmi_nofl_err("%s:%d, WMI stop in progress", func, line);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
@@ -1349,18 +1337,16 @@ QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
|
||||
if (wmi_handle->ops->wmi_check_command_params(NULL, buf_ptr, len, cmd_id)
|
||||
!= 0) {
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"\nERROR: %s: Invalid WMI Param Buffer for Cmd:%d",
|
||||
__func__, cmd_id);
|
||||
wmi_nofl_err("%s:%d, Invalid WMI Param Buffer for Cmd:%d",
|
||||
func, line, cmd_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (qdf_nbuf_push_head(buf, sizeof(WMI_CMD_HDR)) == NULL) {
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s, Failed to send cmd %x, no memory",
|
||||
__func__, cmd_id);
|
||||
wmi_nofl_err("%s:%d, Failed to send cmd %x, no memory",
|
||||
func, line, cmd_id);
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
@@ -1370,24 +1356,19 @@ QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
qdf_atomic_inc(&wmi_handle->pending_cmds);
|
||||
if (qdf_atomic_read(&wmi_handle->pending_cmds) >=
|
||||
wmi_handle->wmi_max_cmds) {
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"\n%s: hostcredits = %d", __func__,
|
||||
wmi_nofl_err("hostcredits = %d",
|
||||
wmi_get_host_credits(wmi_handle));
|
||||
htc_dump_counter_info(wmi_handle->htc_handle);
|
||||
qdf_atomic_dec(&wmi_handle->pending_cmds);
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: MAX %d WMI Pending cmds reached.", __func__,
|
||||
wmi_handle->wmi_max_cmds);
|
||||
wmi_nofl_err("%s:%d, MAX %d WMI Pending cmds reached",
|
||||
func, line, wmi_handle->wmi_max_cmds);
|
||||
QDF_BUG(0);
|
||||
return QDF_STATUS_E_BUSY;
|
||||
}
|
||||
|
||||
pkt = qdf_mem_malloc(sizeof(*pkt));
|
||||
pkt = qdf_mem_malloc_fl(sizeof(*pkt), func, line);
|
||||
if (!pkt) {
|
||||
qdf_atomic_dec(&wmi_handle->pending_cmds);
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s, Failed to alloc htc packet %x, no memory",
|
||||
__func__, cmd_id);
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
@@ -1423,15 +1404,15 @@ QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf,
|
||||
|
||||
if (QDF_STATUS_SUCCESS != status) {
|
||||
qdf_atomic_dec(&wmi_handle->pending_cmds);
|
||||
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s %d, htc_send_pkt failed", __func__, __LINE__);
|
||||
wmi_nofl_err("%s:%d, htc_send_pkt failed, status:%d",
|
||||
func, line, status);
|
||||
qdf_mem_free(pkt);
|
||||
return status;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
qdf_export_symbol(wmi_unified_cmd_send);
|
||||
qdf_export_symbol(wmi_unified_cmd_send_fl);
|
||||
|
||||
/**
|
||||
* wmi_unified_get_event_handler_ix() - gives event handler's index
|
||||
|
Reference in New Issue
Block a user