iwmc3200wifi: Implement cfg80211 PMKSA API
[deliverable/linux.git] / drivers / net / wireless / iwmc3200wifi / cfg80211.c
index 7cfc2c0a1fbc19e2af68a592ae33c04b05394439..7c4f44a9c3e6b2a8429fe168a08ce53588feb9c8 100644 (file)
@@ -725,6 +725,33 @@ static int iwm_cfg80211_set_power_mgmt(struct wiphy *wiphy,
                                       CFG_POWER_INDEX, iwm->conf.power_index);
 }
 
+int iwm_cfg80211_set_pmksa(struct wiphy *wiphy, struct net_device *netdev,
+                          struct cfg80211_pmksa *pmksa)
+{
+       struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
+
+       return iwm_send_pmkid_update(iwm, pmksa, IWM_CMD_PMKID_ADD);
+}
+
+int iwm_cfg80211_del_pmksa(struct wiphy *wiphy, struct net_device *netdev,
+                          struct cfg80211_pmksa *pmksa)
+{
+       struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
+
+       return iwm_send_pmkid_update(iwm, pmksa, IWM_CMD_PMKID_DEL);
+}
+
+int iwm_cfg80211_flush_pmksa(struct wiphy *wiphy, struct net_device *netdev)
+{
+       struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
+       struct cfg80211_pmksa pmksa;
+
+       memset(&pmksa, 0, sizeof(struct cfg80211_pmksa));
+
+       return iwm_send_pmkid_update(iwm, &pmksa, IWM_CMD_PMKID_FLUSH);
+}
+
+
 static struct cfg80211_ops iwm_cfg80211_ops = {
        .change_virtual_intf = iwm_cfg80211_change_iface,
        .add_key = iwm_cfg80211_add_key,
@@ -741,6 +768,9 @@ static struct cfg80211_ops iwm_cfg80211_ops = {
        .set_tx_power = iwm_cfg80211_set_txpower,
        .get_tx_power = iwm_cfg80211_get_txpower,
        .set_power_mgmt = iwm_cfg80211_set_power_mgmt,
+       .set_pmksa = iwm_cfg80211_set_pmksa,
+       .del_pmksa = iwm_cfg80211_del_pmksa,
+       .flush_pmksa = iwm_cfg80211_flush_pmksa,
 };
 
 static const u32 cipher_suites[] = {
@@ -786,6 +816,7 @@ struct wireless_dev *iwm_wdev_alloc(int sizeof_bus, struct device *dev)
 
        set_wiphy_dev(wdev->wiphy, dev);
        wdev->wiphy->max_scan_ssids = UMAC_WIFI_IF_PROBE_OPTION_MAX;
+       wdev->wiphy->max_num_pmkids = UMAC_MAX_NUM_PMKIDS;
        wdev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
                                       BIT(NL80211_IFTYPE_ADHOC);
        wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &iwm_band_2ghz;
This page took 0.054961 seconds and 5 git commands to generate.