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

Commit 3a999e6e authored by David S. Miller's avatar David S. Miller
Browse files
parents 6cd9b49d 891dc5e7
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -88,27 +88,6 @@ Who: Luis R. Rodriguez <lrodriguez@atheros.com>

---------------------------

What:	CONFIG_WIRELESS_OLD_REGULATORY - old static regulatory information
When:	March 2010 / desktop catchup

Why:	The old regulatory infrastructure has been replaced with a new one
	which does not require statically defined regulatory domains. We do
	not want to keep static regulatory domains in the kernel due to the
	the dynamic nature of regulatory law and localization. We kept around
	the old static definitions for the regulatory domains of:

		* US
		* JP
		* EU

	and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was
	set. We will remove this option once the standard Linux desktop catches
	up with the new userspace APIs we have implemented.

Who:	Luis R. Rodriguez <lrodriguez@atheros.com>

---------------------------

What:	dev->power.power_state
When:	July 2007
Why:	Broken design for runtime control over driver power states, confusing
+6 −6
Original line number Diff line number Diff line
@@ -1400,15 +1400,15 @@ static void adm8211_configure_filter(struct ieee80211_hw *dev,
}

static int adm8211_add_interface(struct ieee80211_hw *dev,
				 struct ieee80211_if_init_conf *conf)
				 struct ieee80211_vif *vif)
{
	struct adm8211_priv *priv = dev->priv;
	if (priv->mode != NL80211_IFTYPE_MONITOR)
		return -EOPNOTSUPP;

	switch (conf->type) {
	switch (vif->type) {
	case NL80211_IFTYPE_STATION:
		priv->mode = conf->type;
		priv->mode = vif->type;
		break;
	default:
		return -EOPNOTSUPP;
@@ -1416,8 +1416,8 @@ static int adm8211_add_interface(struct ieee80211_hw *dev,

	ADM8211_IDLE();

	ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)conf->mac_addr));
	ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(conf->mac_addr + 4)));
	ADM8211_CSR_WRITE(PAR0, le32_to_cpu(*(__le32 *)vif->addr));
	ADM8211_CSR_WRITE(PAR1, le16_to_cpu(*(__le16 *)(vif->addr + 4)));

	adm8211_update_mode(dev);

@@ -1427,7 +1427,7 @@ static int adm8211_add_interface(struct ieee80211_hw *dev,
}

static void adm8211_remove_interface(struct ieee80211_hw *dev,
				     struct ieee80211_if_init_conf *conf)
				     struct ieee80211_vif *vif)
{
	struct adm8211_priv *priv = dev->priv;
	priv->mode = NL80211_IFTYPE_MONITOR;
+3 −3
Original line number Diff line number Diff line
@@ -1789,7 +1789,7 @@ static void at76_mac80211_stop(struct ieee80211_hw *hw)
}

static int at76_add_interface(struct ieee80211_hw *hw,
			      struct ieee80211_if_init_conf *conf)
			      struct ieee80211_vif *vif)
{
	struct at76_priv *priv = hw->priv;
	int ret = 0;
@@ -1798,7 +1798,7 @@ static int at76_add_interface(struct ieee80211_hw *hw,

	mutex_lock(&priv->mtx);

	switch (conf->type) {
	switch (vif->type) {
	case NL80211_IFTYPE_STATION:
		priv->iw_mode = IW_MODE_INFRA;
		break;
@@ -1814,7 +1814,7 @@ exit:
}

static void at76_remove_interface(struct ieee80211_hw *hw,
				  struct ieee80211_if_init_conf *conf)
				  struct ieee80211_vif *vif)
{
	at76_dbg(DBG_MAC80211, "%s()", __func__);
}
+4 −4
Original line number Diff line number Diff line
@@ -1939,7 +1939,7 @@ err_free:
}

static int ar9170_op_add_interface(struct ieee80211_hw *hw,
				   struct ieee80211_if_init_conf *conf)
				   struct ieee80211_vif *vif)
{
	struct ar9170 *ar = hw->priv;
	struct ath_common *common = &ar->common;
@@ -1952,8 +1952,8 @@ static int ar9170_op_add_interface(struct ieee80211_hw *hw,
		goto unlock;
	}

	ar->vif = conf->vif;
	memcpy(common->macaddr, conf->mac_addr, ETH_ALEN);
	ar->vif = vif;
	memcpy(common->macaddr, vif->addr, ETH_ALEN);

