iwmc3200wifi: Implement cfg80211 PMKSA API
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / iwmc3200wifi / commands.c
index 46ca7c58f5ac227a1a9e63848b5df23dab822266..bd0630755b32c0e7db796c8aab7ed0c1224289af 100644 (file)
@@ -960,3 +960,25 @@ int iwm_send_umac_stop_resume_tx(struct iwm_priv *iwm,
                                 sizeof(struct iwm_umac_cmd_stop_resume_tx));
 
 }
+
+int iwm_send_pmkid_update(struct iwm_priv *iwm,
+                         struct cfg80211_pmksa *pmksa, u32 command)
+{
+       struct iwm_umac_pmkid_update update;
+       int ret;
+
+       memset(&update, 0, sizeof(struct iwm_umac_pmkid_update));
+
+       update.command = cpu_to_le32(command);
+       memcpy(&update.bssid, pmksa->bssid, ETH_ALEN);
+       memcpy(&update.pmkid, pmksa->pmkid, WLAN_PMKID_LEN);
+
+       ret = iwm_send_wifi_if_cmd(iwm, &update,
+                                  sizeof(struct iwm_umac_pmkid_update), 0);
+       if (ret) {
+               IWM_ERR(iwm, "PMKID update command failed\n");
+               return ret;
+       }
+
+       return 0;
+}