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

Commit 62c8003e authored by John W. Linville's avatar John W. Linville
Browse files
parents e4cb3ff9 ec816087
Loading
Loading
Loading
Loading
+14 −13
Original line number Original line Diff line number Diff line
@@ -1074,15 +1074,18 @@ out:
void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq,
void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq,
				      enum wmi_phy_mode mode)
				      enum wmi_phy_mode mode)
{
{
	enum nl80211_channel_type type;
	struct cfg80211_chan_def chandef;


	ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
	ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
		   "channel switch notify nw_type %d freq %d mode %d\n",
		   "channel switch notify nw_type %d freq %d mode %d\n",
		   vif->nw_type, freq, mode);
		   vif->nw_type, freq, mode);


	type = (mode == WMI_11G_HT20) ? NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT;
	cfg80211_chandef_create(&chandef,
				ieee80211_get_channel(vif->ar->wiphy, freq),
				(mode == WMI_11G_HT20) ?
					NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT);


	cfg80211_ch_switch_notify(vif->ndev, freq, type);
	cfg80211_ch_switch_notify(vif->ndev, &chandef);
}
}


static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
@@ -1594,8 +1597,8 @@ static int ath6kl_cfg80211_join_ibss(struct wiphy *wiphy,
	vif->ssid_len = ibss_param->ssid_len;
	vif->ssid_len = ibss_param->ssid_len;
	memcpy(vif->ssid, ibss_param->ssid, vif->ssid_len);
	memcpy(vif->ssid, ibss_param->ssid, vif->ssid_len);


	if (ibss_param->channel)
	if (ibss_param->chandef.chan)
		vif->ch_hint = ibss_param->channel->center_freq;
		vif->ch_hint = ibss_param->chandef.chan->center_freq;


	if (ibss_param->channel_fixed) {
	if (ibss_param->channel_fixed) {
		/*
		/*
@@ -2878,7 +2881,7 @@ static int ath6kl_start_ap(struct wiphy *wiphy, struct net_device *dev,
	p.ssid_len = vif->ssid_len;
	p.ssid_len = vif->ssid_len;
	memcpy(p.ssid, vif->ssid, vif->ssid_len);
	memcpy(p.ssid, vif->ssid, vif->ssid_len);
	p.dot11_auth_mode = vif->dot11_auth_mode;
	p.dot11_auth_mode = vif->dot11_auth_mode;
	p.ch = cpu_to_le16(info->channel->center_freq);
	p.ch = cpu_to_le16(info->chandef.chan->center_freq);


	/* Enable uAPSD support by default */
	/* Enable uAPSD support by default */
	res = ath6kl_wmi_ap_set_apsd(ar->wmi, vif->fw_vif_idx, true);
	res = ath6kl_wmi_ap_set_apsd(ar->wmi, vif->fw_vif_idx, true);
@@ -2909,8 +2912,9 @@ static int ath6kl_start_ap(struct wiphy *wiphy, struct net_device *dev,
			return res;
			return res;
	}
	}


	if (ath6kl_set_htcap(vif, info->channel->band,
	if (ath6kl_set_htcap(vif, info->chandef.chan->band,
			     info->channel_type != NL80211_CHAN_NO_HT))
			     cfg80211_get_chandef_type(&info->chandef)
					!= NL80211_CHAN_NO_HT))
		return -EIO;
		return -EIO;


	/*
	/*
@@ -3006,7 +3010,6 @@ static int ath6kl_change_station(struct wiphy *wiphy, struct net_device *dev,
static int ath6kl_remain_on_channel(struct wiphy *wiphy,
static int ath6kl_remain_on_channel(struct wiphy *wiphy,
				    struct wireless_dev *wdev,
				    struct wireless_dev *wdev,
				    struct ieee80211_channel *chan,
				    struct ieee80211_channel *chan,
				    enum nl80211_channel_type channel_type,
				    unsigned int duration,
				    unsigned int duration,
				    u64 *cookie)
				    u64 *cookie)
{
{
@@ -3165,10 +3168,8 @@ static bool ath6kl_is_p2p_go_ssid(const u8 *buf, size_t len)


static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
static int ath6kl_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
			  struct ieee80211_channel *chan, bool offchan,
			  struct ieee80211_channel *chan, bool offchan,
			  enum nl80211_channel_type channel_type,
			  unsigned int wait, const u8 *buf, size_t len,
			  bool channel_type_valid, unsigned int wait,
			  bool no_cck, bool dont_wait_for_ack, u64 *cookie)
			  const u8 *buf, size_t len, bool no_cck,
			  bool dont_wait_for_ack, u64 *cookie)
{
{
	struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev);
	struct ath6kl_vif *vif = ath6kl_vif_from_wdev(wdev);
	struct ath6kl *ar = ath6kl_priv(vif->ndev);
	struct ath6kl *ar = ath6kl_priv(vif->ndev);
+2 −3
Original line number Original line Diff line number Diff line
@@ -474,7 +474,7 @@ static int ath6kl_wmi_remain_on_chnl_event_rx(struct wmi *wmi, u8 *datap,
		return -EINVAL;
		return -EINVAL;
	}
	}
	id = vif->last_roc_id;
	id = vif->last_roc_id;
	cfg80211_ready_on_channel(&vif->wdev, id, chan, NL80211_CHAN_NO_HT,
	cfg80211_ready_on_channel(&vif->wdev, id, chan,
				  dur, GFP_ATOMIC);
				  dur, GFP_ATOMIC);


	return 0;
	return 0;
@@ -513,8 +513,7 @@ static int ath6kl_wmi_cancel_remain_on_chnl_event_rx(struct wmi *wmi,
	else
	else
		id = vif->last_roc_id; /* timeout on uncanceled r-o-c */
		id = vif->last_roc_id; /* timeout on uncanceled r-o-c */
	vif->last_cancel_roc_id = 0;
	vif->last_cancel_roc_id = 0;
	cfg80211_remain_on_channel_expired(&vif->wdev, id, chan,
	cfg80211_remain_on_channel_expired(&vif->wdev, id, chan, GFP_ATOMIC);
					   NL80211_CHAN_NO_HT, GFP_ATOMIC);


	return 0;
	return 0;
}
}
+6 −5
Original line number Original line Diff line number Diff line
@@ -1013,8 +1013,8 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
	else
	else
		WL_CONN("No BSSID specified\n");
		WL_CONN("No BSSID specified\n");


	if (params->channel)
	if (params->chandef.chan)
		WL_CONN("channel: %d\n", params->channel->center_freq);
		WL_CONN("channel: %d\n", params->chandef.chan->center_freq);
	else
	else
		WL_CONN("no channel specified\n");
		WL_CONN("no channel specified\n");


