• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/net/wireless/ath/ath9k/

Lines Matching refs:wmi

93 struct wmi *ath9k_init_wmi(struct ath9k_htc_priv *priv)
95 struct wmi *wmi;
97 wmi = kzalloc(sizeof(struct wmi), GFP_KERNEL);
98 if (!wmi)
101 wmi->drv_priv = priv;
102 wmi->stopped = false;
103 mutex_init(&wmi->op_mutex);
104 mutex_init(&wmi->multi_write_mutex);
105 init_completion(&wmi->cmd_wait);
107 return wmi;
112 struct wmi *wmi = priv->wmi;
114 mutex_lock(&wmi->op_mutex);
115 wmi->stopped = true;
116 mutex_unlock(&wmi->op_mutex);
118 kfree(priv->wmi);
135 spin_lock_irqsave(&priv->wmi->wmi_lock, flags);
136 skb = priv->wmi->wmi_skb;
137 spin_unlock_irqrestore(&priv->wmi->wmi_lock, flags);
176 static void ath9k_wmi_rsp_callback(struct wmi *wmi, struct sk_buff *skb)
180 if (wmi->cmd_rsp_buf != NULL && wmi->cmd_rsp_len != 0)
181 memcpy(wmi->cmd_rsp_buf, skb->data, wmi->cmd_rsp_len);
183 complete(&wmi->cmd_wait);
189 struct wmi *wmi = (struct wmi *) priv;
193 if (unlikely(wmi->stopped))
200 spin_lock(&wmi->wmi_lock);
201 wmi->wmi_skb = skb;
202 spin_unlock(&wmi->wmi_lock);
203 tasklet_schedule(&wmi->drv_priv->wmi_tasklet);
208 spin_lock(&wmi->wmi_lock);
209 if (cmd_id != wmi->last_cmd_id) {
210 spin_unlock(&wmi->wmi_lock);
213 spin_unlock(&wmi->wmi_lock);
216 ath9k_wmi_rsp_callback(wmi, skb);
228 int ath9k_wmi_connect(struct htc_target *htc, struct wmi *wmi,
234 wmi->htc = htc;
238 connect.ep_callbacks.priv = wmi;
243 ret = htc_connect_service(htc, &connect, &wmi->ctrl_epid);
247 *wmi_ctrl_epid = wmi->ctrl_epid;
252 static int ath9k_wmi_cmd_issue(struct wmi *wmi,
260 hdr->seq_no = cpu_to_be16(++wmi->tx_seq_id);
262 return htc_send(wmi->htc, skb, wmi->ctrl_epid, NULL);
265 int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id,
270 struct ath_hw *ah = wmi->drv_priv->ah;
279 if (wmi->drv_priv->op_flags & OP_UNPLUGGED)
293 mutex_lock(&wmi->op_mutex);
295 /* check if wmi stopped flag is set */
296 if (unlikely(wmi->stopped)) {
302 wmi->cmd_rsp_buf = rsp_buf;
303 wmi->cmd_rsp_len = rsp_len;
305 spin_lock_irqsave(&wmi->wmi_lock, flags);
306 wmi->last_cmd_id = cmd_id;
307 spin_unlock_irqrestore(&wmi->wmi_lock, flags);
309 ret = ath9k_wmi_cmd_issue(wmi, skb, cmd_id, cmd_len);
313 time_left = wait_for_completion_timeout(&wmi->cmd_wait, timeout);
318 mutex_unlock(&wmi->op_mutex);
322 mutex_unlock(&wmi->op_mutex);
329 mutex_unlock(&wmi->op_mutex);