]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
rsi: add p2p support parameters to mac80211
authorPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Wed, 30 Aug 2017 09:38:21 +0000 (15:08 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 20 Sep 2017 12:38:54 +0000 (15:38 +0300)
This patch adds p2p supported parameters to mac80211 hw and
wiphy structures during mac80211 registration.

Signed-off-by: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/rsi/rsi_91x_mac80211.c

index fa12c05d9e237c1d615990456b50cbe987187cf4..992ac6cf9a34b107a7fa31b95ab472f8993a1074 100644 (file)
@@ -139,6 +139,32 @@ static const u32 rsi_max_ap_stas[16] = {
        4,      /* 14 - AP + BT Dual */
 };
 
+static const struct ieee80211_iface_limit rsi_iface_limits[] = {
+       {
+               .max = 1,
+               .types = BIT(NL80211_IFTYPE_STATION),
+       },
+       {
+               .max = 1,
+               .types = BIT(NL80211_IFTYPE_AP) |
+                       BIT(NL80211_IFTYPE_P2P_CLIENT) |
+                       BIT(NL80211_IFTYPE_P2P_GO),
+       },
+       {
+               .max = 1,
+               .types = BIT(NL80211_IFTYPE_P2P_DEVICE),
+       },
+};
+
+static const struct ieee80211_iface_combination rsi_iface_combinations[] = {
+       {
+               .num_different_channels = 1,
+               .max_interfaces = 3,
+               .limits = rsi_iface_limits,
+               .n_limits = ARRAY_SIZE(rsi_iface_limits),
+       },
+};
+
 /**
  * rsi_is_cipher_wep() -  This function determines if the cipher is WEP or not.
  * @common: Pointer to the driver private structure.
@@ -1581,7 +1607,11 @@ int rsi_mac80211_attach(struct rsi_common *common)
        ether_addr_copy(hw->wiphy->addr_mask, addr_mask);
 
        wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
-                                BIT(NL80211_IFTYPE_AP);
+                                BIT(NL80211_IFTYPE_AP) |
+                                BIT(NL80211_IFTYPE_P2P_DEVICE) |
+                                BIT(NL80211_IFTYPE_P2P_CLIENT) |
+                                BIT(NL80211_IFTYPE_P2P_GO);
+
        wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
        wiphy->retry_short = RETRY_SHORT;
        wiphy->retry_long  = RETRY_LONG;
@@ -1608,6 +1638,11 @@ int rsi_mac80211_attach(struct rsi_common *common)
 
        wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
 
+       /* Wi-Fi direct parameters */
+       hw->max_listen_interval = 10;
+       wiphy->iface_combinations = rsi_iface_combinations;
+       wiphy->n_iface_combinations = ARRAY_SIZE(rsi_iface_combinations);
+
        status = ieee80211_register_hw(hw);
        if (status)
                return status;