ath6kl: Add support for new P2P iftypes in mode changes
authorJouni Malinen <jouni@qca.qualcomm.com>
Tue, 30 Aug 2011 18:58:05 +0000 (21:58 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Wed, 31 Aug 2011 07:13:01 +0000 (10:13 +0300)
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath6kl/cfg80211.c

index 2d44397..72735ee 100644 (file)
@@ -451,7 +451,8 @@ void ath6kl_cfg80211_connect_event(struct ath6kl *ar, u16 channel,
        }
 
        if (nw_type & INFRA_NETWORK) {
-               if (ar->wdev->iftype != NL80211_IFTYPE_STATION) {
+               if (ar->wdev->iftype != NL80211_IFTYPE_STATION &&
+                   ar->wdev->iftype != NL80211_IFTYPE_P2P_CLIENT) {
                        ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
                                   "%s: ath6k not in station mode\n", __func__);
                        return;
@@ -612,7 +613,8 @@ void ath6kl_cfg80211_disconnect_event(struct ath6kl *ar, u8 reason,
        }
 
        if (ar->nw_type & INFRA_NETWORK) {
-               if (ar->wdev->iftype != NL80211_IFTYPE_STATION) {
+               if (ar->wdev->iftype != NL80211_IFTYPE_STATION &&
+                   ar->wdev->iftype != NL80211_IFTYPE_P2P_CLIENT) {
                        ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
                                   "%s: ath6k not in station mode\n", __func__);
                        return;
@@ -1206,6 +1208,12 @@ static int ath6kl_cfg80211_change_iface(struct wiphy *wiphy,
        case NL80211_IFTYPE_ADHOC:
                ar->next_mode = ADHOC_NETWORK;
                break;
+       case NL80211_IFTYPE_P2P_CLIENT:
+               ar->next_mode = INFRA_NETWORK;
+               break;
+       case NL80211_IFTYPE_P2P_GO:
+               ar->next_mode = AP_NETWORK;
+               break;
        default:
                ath6kl_err("invalid interface type %u\n", type);
                return -EOPNOTSUPP;