	if (modparam_nohwcrypt || (ar->vif->type != NL80211_IFTYPE_STATION)) {
		ar->rx_software_decryption = true;
@@ -1973,7 +1973,7 @@ unlock:
}

static void ar9170_op_remove_interface(struct ieee80211_hw *hw,
				       struct ieee80211_if_init_conf *conf)
				       struct ieee80211_vif *vif)
{
	struct ar9170 *ar = hw->priv;

+12 −24
Original line number Diff line number Diff line
@@ -225,9 +225,9 @@ static int ath5k_reset_wake(struct ath5k_softc *sc);
static int ath5k_start(struct ieee80211_hw *hw);
static void ath5k_stop(struct ieee80211_hw *hw);
static int ath5k_add_interface(struct ieee80211_hw *hw,
		struct ieee80211_if_init_conf *conf);
		struct ieee80211_vif *vif);
static void ath5k_remove_interface(struct ieee80211_hw *hw,
		struct ieee80211_if_init_conf *conf);
		struct ieee80211_vif *vif);
static int ath5k_config(struct ieee80211_hw *hw, u32 changed);
static u64 ath5k_prepare_multicast(struct ieee80211_hw *hw,
				   int mc_count, struct dev_addr_list *mc_list);
@@ -1903,17 +1903,6 @@ accept:
		rxs->noise = sc->ah->ah_noise_floor;
		rxs->signal = rxs->noise + rs.rs_rssi;

		/* An rssi of 35 indicates you should be able use
		 * 54 Mbps reliably. A more elaborate scheme can be used
		 * here but it requires a map of SNR/throughput for each
		 * possible mode used */
		rxs->qual = rs.rs_rssi * 100 / 35;

		/* rssi can be more than 35 though, anything above that
		 * should be considered at 100% */
		if (rxs->qual > 100)
			rxs->qual = 100;

		rxs->antenna = rs.rs_antenna;
		rxs->rate_idx = ath5k_hw_to_driver_rix(sc, rs.rs_rate);
		rxs->flag |= ath5k_rx_decrypted(sc, ds, skb, &rs);
@@ -2381,6 +2370,9 @@ ath5k_init(struct ath5k_softc *sc)
	 */
	ath5k_stop_locked(sc);

	/* Set PHY calibration interval */
	ah->ah_cal_intval = ath5k_calinterval;

	/*
	 * The basic interface to setting the hardware in a good
	 * state is ``reset''.  On return the hardware is known to
@@ -2408,10 +2400,6 @@ ath5k_init(struct ath5k_softc *sc)

	/* Set ack to be sent at low bit-rates */
	ath5k_hw_set_ack_bitrate_high(ah, false);

	/* Set PHY calibration inteval */
	ah->ah_cal_intval = ath5k_calinterval;

	ret = 0;
done:
	mmiowb();
@@ -2785,7 +2773,7 @@ static void ath5k_stop(struct ieee80211_hw *hw)
}

static int ath5k_add_interface(struct ieee80211_hw *hw,
		struct ieee80211_if_init_conf *conf)
		struct ieee80211_vif *vif)
{
	struct ath5k_softc *sc = hw->priv;
	int ret;
@@ -2796,22 +2784,22 @@ static int ath5k_add_interface(struct ieee80211_hw *hw,
		goto end;
	}

	sc->vif = conf->vif;
	sc->vif = vif;

	switch (conf->type) {
	switch (vif->type) {
	case NL80211_IFTYPE_AP:
	case NL80211_IFTYPE_STATION:
	case NL80211_IFTYPE_ADHOC:
	case NL80211_IFTYPE_MESH_POINT:
	case NL80211_IFTYPE_MONITOR:
		sc->opmode = conf->type;
		sc->opmode = vif->type;
		break;
	default:
		ret = -EOPNOTSUPP;
		goto end;
	}

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

	ret = 0;
@@ -2822,13 +2810,13 @@ end:

static void
ath5k_remove_interface(struct ieee80211_hw *hw,
			struct ieee80211_if_init_conf *conf)
			struct ieee80211_vif *vif)
{
	struct ath5k_softc *sc = hw->priv;
	u8 mac[ETH_ALEN] = {};

	mutex_lock(&sc->lock);
	if (sc->vif != conf->vif)
	if (sc->vif != vif)
		goto end;

	ath5k_hw_set_lladdr(sc->ah, mac);
Loading