Merge "qcacmn: Add logs in wmi_unified_cmd_send()"

This commit is contained in:
Linux Build Service Account
2018-09-06 10:04:01 -07:00
committed by Gerrit - the friendly Code Review server
2 changed files with 33 additions and 45 deletions

View File

@@ -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); 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. * Note, it is NOT safe to access buf after calling this function!
* @param buf : wmi command buffer *
* @param buflen : wmi command buffer length * Return: QDF_STATUS
* @param cmd_id : WMI cmd id
* @return 0 on success and -ve on failure.
*/ */
#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 QDF_STATUS
wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen, wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
uint32_t cmd_id); uint32_t buflen, uint32_t cmd_id,
const char *func, uint32_t line);
/** /**
* wmi_unified_register_event() - WMI event handler * wmi_unified_register_event() - WMI event handler

View File

@@ -1307,19 +1307,9 @@ static bool wmi_is_pm_resume_cmd(uint32_t cmd_id)
} }
#endif #endif
/** QDF_STATUS wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
* wmi_unified_cmd_send() - WMI command API uint32_t len, uint32_t cmd_id,
* @wmi_handle: handle to wmi const char *func, uint32_t line)
* @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)
{ {
HTC_PACKET *pkt; HTC_PACKET *pkt;
QDF_STATUS status; 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); wmi_handle, buf, cmd_id);
} else if (qdf_atomic_read(&wmi_handle->is_target_suspended) && } else if (qdf_atomic_read(&wmi_handle->is_target_suspended) &&
(!wmi_is_pm_resume_cmd(cmd_id))) { (!wmi_is_pm_resume_cmd(cmd_id))) {
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("%s:%d, Target is suspended", func, line);
"%s: Target is suspended", __func__); QDF_DEBUG_PANIC();
QDF_ASSERT(0);
return QDF_STATUS_E_BUSY; return QDF_STATUS_E_BUSY;
} }
if (wmi_handle->wmi_stopinprogress) { if (wmi_handle->wmi_stopinprogress) {
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("%s:%d, WMI stop in progress", func, line);
"WMI stop in progress");
return QDF_STATUS_E_INVAL; 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) if (wmi_handle->ops->wmi_check_command_params(NULL, buf_ptr, len, cmd_id)
!= 0) { != 0) {
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("%s:%d, Invalid WMI Param Buffer for Cmd:%d",
"\nERROR: %s: Invalid WMI Param Buffer for Cmd:%d", func, line, cmd_id);
__func__, cmd_id);
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
} }
} }
#endif #endif
if (qdf_nbuf_push_head(buf, sizeof(WMI_CMD_HDR)) == NULL) { if (qdf_nbuf_push_head(buf, sizeof(WMI_CMD_HDR)) == NULL) {
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("%s:%d, Failed to send cmd %x, no memory",
"%s, Failed to send cmd %x, no memory", func, line, cmd_id);
__func__, cmd_id);
return QDF_STATUS_E_NOMEM; 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); qdf_atomic_inc(&wmi_handle->pending_cmds);
if (qdf_atomic_read(&wmi_handle->pending_cmds) >= if (qdf_atomic_read(&wmi_handle->pending_cmds) >=
wmi_handle->wmi_max_cmds) { wmi_handle->wmi_max_cmds) {
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("hostcredits = %d",
"\n%s: hostcredits = %d", __func__,
wmi_get_host_credits(wmi_handle)); wmi_get_host_credits(wmi_handle));
htc_dump_counter_info(wmi_handle->htc_handle); htc_dump_counter_info(wmi_handle->htc_handle);
qdf_atomic_dec(&wmi_handle->pending_cmds); qdf_atomic_dec(&wmi_handle->pending_cmds);
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("%s:%d, MAX %d WMI Pending cmds reached",
"%s: MAX %d WMI Pending cmds reached.", __func__, func, line, wmi_handle->wmi_max_cmds);
wmi_handle->wmi_max_cmds);
QDF_BUG(0); QDF_BUG(0);
return QDF_STATUS_E_BUSY; return QDF_STATUS_E_BUSY;
} }
pkt = qdf_mem_malloc(sizeof(*pkt)); pkt = qdf_mem_malloc_fl(sizeof(*pkt), func, line);
if (!pkt) { if (!pkt) {
qdf_atomic_dec(&wmi_handle->pending_cmds); 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; 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) { if (QDF_STATUS_SUCCESS != status) {
qdf_atomic_dec(&wmi_handle->pending_cmds); qdf_atomic_dec(&wmi_handle->pending_cmds);
QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, wmi_nofl_err("%s:%d, htc_send_pkt failed, status:%d",
"%s %d, htc_send_pkt failed", __func__, __LINE__); func, line, status);
qdf_mem_free(pkt); qdf_mem_free(pkt);
return status; return status;
} }
return QDF_STATUS_SUCCESS; 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 * wmi_unified_get_event_handler_ix() - gives event handler's index