@@ -1087,12 +1087,12 @@ brcmf_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
	}
	}


	/* Channel */
	/* Channel */
	if (params->channel) {
	if (params->chandef.chan) {
		u32 target_channel;
		u32 target_channel;


		cfg->channel =
		cfg->channel =
			ieee80211_frequency_to_channel(
			ieee80211_frequency_to_channel(
				params->channel->center_freq);
				params->chandef.chan->center_freq);
		if (params->channel_fixed) {
		if (params->channel_fixed) {
			/* adding chanspec */
			/* adding chanspec */
			brcmf_ch_to_chanspec(cfg->channel,
			brcmf_ch_to_chanspec(cfg->channel,
@@ -3506,7 +3506,8 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev,
	s32 bssidx = 0;
	s32 bssidx = 0;


	WL_TRACE("channel_type=%d, beacon_interval=%d, dtim_period=%d,\n",
	WL_TRACE("channel_type=%d, beacon_interval=%d, dtim_period=%d,\n",
		 settings->channel_type, settings->beacon_interval,
		 cfg80211_get_chandef_type(&settings->chandef),
		 settings->beacon_interval,
		 settings->dtim_period);
		 settings->dtim_period);
	WL_TRACE("ssid=%s(%zu), auth_type=%d, inactivity_timeout=%d\n",
	WL_TRACE("ssid=%s(%zu), auth_type=%d, inactivity_timeout=%d\n",
		 settings->ssid, settings->ssid_len, settings->auth_type,
		 settings->ssid, settings->ssid_len, settings->auth_type,
+0 −1
Original line number Original line Diff line number Diff line
@@ -789,7 +789,6 @@ struct iwl_priv {
	/* remain-on-channel offload support */
	/* remain-on-channel offload support */
	struct ieee80211_channel *hw_roc_channel;
	struct ieee80211_channel *hw_roc_channel;
	struct delayed_work hw_roc_disable_work;
	struct delayed_work hw_roc_disable_work;
	enum nl80211_channel_type hw_roc_chantype;
	int hw_roc_duration;
	int hw_roc_duration;
	bool hw_roc_setup, hw_roc_start_notified;
	bool hw_roc_setup, hw_roc_start_notified;


+0 −2
Original line number Original line Diff line number Diff line
@@ -1037,7 +1037,6 @@ done:
static int iwlagn_mac_remain_on_channel(struct ieee80211_hw *hw,
static int iwlagn_mac_remain_on_channel(struct ieee80211_hw *hw,
				     struct ieee80211_vif *vif,
				     struct ieee80211_vif *vif,
				     struct ieee80211_channel *channel,
				     struct ieee80211_channel *channel,
				     enum nl80211_channel_type channel_type,
				     int duration)
				     int duration)
{
{
	struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
	struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
@@ -1069,7 +1068,6 @@ static int iwlagn_mac_remain_on_channel(struct ieee80211_hw *hw,
	}
	}


	priv->hw_roc_channel = channel;
	priv->hw_roc_channel = channel;
	priv->hw_roc_chantype = channel_type;
	/* convert from ms to TU */
	/* convert from ms to TU */
	priv->hw_roc_duration = DIV_ROUND_UP(1000 * duration, 1024);
	priv->hw_roc_duration = DIV_ROUND_UP(1000 * duration, 1024);
	priv->hw_roc_start_notified = false;
	priv->hw_roc_start_notified = false;
Loading