Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 862a336c authored by Jan Kaisrlik's avatar Jan Kaisrlik Committed by Kalle Valo
Browse files

ath9k: Add support for OCB mode



The patch adds support for "outside the context of a BSS"(OCB) mode
to ath9k driver and extends debugfs files by OCB ralated information.

This patch was tested on AR9380-AL1A cards.

Signed-off-by: default avatarJan Kaisrlik <kaisrja1@fel.cvut.cz>
Cc: Michal Sojka <sojkam1@fel.cvut.cz>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent c452d944
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -635,6 +635,7 @@ struct ath9k_vif_iter_data {
	int nstations; /* number of station vifs */
	int nstations; /* number of station vifs */
	int nwds;      /* number of WDS vifs */
	int nwds;      /* number of WDS vifs */
	int nadhocs;   /* number of adhoc vifs */
	int nadhocs;   /* number of adhoc vifs */
	int nocbs;     /* number of OCB vifs */
	struct ieee80211_vif *primary_sta;
	struct ieee80211_vif *primary_sta;
};
};


+2 −2
Original line number Original line Diff line number Diff line
@@ -741,8 +741,8 @@ static int read_file_misc(struct seq_file *file, void *data)
			   i++, (int)(ctx->assigned), iter_data.naps,
			   i++, (int)(ctx->assigned), iter_data.naps,
			   iter_data.nstations,
			   iter_data.nstations,
			   iter_data.nmeshes, iter_data.nwds);
			   iter_data.nmeshes, iter_data.nwds);
		seq_printf(file, " ADHOC: %i TOTAL: %hi BEACON-VIF: %hi\n",
		seq_printf(file, " ADHOC: %i OCB: %i TOTAL: %hi BEACON-VIF: %hi\n",
			   iter_data.nadhocs, sc->cur_chan->nvifs,
			   iter_data.nadhocs, iter_data.nocbs, sc->cur_chan->nvifs,
			   sc->nbcnvifs);
			   sc->nbcnvifs);
	}
	}


+2 −1
Original line number Original line Diff line number Diff line
@@ -740,7 +740,8 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
		BIT(NL80211_IFTYPE_AP) |
		BIT(NL80211_IFTYPE_AP) |
		BIT(NL80211_IFTYPE_P2P_GO) |
		BIT(NL80211_IFTYPE_P2P_GO) |
		BIT(NL80211_IFTYPE_P2P_CLIENT) |
		BIT(NL80211_IFTYPE_P2P_CLIENT) |
		BIT(NL80211_IFTYPE_MESH_POINT);
		BIT(NL80211_IFTYPE_MESH_POINT) |
		BIT(NL80211_IFTYPE_OCB);


	hw->wiphy->iface_combinations = &if_comb;
	hw->wiphy->iface_combinations = &if_comb;
	hw->wiphy->n_iface_combinations = 1;
	hw->wiphy->n_iface_combinations = 1;
+1 −0
Original line number Original line Diff line number Diff line
@@ -1241,6 +1241,7 @@ static void ath9k_hw_set_operating_mode(struct ath_hw *ah, int opmode)
			break;
			break;
		}
		}
		/* fall through */
		/* fall through */
	case NL80211_IFTYPE_OCB:
	case NL80211_IFTYPE_MESH_POINT:
	case NL80211_IFTYPE_MESH_POINT:
	case NL80211_IFTYPE_AP:
	case NL80211_IFTYPE_AP:
		set |= AR_STA_ID1_STA_AP;
		set |= AR_STA_ID1_STA_AP;
+2 −1
Original line number Original line Diff line number Diff line
@@ -855,7 +855,8 @@ static void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
			BIT(NL80211_IFTYPE_STATION) |
			BIT(NL80211_IFTYPE_STATION) |
			BIT(NL80211_IFTYPE_ADHOC) |
			BIT(NL80211_IFTYPE_ADHOC) |
			BIT(NL80211_IFTYPE_MESH_POINT) |
			BIT(NL80211_IFTYPE_MESH_POINT) |
			BIT(NL80211_IFTYPE_WDS);
			BIT(NL80211_IFTYPE_WDS) |
			BIT(NL80211_IFTYPE_OCB);


		if (ath9k_is_chanctx_enabled())
		if (ath9k_is_chanctx_enabled())
			hw->wiphy->interface_modes |=
			hw->wiphy->interface_modes |=
Loading