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

Commit ccfe5552 authored by Bruno Randolf's avatar Bruno Randolf Committed by John W. Linville
Browse files

ath5k: remove double opmode definition



opmode (operating mode) was defined in struct ath5k_hw and struct ath5k_softc.
remove it from ath5k_hw and use only from ath5k_softc (sc->opmode).

(btw: what's the meaning of opmode when we have multiple interfaces?)

Signed-off-by: default avatarBruno Randolf <br1@einfach.org>
Acked-by: default avatarNick Kossifidis <mickflemm@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent caec9112
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -1036,7 +1036,6 @@ struct ath5k_hw {


	enum ath5k_int		ah_imr;
	enum ath5k_int		ah_imr;


	enum nl80211_iftype	ah_op_mode;
	struct ieee80211_channel *ah_current_channel;
	struct ieee80211_channel *ah_current_channel;
	bool			ah_turbo;
	bool			ah_turbo;
	bool			ah_calibration;
	bool			ah_calibration;
@@ -1200,7 +1199,7 @@ void ath5k_eeprom_detach(struct ath5k_hw *ah);
int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac);
int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac);


/* Protocol Control Unit Functions */
/* Protocol Control Unit Functions */
int ath5k_hw_set_opmode(struct ath5k_hw *ah);
extern int ath5k_hw_set_opmode(struct ath5k_hw *ah, enum nl80211_iftype opmode);
void ath5k_hw_set_coverage_class(struct ath5k_hw *ah, u8 coverage_class);
void ath5k_hw_set_coverage_class(struct ath5k_hw *ah, u8 coverage_class);
/* BSSID Functions */
/* BSSID Functions */
int ath5k_hw_set_lladdr(struct ath5k_hw *ah, const u8 *mac);
int ath5k_hw_set_lladdr(struct ath5k_hw *ah, const u8 *mac);
+1 −2
Original line number Original line Diff line number Diff line
@@ -113,7 +113,6 @@ int ath5k_hw_attach(struct ath5k_softc *sc)
	/*
	/*
	 * HW information
	 * HW information
	 */
	 */
	ah->ah_op_mode = NL80211_IFTYPE_STATION;
	ah->ah_radar.r_enabled = AR5K_TUNE_RADAR_ALERT;
	ah->ah_radar.r_enabled = AR5K_TUNE_RADAR_ALERT;
	ah->ah_turbo = false;
	ah->ah_turbo = false;
	ah->ah_txpower.txp_tpc = AR5K_TUNE_TPC_TXPOWER;
	ah->ah_txpower.txp_tpc = AR5K_TUNE_TPC_TXPOWER;
@@ -328,7 +327,7 @@ int ath5k_hw_attach(struct ath5k_softc *sc)
	/* Set BSSID to bcast address: ff:ff:ff:ff:ff:ff for now */
	/* Set BSSID to bcast address: ff:ff:ff:ff:ff:ff for now */
	memcpy(common->curbssid, ath_bcast_mac, ETH_ALEN);
	memcpy(common->curbssid, ath_bcast_mac, ETH_ALEN);
	ath5k_hw_set_associd(ah);
	ath5k_hw_set_associd(ah);
	ath5k_hw_set_opmode(ah);
	ath5k_hw_set_opmode(ah, sc->opmode);


	ath5k_hw_rfgain_opt_init(ah);
	ath5k_hw_rfgain_opt_init(ah);


+4 −3
Original line number Original line Diff line number Diff line
@@ -1137,8 +1137,6 @@ ath5k_mode_setup(struct ath5k_softc *sc)
	struct ath5k_hw *ah = sc->ah;
	struct ath5k_hw *ah = sc->ah;
	u32 rfilt;
	u32 rfilt;


	ah->ah_op_mode = sc->opmode;

	/* configure rx filter */
	/* configure rx filter */
	rfilt = sc->filter_flags;
	rfilt = sc->filter_flags;
	ath5k_hw_set_rx_filter(ah, rfilt);
	ath5k_hw_set_rx_filter(ah, rfilt);
@@ -1147,8 +1145,9 @@ ath5k_mode_setup(struct ath5k_softc *sc)
		ath5k_hw_set_bssid_mask(ah, sc->bssidmask);
		ath5k_hw_set_bssid_mask(ah, sc->bssidmask);


	/* configure operational mode */
	/* configure operational mode */
	ath5k_hw_set_opmode(ah);
	ath5k_hw_set_opmode(ah, sc->opmode);


	ATH5K_DBG(sc, ATH5K_DEBUG_MODE, "mode setup opmode %d\n", sc->opmode);
	ATH5K_DBG(sc, ATH5K_DEBUG_MODE, "RX filter 0x%x\n", rfilt);
	ATH5K_DBG(sc, ATH5K_DEBUG_MODE, "RX filter 0x%x\n", rfilt);
}
}


@@ -2901,6 +2900,8 @@ static int ath5k_add_interface(struct ieee80211_hw *hw,
		goto end;
		goto end;
	}
	}


	ATH5K_DBG(sc, ATH5K_DEBUG_MODE, "add interface mode %d\n", sc->opmode);

	ath5k_hw_set_lladdr(sc->ah, vif->addr);
	ath5k_hw_set_lladdr(sc->ah, vif->addr);
	ath5k_mode_setup(sc);
	ath5k_mode_setup(sc);


