iwmc3200wifi: handling wifi_if_ntfy responses
When we're calling iwm_send_wifi_if_cmd() with the resp flag set, we're currently waiting on the mlme queue, waiting for some flags here and there to show up. This patch adds a wifi_ntfy bitmap, and when we're sending a wifi_if command expecting an answers, we wait synchronously for it to show up, on a dedicated queue. The wifi_ntfy bit is set when we receive the corresponding answer. Signed-off-by: Samuel Ortiz <samuel.ortiz@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
0c5553b139
commit
a70742f167
@@ -993,12 +993,17 @@ static int iwm_ntf_wifi_if_wrapper(struct iwm_priv *iwm, u8 *buf,
|
||||
(struct iwm_umac_wifi_if *)cmd->buf.payload;
|
||||
|
||||
IWM_DBG_NTF(iwm, DBG, "WIFI_IF_WRAPPER cmd is delivered to UMAC: "
|
||||
"oid is %d\n", hdr->oid);
|
||||
"oid is 0x%x\n", hdr->oid);
|
||||
|
||||
if (hdr->oid <= WIFI_IF_NTFY_MAX) {
|
||||
set_bit(hdr->oid, &iwm->wifi_ntfy[0]);
|
||||
wake_up_interruptible(&iwm->wifi_ntfy_queue);
|
||||
} else
|
||||
return -EINVAL;
|
||||
|
||||
switch (hdr->oid) {
|
||||
case UMAC_WIFI_IF_CMD_SET_PROFILE:
|
||||
iwm->umac_profile_active = 1;
|
||||
wake_up_interruptible(&iwm->mlme_queue);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Reference in New Issue
Block a user