qcacmn: support of common wmi rx event handling for common wmi layer

Remove hard-coded rx execution context of wmi event callbacks.
UMAC layer needs to register execution context while registering
events with wmi layer.

Execute wmi rx event callbacks in following context-
1) work queue context provided by wmi layer.
2) umac provided context, umac can choose to
   execute in thread context or default tasklet context
   based on umac implementation.

CRs-Fixed: 978619
Change-Id: Id9b1f1e5157e8a203f93a62791f85a8145cc1599
This commit is contained in:
Govind Singh
2016-03-09 12:03:29 +05:30
parent 3ddda1ff37
commit 4ec6ff9760
3 changed files with 64 additions and 12 deletions

View File

@@ -48,13 +48,13 @@ typedef cdf_nbuf_t wmi_buf_t;
struct wmi_command_debug {
uint32_t command;
uint32_t data[4]; /*16 bytes of WMI cmd excluding TLV and WMI headers */
uint32_t data[4]; /*16 bytes of WMI cmd excluding TLV and WMI headers */
uint64_t time;
};
struct wmi_event_debug {
uint32_t event;
uint32_t data[4]; /*16 bytes of WMI event data excluding TLV header */
uint32_t data[4]; /*16 bytes of WMI event data excluding TLV header */
uint64_t time;
};
@@ -179,6 +179,7 @@ struct wmi_unified {
uint16_t max_msg_len;
WMI_EVT_ID event_id[WMI_UNIFIED_MAX_EVENT];
wmi_unified_event_handler event_handler[WMI_UNIFIED_MAX_EVENT];
enum wmi_rx_exec_ctx ctx[WMI_UNIFIED_MAX_EVENT];
uint32_t max_event_idx;
void *htc_handle;
cdf_spinlock_t eventq_lock;