/* * Event process by below function will be in tasket context. * Please use this method only for time sensitive functions. */ static void wmi_process_fw_event_tasklet_ctx(struct wmi_unified *wmi_handle, HTC_PACKET *htc_packet) { wmi_buf_t evt_buf; evt_buf = (wmi_buf_t) htc_packet->pPktContext; __wmi_control_rx(wmi_handle, evt_buf); return; }
void __wmi_rx_event_work(struct work_struct *work) { struct wmi_unified *wmi = container_of(work, struct wmi_unified, rx_event_work); wmi_buf_t buf; adf_os_spin_lock_bh(&wmi->eventq_lock); buf = adf_nbuf_queue_remove(&wmi->event_queue); adf_os_spin_unlock_bh(&wmi->eventq_lock); while (buf) { __wmi_control_rx(wmi, buf); adf_os_spin_lock_bh(&wmi->eventq_lock); buf = adf_nbuf_queue_remove(&wmi->event_queue); adf_os_spin_unlock_bh(&wmi->eventq_lock); } }
void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf) { __wmi_control_rx(wmi_handle, evt_buf); }