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

Commit ca409d6e authored by David S. Miller's avatar David S. Miller
Browse files
parents 3b53fbf4 d54bc4e3
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -2942,8 +2942,10 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw,
		sc->opmode != NL80211_IFTYPE_MESH_POINT &&
		sc->opmode != NL80211_IFTYPE_MESH_POINT &&
		test_bit(ATH_STAT_PROMISC, sc->status))
		test_bit(ATH_STAT_PROMISC, sc->status))
		rfilt |= AR5K_RX_FILTER_PROM;
		rfilt |= AR5K_RX_FILTER_PROM;
	if (sc->opmode == NL80211_IFTYPE_ADHOC)
	if (sc->opmode == NL80211_IFTYPE_STATION ||
		sc->opmode == NL80211_IFTYPE_ADHOC) {
		rfilt |= AR5K_RX_FILTER_BEACON;
		rfilt |= AR5K_RX_FILTER_BEACON;
	}


	/* Set filters */
	/* Set filters */
	ath5k_hw_set_rx_filter(ah,rfilt);
	ath5k_hw_set_rx_filter(ah,rfilt);
+8 −8
Original line number Original line Diff line number Diff line
@@ -531,10 +531,10 @@ static int ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah,
		AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL);
		AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL);
	rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
	rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
		AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE);
		AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE);
	rs->rs_antenna = rx_status->rx_status_0 &
	rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0,
		AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA;
		AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA);
	rs->rs_more = rx_status->rx_status_0 &
	rs->rs_more = !!(rx_status->rx_status_0 &
		AR5K_5210_RX_DESC_STATUS0_MORE;
		AR5K_5210_RX_DESC_STATUS0_MORE);
	/* TODO: this timestamp is 13 bit, later on we assume 15 bit */
	/* TODO: this timestamp is 13 bit, later on we assume 15 bit */
	rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
	rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
		AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
		AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
@@ -607,10 +607,10 @@ static int ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah,
		AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL);
		AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL);
	rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
	rs->rs_rate = AR5K_REG_MS(rx_status->rx_status_0,
		AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE);
		AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE);
	rs->rs_antenna = rx_status->rx_status_0 &
	rs->rs_antenna = AR5K_REG_MS(rx_status->rx_status_0,
		AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA;
		AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA);
	rs->rs_more = rx_status->rx_status_0 &
	rs->rs_more = !!(rx_status->rx_status_0 &
		AR5K_5212_RX_DESC_STATUS0_MORE;
		AR5K_5212_RX_DESC_STATUS0_MORE);
	rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
	rs->rs_tstamp = AR5K_REG_MS(rx_status->rx_status_1,
		AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
		AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP);
	rs->rs_status = 0;
	rs->rs_status = 0;
+5 −1
Original line number Original line Diff line number Diff line
@@ -3252,7 +3252,11 @@ static void iwl4965_mac_update_tkip_key(struct ieee80211_hw *hw,
		return;
		return;
	}
	}


	iwl_scan_cancel_timeout(priv, 100);
	if (iwl_scan_cancel(priv)) {
		/* cancel scan failed, just live w/ bad key and rely
		   briefly on SW decryption */
		return;
	}


	key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
	key_flags |= (STA_KEY_FLG_TKIP | STA_KEY_FLG_MAP_KEY_MSK);
	key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
	key_flags |= cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
+7 −0
Original line number Original line Diff line number Diff line
@@ -896,6 +896,13 @@ static void iwl_bg_request_scan(struct work_struct *data)
	return;
	return;


 done:
 done:
	/* Cannot perform scan. Make sure we clear scanning
	* bits from status so next scan request can be performed.
	* If we don't clear scanning status bit here all next scan
	* will fail
	*/
	clear_bit(STATUS_SCAN_HW, &priv->status);
	clear_bit(STATUS_SCANNING, &priv->status);
	/* inform mac80211 scan aborted */
	/* inform mac80211 scan aborted */
	queue_work(priv->workqueue, &priv->scan_completed);
	queue_work(priv->workqueue, &priv->scan_completed);
	mutex_unlock(&priv->mutex);
	mutex_unlock(&priv->mutex);
+14 −1
Original line number Original line Diff line number Diff line
@@ -5768,7 +5768,6 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv)
	if (priv->error_recovering)
	if (priv->error_recovering)
		iwl3945_error_recovery(priv);
		iwl3945_error_recovery(priv);


	ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
	return;
	return;


 restart:
 restart:
@@ -6013,6 +6012,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data)
	mutex_lock(&priv->mutex);
	mutex_lock(&priv->mutex);
	iwl3945_alive_start(priv);
	iwl3945_alive_start(priv);
	mutex_unlock(&priv->mutex);
	mutex_unlock(&priv->mutex);
	ieee80211_notify_mac(priv->hw, IEEE80211_NOTIFY_RE_ASSOC);
}
}


static void iwl3945_bg_rf_kill(struct work_struct *work)
static void iwl3945_bg_rf_kill(struct work_struct *work)
@@ -6256,6 +6256,11 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
					      n_probes,
					      n_probes,
			(void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);
			(void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)]);


	if (scan->channel_count == 0) {
		IWL_DEBUG_SCAN("channel count %d\n", scan->channel_count);
		goto done;
	}

	cmd.len += le16_to_cpu(scan->tx_cmd.len) +
	cmd.len += le16_to_cpu(scan->tx_cmd.len) +
	    scan->channel_count * sizeof(struct iwl3945_scan_channel);
	    scan->channel_count * sizeof(struct iwl3945_scan_channel);
	cmd.data = scan;
	cmd.data = scan;
@@ -6273,6 +6278,14 @@ static void iwl3945_bg_request_scan(struct work_struct *data)
	return;
	return;


 done:
 done:
	/* can not perform scan make sure we clear scanning
	 * bits from status so next scan request can be performed.
	 * if we dont clear scanning status bit here all next scan
	 * will fail
	*/
	clear_bit(STATUS_SCAN_HW, &priv->status);
	clear_bit(STATUS_SCANNING, &priv->status);

	/* inform mac80211 scan aborted */
	/* inform mac80211 scan aborted */
	queue_work(priv->workqueue, &priv->scan_completed);
	queue_work(priv->workqueue, &priv->scan_completed);
	mutex_unlock(&priv->mutex);
	mutex_unlock(&priv->mutex);
Loading