57 lines
1.5 KiB
Diff
57 lines
1.5 KiB
Diff
|
From: Sujith Manoharan <c_manoha@qca.qualcomm.com>
|
||
|
Date: Fri, 17 Oct 2014 07:40:21 +0530
|
||
|
Subject: [PATCH] ath9k: Add a function to check for an active GO
|
||
|
|
||
|
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
|
||
|
---
|
||
|
|
||
|
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
|
||
|
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
|
||
|
@@ -469,6 +469,7 @@ void ath_chanctx_set_next(struct ath_sof
|
||
|
void ath_offchannel_next(struct ath_softc *sc);
|
||
|
void ath_scan_complete(struct ath_softc *sc, bool abort);
|
||
|
void ath_roc_complete(struct ath_softc *sc, bool abort);
|
||
|
+struct ath_chanctx* ath_is_go_chanctx_present(struct ath_softc *sc);
|
||
|
|
||
|
#else
|
||
|
|
||
|
--- a/drivers/net/wireless/ath/ath9k/channel.c
|
||
|
+++ b/drivers/net/wireless/ath/ath9k/channel.c
|
||
|
@@ -146,6 +146,36 @@ void ath_chanctx_set_channel(struct ath_
|
||
|
|
||
|
#ifdef CPTCFG_ATH9K_CHANNEL_CONTEXT
|
||
|
|
||
|
+/*************/
|
||
|
+/* Utilities */
|
||
|
+/*************/
|
||
|
+
|
||
|
+struct ath_chanctx* ath_is_go_chanctx_present(struct ath_softc *sc)
|
||
|
+{
|
||
|
+ struct ath_chanctx *ctx;
|
||
|
+ struct ath_vif *avp;
|
||
|
+ struct ieee80211_vif *vif;
|
||
|
+
|
||
|
+ spin_lock_bh(&sc->chan_lock);
|
||
|
+
|
||
|
+ ath_for_each_chanctx(sc, ctx) {
|
||
|
+ if (!ctx->active)
|
||
|
+ continue;
|
||
|
+
|
||
|
+ list_for_each_entry(avp, &ctx->vifs, list) {
|
||
|
+ vif = avp->vif;
|
||
|
+
|
||
|
+ if (ieee80211_vif_type_p2p(vif) == NL80211_IFTYPE_P2P_GO) {
|
||
|
+ spin_unlock_bh(&sc->chan_lock);
|
||
|
+ return ctx;
|
||
|
+ }
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
+ spin_unlock_bh(&sc->chan_lock);
|
||
|
+ return NULL;
|
||
|
+}
|
||
|
+
|
||
|
/**********************************************************/
|
||
|
/* Functions to handle the channel context state machine. */
|
||
|
/**********************************************************/
|