+7 −7
Original line number Original line Diff line number Diff line
@@ -39,16 +39,16 @@
 * ath5k_hw_set_opmode - Set PCU operating mode
 * ath5k_hw_set_opmode - Set PCU operating mode
 *
 *
 * @ah: The &struct ath5k_hw
 * @ah: The &struct ath5k_hw
 * @op_mode: &enum nl80211_iftype operating mode
 *
 *
 * Initialize PCU for the various operating modes (AP/STA etc)
 * Initialize PCU for the various operating modes (AP/STA etc)
 *
 * NOTE: ah->ah_op_mode must be set before calling this.
 */
 */
int ath5k_hw_set_opmode(struct ath5k_hw *ah)
int ath5k_hw_set_opmode(struct ath5k_hw *ah, enum nl80211_iftype op_mode)
{
{
	struct ath_common *common = ath5k_hw_common(ah);
	struct ath_common *common = ath5k_hw_common(ah);
	u32 pcu_reg, beacon_reg, low_id, high_id;
	u32 pcu_reg, beacon_reg, low_id, high_id;


	ATH5K_DBG(ah->ah_sc, ATH5K_DEBUG_MODE, "mode %d\n", op_mode);


	/* Preserve rest settings */
	/* Preserve rest settings */
	pcu_reg = ath5k_hw_reg_read(ah, AR5K_STA_ID1) & 0xffff0000;
	pcu_reg = ath5k_hw_reg_read(ah, AR5K_STA_ID1) & 0xffff0000;
@@ -61,7 +61,7 @@ int ath5k_hw_set_opmode(struct ath5k_hw *ah)


	ATH5K_TRACE(ah->ah_sc);
	ATH5K_TRACE(ah->ah_sc);


	switch (ah->ah_op_mode) {
	switch (op_mode) {
	case NL80211_IFTYPE_ADHOC:
	case NL80211_IFTYPE_ADHOC:
		pcu_reg |= AR5K_STA_ID1_ADHOC | AR5K_STA_ID1_KEYSRCH_MODE;
		pcu_reg |= AR5K_STA_ID1_ADHOC | AR5K_STA_ID1_KEYSRCH_MODE;
		beacon_reg |= AR5K_BCR_ADHOC;
		beacon_reg |= AR5K_BCR_ADHOC;
@@ -644,7 +644,7 @@ void ath5k_hw_init_beacon(struct ath5k_hw *ah, u32 next_beacon, u32 interval)
	/*
	/*
	 * Set the additional timers by mode
	 * Set the additional timers by mode
	 */
	 */
	switch (ah->ah_op_mode) {
	switch (ah->ah_sc->opmode) {
	case NL80211_IFTYPE_MONITOR:
	case NL80211_IFTYPE_MONITOR:
	case NL80211_IFTYPE_STATION:
	case NL80211_IFTYPE_STATION:
		/* In STA mode timer1 is used as next wakeup
		/* In STA mode timer1 is used as next wakeup
@@ -681,8 +681,8 @@ void ath5k_hw_init_beacon(struct ath5k_hw *ah, u32 next_beacon, u32 interval)
	 * Set the beacon register and enable all timers.
	 * Set the beacon register and enable all timers.
	 */
	 */
	/* When in AP or Mesh Point mode zero timer0 to start TSF */
	/* When in AP or Mesh Point mode zero timer0 to start TSF */
	if (ah->ah_op_mode == NL80211_IFTYPE_AP ||
	if (ah->ah_sc->opmode == NL80211_IFTYPE_AP ||
	    ah->ah_op_mode == NL80211_IFTYPE_MESH_POINT)
	    ah->ah_sc->opmode == NL80211_IFTYPE_MESH_POINT)
		ath5k_hw_reg_write(ah, 0, AR5K_TIMER0);
		ath5k_hw_reg_write(ah, 0, AR5K_TIMER0);


	ath5k_hw_reg_write(ah, next_beacon, AR5K_TIMER0);
	ath5k_hw_reg_write(ah, next_beacon, AR5K_TIMER0);
+2 −7
Original line number Original line Diff line number Diff line
@@ -1033,11 +1033,6 @@ int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
	if (ret)
	if (ret)
		return ret;
		return ret;


	/*
	 * Initialize operating mode
	 */
	ah->ah_op_mode = op_mode;

	/* PHY access enable */
	/* PHY access enable */
	if (ah->ah_mac_srev >= AR5K_SREV_AR5211)
	if (ah->ah_mac_srev >= AR5K_SREV_AR5211)
		ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_5GHZ, AR5K_PHY(0));
		ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_5GHZ, AR5K_PHY(0));
@@ -1208,7 +1203,7 @@ int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
	ath5k_hw_set_associd(ah);
	ath5k_hw_set_associd(ah);


	/* Set PCU config */
	/* Set PCU config */
	ath5k_hw_set_opmode(ah);
	ath5k_hw_set_opmode(ah, op_mode);


	/* Clear any pending interrupts
	/* Clear any pending interrupts
	 * PISR/SISR Not available on 5210 */
	 * PISR/SISR Not available on 5210 */
@@ -1394,7 +1389,7 @@ int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
	 * external 32KHz crystal when sleeping if one
	 * external 32KHz crystal when sleeping if one
	 * exists */
	 * exists */
	if (ah->ah_version == AR5K_AR5212 &&
	if (ah->ah_version == AR5K_AR5212 &&
	    ah->ah_op_mode != NL80211_IFTYPE_AP)
	    op_mode != NL80211_IFTYPE_AP)
		ath5k_hw_set_sleep_clock(ah, true);
		ath5k_hw_set_sleep_clock(ah, true);


	/*
	/*