mac80211: Update to version 5.15.81
The removed patches were applied upstream. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		| @@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk | |||||||
|  |  | ||||||
| PKG_NAME:=mac80211 | PKG_NAME:=mac80211 | ||||||
|  |  | ||||||
| PKG_VERSION:=5.15.74-1 | PKG_VERSION:=5.15.81-1 | ||||||
| PKG_RELEASE:=1 | PKG_RELEASE:=1 | ||||||
| PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.74/ | PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.81/ | ||||||
| PKG_HASH:=98098d0cab24cc76a04db738dc746a0c8d38d180398805481224f141cca06423 | PKG_HASH:=5227d3c35ccebacfaee6b8180b3a87b9910f3c94ee768ebc5c0fef3c86b6146d | ||||||
|  |  | ||||||
| PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz | PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz | ||||||
| PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) | PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/net/wireless/reg.c | --- a/net/wireless/reg.c | ||||||
| +++ b/net/wireless/reg.c | +++ b/net/wireless/reg.c | ||||||
| @@ -3309,6 +3309,8 @@ void regulatory_hint_country_ie(struct w | @@ -3315,6 +3315,8 @@ void regulatory_hint_country_ie(struct w | ||||||
|  	enum environment_cap env = ENVIRON_ANY; |  	enum environment_cap env = ENVIRON_ANY; | ||||||
|  	struct regulatory_request *request = NULL, *lr; |  	struct regulatory_request *request = NULL, *lr; | ||||||
|   |   | ||||||
| @@ -9,7 +9,7 @@ | |||||||
|  	/* IE len must be evenly divisible by 2 */ |  	/* IE len must be evenly divisible by 2 */ | ||||||
|  	if (country_ie_len & 0x01) |  	if (country_ie_len & 0x01) | ||||||
|  		return; |  		return; | ||||||
| @@ -3560,6 +3562,7 @@ static bool is_wiphy_all_set_reg_flag(en | @@ -3566,6 +3568,7 @@ static bool is_wiphy_all_set_reg_flag(en | ||||||
|   |   | ||||||
|  void regulatory_hint_disconnect(void) |  void regulatory_hint_disconnect(void) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|   |   | ||||||
| --- a/drivers/net/wireless/ath/ath10k/mac.c | --- a/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| +++ b/drivers/net/wireless/ath/ath10k/mac.c | +++ b/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| @@ -3710,6 +3710,9 @@ ath10k_mac_tx_h_get_txmode(struct ath10k | @@ -3717,6 +3717,9 @@ ath10k_mac_tx_h_get_txmode(struct ath10k | ||||||
|  	const struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(skb); |  	const struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(skb); | ||||||
|  	__le16 fc = hdr->frame_control; |  	__le16 fc = hdr->frame_control; | ||||||
|   |   | ||||||
| @@ -60,7 +60,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  	if (!vif || vif->type == NL80211_IFTYPE_MONITOR) |  	if (!vif || vif->type == NL80211_IFTYPE_MONITOR) | ||||||
|  		return ATH10K_HW_TXRX_RAW; |  		return ATH10K_HW_TXRX_RAW; | ||||||
|   |   | ||||||
| @@ -3870,6 +3873,12 @@ static void ath10k_mac_tx_h_fill_cb(stru | @@ -3877,6 +3880,12 @@ static void ath10k_mac_tx_h_fill_cb(stru | ||||||
|  	bool noack = false; |  	bool noack = false; | ||||||
|   |   | ||||||
|  	cb->flags = 0; |  	cb->flags = 0; | ||||||
| @@ -73,7 +73,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  	if (!ath10k_tx_h_use_hwcrypto(vif, skb)) |  	if (!ath10k_tx_h_use_hwcrypto(vif, skb)) | ||||||
|  		cb->flags |= ATH10K_SKB_F_NO_HWCRYPT; |  		cb->flags |= ATH10K_SKB_F_NO_HWCRYPT; | ||||||
|   |   | ||||||
| @@ -3908,6 +3917,7 @@ static void ath10k_mac_tx_h_fill_cb(stru | @@ -3915,6 +3924,7 @@ static void ath10k_mac_tx_h_fill_cb(stru | ||||||
|  		cb->flags |= ATH10K_SKB_F_RAW_TX; |  		cb->flags |= ATH10K_SKB_F_RAW_TX; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -81,7 +81,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  	cb->vif = vif; |  	cb->vif = vif; | ||||||
|  	cb->txq = txq; |  	cb->txq = txq; | ||||||
|  	cb->airtime_est = airtime; |  	cb->airtime_est = airtime; | ||||||
| @@ -4031,7 +4041,11 @@ static int ath10k_mac_tx(struct ath10k * | @@ -4038,7 +4048,11 @@ static int ath10k_mac_tx(struct ath10k * | ||||||
|  		ath10k_tx_h_seq_no(vif, skb); |  		ath10k_tx_h_seq_no(vif, skb); | ||||||
|  		break; |  		break; | ||||||
|  	case ATH10K_HW_TXRX_ETHERNET: |  	case ATH10K_HW_TXRX_ETHERNET: | ||||||
| @@ -94,7 +94,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  		break; |  		break; | ||||||
|  	case ATH10K_HW_TXRX_RAW: |  	case ATH10K_HW_TXRX_RAW: | ||||||
|  		if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags) && |  		if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags) && | ||||||
| @@ -4643,12 +4657,10 @@ static void ath10k_mac_op_tx(struct ieee | @@ -4650,12 +4664,10 @@ static void ath10k_mac_op_tx(struct ieee | ||||||
|  	struct ieee80211_vif *vif = info->control.vif; |  	struct ieee80211_vif *vif = info->control.vif; | ||||||
|  	struct ieee80211_sta *sta = control->sta; |  	struct ieee80211_sta *sta = control->sta; | ||||||
|  	struct ieee80211_txq *txq = NULL; |  	struct ieee80211_txq *txq = NULL; | ||||||
| @@ -107,7 +107,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  	int ret; |  	int ret; | ||||||
|  	u16 airtime; |  	u16 airtime; | ||||||
|   |   | ||||||
| @@ -4662,8 +4674,14 @@ static void ath10k_mac_op_tx(struct ieee | @@ -4669,8 +4681,14 @@ static void ath10k_mac_op_tx(struct ieee | ||||||
|  	is_mgmt = (txpath == ATH10K_MAC_TX_HTT_MGMT); |  	is_mgmt = (txpath == ATH10K_MAC_TX_HTT_MGMT); | ||||||
|   |   | ||||||
|  	if (is_htt) { |  	if (is_htt) { | ||||||
| @@ -123,7 +123,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|   |   | ||||||
|  		ret = ath10k_htt_tx_inc_pending(htt); |  		ret = ath10k_htt_tx_inc_pending(htt); | ||||||
|  		if (ret) { |  		if (ret) { | ||||||
| @@ -5463,6 +5481,30 @@ static int ath10k_mac_set_txbf_conf(stru | @@ -5470,6 +5488,30 @@ static int ath10k_mac_set_txbf_conf(stru | ||||||
|  					 ar->wmi.vdev_param->txbf, value); |  					 ar->wmi.vdev_param->txbf, value); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -154,7 +154,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  /* |  /* | ||||||
|   * TODO: |   * TODO: | ||||||
|   * Figure out how to handle WMI_VDEV_SUBTYPE_P2P_DEVICE, |   * Figure out how to handle WMI_VDEV_SUBTYPE_P2P_DEVICE, | ||||||
| @@ -5672,15 +5714,7 @@ static int ath10k_add_interface(struct i | @@ -5679,15 +5721,7 @@ static int ath10k_add_interface(struct i | ||||||
|   |   | ||||||
|  	arvif->def_wep_key_idx = -1; |  	arvif->def_wep_key_idx = -1; | ||||||
|   |   | ||||||
| @@ -171,7 +171,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|   |   | ||||||
|  	/* Configuring number of spatial stream for monitor interface is causing |  	/* Configuring number of spatial stream for monitor interface is causing | ||||||
|  	 * target assert in qca9888 and qca6174. |  	 * target assert in qca9888 and qca6174. | ||||||
| @@ -9368,6 +9402,7 @@ static const struct ieee80211_ops ath10k | @@ -9372,6 +9406,7 @@ static const struct ieee80211_ops ath10k | ||||||
|  	.stop				= ath10k_stop, |  	.stop				= ath10k_stop, | ||||||
|  	.config				= ath10k_config, |  	.config				= ath10k_config, | ||||||
|  	.add_interface			= ath10k_add_interface, |  	.add_interface			= ath10k_add_interface, | ||||||
| @@ -179,7 +179,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com | |||||||
|  	.remove_interface		= ath10k_remove_interface, |  	.remove_interface		= ath10k_remove_interface, | ||||||
|  	.configure_filter		= ath10k_configure_filter, |  	.configure_filter		= ath10k_configure_filter, | ||||||
|  	.bss_info_changed		= ath10k_bss_info_changed, |  	.bss_info_changed		= ath10k_bss_info_changed, | ||||||
| @@ -10037,6 +10072,12 @@ int ath10k_mac_register(struct ath10k *a | @@ -10041,6 +10076,12 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|  	if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map)) |  	if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map)) | ||||||
|  		ieee80211_hw_set(ar->hw, SUPPORTS_TDLS_BUFFER_STA); |  		ieee80211_hw_set(ar->hw, SUPPORTS_TDLS_BUFFER_STA); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/net/wireless/ath/ath10k/mac.c | --- a/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| +++ b/drivers/net/wireless/ath/ath10k/mac.c | +++ b/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| @@ -9894,6 +9894,21 @@ static int ath10k_mac_init_rd(struct ath | @@ -9898,6 +9898,21 @@ static int ath10k_mac_init_rd(struct ath | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -22,7 +22,7 @@ | |||||||
|  int ath10k_mac_register(struct ath10k *ar) |  int ath10k_mac_register(struct ath10k *ar) | ||||||
|  { |  { | ||||||
|  	static const u32 cipher_suites[] = { |  	static const u32 cipher_suites[] = { | ||||||
| @@ -10252,6 +10267,12 @@ int ath10k_mac_register(struct ath10k *a | @@ -10256,6 +10271,12 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|   |   | ||||||
|  	ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; |  	ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me> | |||||||
|  	if (ret) |  	if (ret) | ||||||
| --- a/drivers/net/wireless/ath/ath10k/mac.c | --- a/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| +++ b/drivers/net/wireless/ath/ath10k/mac.c | +++ b/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| @@ -10269,7 +10269,7 @@ int ath10k_mac_register(struct ath10k *a | @@ -10273,7 +10273,7 @@ int ath10k_mac_register(struct ath10k *a | ||||||
|  	ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; |  	ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; | ||||||
|   |   | ||||||
|  #ifdef CPTCFG_MAC80211_LEDS |  #ifdef CPTCFG_MAC80211_LEDS | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ Forwarded: no | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ath/ath10k/mac.c | --- a/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| +++ b/drivers/net/wireless/ath/ath10k/mac.c | +++ b/drivers/net/wireless/ath/ath10k/mac.c | ||||||
| @@ -1021,6 +1021,40 @@ static inline int ath10k_vdev_setup_sync | @@ -1028,6 +1028,40 @@ static inline int ath10k_vdev_setup_sync | ||||||
|  	return ar->last_wmi_vdev_start_status; |  	return ar->last_wmi_vdev_start_status; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -69,7 +69,7 @@ Forwarded: no | |||||||
|  static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id) |  static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id) | ||||||
|  { |  { | ||||||
|  	struct cfg80211_chan_def *chandef = NULL; |  	struct cfg80211_chan_def *chandef = NULL; | ||||||
| @@ -1053,7 +1087,8 @@ static int ath10k_monitor_vdev_start(str | @@ -1060,7 +1094,8 @@ static int ath10k_monitor_vdev_start(str | ||||||
|  	arg.channel.min_power = 0; |  	arg.channel.min_power = 0; | ||||||
|  	arg.channel.max_power = channel->max_power * 2; |  	arg.channel.max_power = channel->max_power * 2; | ||||||
|  	arg.channel.max_reg_power = channel->max_reg_power * 2; |  	arg.channel.max_reg_power = channel->max_reg_power * 2; | ||||||
| @@ -79,7 +79,7 @@ Forwarded: no | |||||||
|   |   | ||||||
|  	reinit_completion(&ar->vdev_setup_done); |  	reinit_completion(&ar->vdev_setup_done); | ||||||
|  	reinit_completion(&ar->vdev_delete_done); |  	reinit_completion(&ar->vdev_delete_done); | ||||||
| @@ -1499,7 +1534,8 @@ static int ath10k_vdev_start_restart(str | @@ -1506,7 +1541,8 @@ static int ath10k_vdev_start_restart(str | ||||||
|  	arg.channel.min_power = 0; |  	arg.channel.min_power = 0; | ||||||
|  	arg.channel.max_power = chandef->chan->max_power * 2; |  	arg.channel.max_power = chandef->chan->max_power * 2; | ||||||
|  	arg.channel.max_reg_power = chandef->chan->max_reg_power * 2; |  	arg.channel.max_reg_power = chandef->chan->max_reg_power * 2; | ||||||
| @@ -89,7 +89,7 @@ Forwarded: no | |||||||
|   |   | ||||||
|  	if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { |  	if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { | ||||||
|  		arg.ssid = arvif->u.ap.ssid; |  		arg.ssid = arvif->u.ap.ssid; | ||||||
| @@ -3427,7 +3463,8 @@ static int ath10k_update_channel_list(st | @@ -3434,7 +3470,8 @@ static int ath10k_update_channel_list(st | ||||||
|  			ch->min_power = 0; |  			ch->min_power = 0; | ||||||
|  			ch->max_power = channel->max_power * 2; |  			ch->max_power = channel->max_power * 2; | ||||||
|  			ch->max_reg_power = channel->max_reg_power * 2; |  			ch->max_reg_power = channel->max_reg_power * 2; | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ Link: https://lore.kernel.org/r/20220506044246.67146-1-pavel@loebl.cz | |||||||
|  #include <net/cfg80211.h> |  #include <net/cfg80211.h> | ||||||
|  #include <net/rtnetlink.h> |  #include <net/rtnetlink.h> | ||||||
|  #include <net/addrconf.h> |  #include <net/addrconf.h> | ||||||
| @@ -1226,7 +1227,8 @@ static int brcmf_bus_started(struct brcm | @@ -1227,7 +1228,8 @@ static int brcmf_bus_started(struct brcm | ||||||
|  	brcmf_dbg(TRACE, "\n"); |  	brcmf_dbg(TRACE, "\n"); | ||||||
|   |   | ||||||
|  	/* add primary networking interface */ |  	/* add primary networking interface */ | ||||||
|   | |||||||
| @@ -100,7 +100,7 @@ | |||||||
|  	.add_key = brcmf_cfg80211_add_key, |  	.add_key = brcmf_cfg80211_add_key, | ||||||
| --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | ||||||
| +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | ||||||
| @@ -1363,6 +1363,8 @@ int brcmf_attach(struct device *dev) | @@ -1364,6 +1364,8 @@ int brcmf_attach(struct device *dev) | ||||||
|   |   | ||||||
|  	/* Link to bus module */ |  	/* Link to bus module */ | ||||||
|  	drvr->hdrlen = 0; |  	drvr->hdrlen = 0; | ||||||
| @@ -109,7 +109,7 @@ | |||||||
|   |   | ||||||
|  	/* Attach and link in the protocol */ |  	/* Attach and link in the protocol */ | ||||||
|  	ret = brcmf_proto_attach(drvr); |  	ret = brcmf_proto_attach(drvr); | ||||||
| @@ -1445,6 +1447,12 @@ void brcmf_detach(struct device *dev) | @@ -1446,6 +1448,12 @@ void brcmf_detach(struct device *dev) | ||||||
|  	if (drvr == NULL) |  	if (drvr == NULL) | ||||||
|  		return; |  		return; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -9435,6 +9435,8 @@ static int rt2800_init_eeprom(struct rt2 | @@ -9461,6 +9461,8 @@ static int rt2800_init_eeprom(struct rt2 | ||||||
|  		rf = RF3853; |  		rf = RF3853; | ||||||
|  	else if (rt2x00_rt(rt2x00dev, RT5350)) |  	else if (rt2x00_rt(rt2x00dev, RT5350)) | ||||||
|  		rf = RF5350; |  		rf = RF5350; | ||||||
|   | |||||||
| @@ -50,7 +50,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|   * EEPROM LNA |   * EEPROM LNA | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -4368,6 +4368,43 @@ static void rt2800_config_channel(struct | @@ -4372,6 +4372,43 @@ static void rt2800_config_channel(struct | ||||||
|  			rt2800_iq_calibrate(rt2x00dev, rf->channel); |  			rt2800_iq_calibrate(rt2x00dev, rf->channel); | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -94,7 +94,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|  	bbp = rt2800_bbp_read(rt2x00dev, 4); |  	bbp = rt2800_bbp_read(rt2x00dev, 4); | ||||||
|  	rt2x00_set_field8(&bbp, BBP4_BANDWIDTH, 2 * conf_is_ht40(conf)); |  	rt2x00_set_field8(&bbp, BBP4_BANDWIDTH, 2 * conf_is_ht40(conf)); | ||||||
|  	rt2800_bbp_write(rt2x00dev, 4, bbp); |  	rt2800_bbp_write(rt2x00dev, 4, bbp); | ||||||
| @@ -9566,7 +9603,8 @@ static int rt2800_init_eeprom(struct rt2 | @@ -9592,7 +9629,8 @@ static int rt2800_init_eeprom(struct rt2 | ||||||
|  	 */ |  	 */ | ||||||
|  	eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1); |  	eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1); | ||||||
|   |   | ||||||
| @@ -104,7 +104,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|  		if (rt2x00_get_field16(eeprom, |  		if (rt2x00_get_field16(eeprom, | ||||||
|  		    EEPROM_NIC_CONF1_EXTERNAL_TX0_PA_3352)) |  		    EEPROM_NIC_CONF1_EXTERNAL_TX0_PA_3352)) | ||||||
|  		    __set_bit(CAPABILITY_EXTERNAL_PA_TX0, |  		    __set_bit(CAPABILITY_EXTERNAL_PA_TX0, | ||||||
| @@ -9577,6 +9615,18 @@ static int rt2800_init_eeprom(struct rt2 | @@ -9603,6 +9641,18 @@ static int rt2800_init_eeprom(struct rt2 | ||||||
|  			      &rt2x00dev->cap_flags); |  			      &rt2x00dev->cap_flags); | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
|   | |||||||
| @@ -120,7 +120,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|   |   | ||||||
|  	if (chan->center_freq > 2457) { |  	if (chan->center_freq > 2457) { | ||||||
|  		bbp = rt2800_bbp_read(rt2x00dev, 30); |  		bbp = rt2800_bbp_read(rt2x00dev, 30); | ||||||
| @@ -6249,46 +6282,6 @@ static int rt2800_init_registers(struct | @@ -6275,46 +6308,6 @@ static int rt2800_init_registers(struct | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -167,7 +167,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|   |   | ||||||
|  static void rt2800_bbp4_mac_if_ctrl(struct rt2x00_dev *rt2x00dev) |  static void rt2800_bbp4_mac_if_ctrl(struct rt2x00_dev *rt2x00dev) | ||||||
|  { |  { | ||||||
| @@ -9110,7 +9103,7 @@ int rt2800_enable_radio(struct rt2x00_de | @@ -9136,7 +9129,7 @@ int rt2800_enable_radio(struct rt2x00_de | ||||||
|  	/* |  	/* | ||||||
|  	 * Wait BBP/RF to wake up. |  	 * Wait BBP/RF to wake up. | ||||||
|  	 */ |  	 */ | ||||||
|   | |||||||
| @@ -42,7 +42,7 @@ v2: use ++i instead of i = i + 1 in loops | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -8428,6 +8428,53 @@ static void rt2800_init_rfcsr_5592(struc | @@ -8454,6 +8454,53 @@ static void rt2800_init_rfcsr_5592(struc | ||||||
|  	rt2800_led_open_drain_enable(rt2x00dev); |  	rt2800_led_open_drain_enable(rt2x00dev); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -96,7 +96,7 @@ v2: use ++i instead of i = i + 1 in loops | |||||||
|  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, |  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, | ||||||
|  				       bool set_bw, bool is_ht40) |  				       bool set_bw, bool is_ht40) | ||||||
|  { |  { | ||||||
| @@ -9035,6 +9082,7 @@ static void rt2800_init_rfcsr_6352(struc | @@ -9061,6 +9108,7 @@ static void rt2800_init_rfcsr_6352(struc | ||||||
|  	rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); |  	rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); | ||||||
|  	rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); |  	rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -54,7 +54,7 @@ v2: use rt2800_wait_bbp_rf_ready() | |||||||
|   * PWR_PIN_CFG: |   * PWR_PIN_CFG: | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -8475,6 +8475,138 @@ static void rt2800_rf_self_txdc_cal(stru | @@ -8501,6 +8501,138 @@ static void rt2800_rf_self_txdc_cal(stru | ||||||
|  	rt2800_register_write(rt2x00dev, RF_BYPASS2, mac052c); |  	rt2800_register_write(rt2x00dev, RF_BYPASS2, mac052c); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -193,7 +193,7 @@ v2: use rt2800_wait_bbp_rf_ready() | |||||||
|  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, |  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, | ||||||
|  				       bool set_bw, bool is_ht40) |  				       bool set_bw, bool is_ht40) | ||||||
|  { |  { | ||||||
| @@ -9082,6 +9214,7 @@ static void rt2800_init_rfcsr_6352(struc | @@ -9108,6 +9240,7 @@ static void rt2800_init_rfcsr_6352(struc | ||||||
|  	rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); |  	rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); | ||||||
|  	rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); |  	rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -8607,6 +8607,65 @@ static void rt2800_r_calibration(struct | @@ -8633,6 +8633,65 @@ static void rt2800_r_calibration(struct | ||||||
|  	rt2800_register_write(rt2x00dev, PWR_PIN_CFG, MAC_PWR_PIN_CFG); |  	rt2800_register_write(rt2x00dev, PWR_PIN_CFG, MAC_PWR_PIN_CFG); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -107,7 +107,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, |  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, | ||||||
|  				       bool set_bw, bool is_ht40) |  				       bool set_bw, bool is_ht40) | ||||||
|  { |  { | ||||||
| @@ -9216,6 +9275,7 @@ static void rt2800_init_rfcsr_6352(struc | @@ -9242,6 +9301,7 @@ static void rt2800_init_rfcsr_6352(struc | ||||||
|   |   | ||||||
|  	rt2800_r_calibration(rt2x00dev); |  	rt2800_r_calibration(rt2x00dev); | ||||||
|  	rt2800_rf_self_txdc_cal(rt2x00dev); |  	rt2800_rf_self_txdc_cal(rt2x00dev); | ||||||
|   | |||||||
| @@ -43,7 +43,7 @@ v2: use rt2800_wait_bbp_rf_ready(), fix indentation | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -8666,6 +8666,380 @@ static void rt2800_rxdcoc_calibration(st | @@ -8692,6 +8692,380 @@ static void rt2800_rxdcoc_calibration(st | ||||||
|  	rt2800_rfcsr_write_bank(rt2x00dev, 0, 2, saverfb0r2); |  	rt2800_rfcsr_write_bank(rt2x00dev, 0, 2, saverfb0r2); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -424,7 +424,7 @@ v2: use rt2800_wait_bbp_rf_ready(), fix indentation | |||||||
|  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, |  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, | ||||||
|  				       bool set_bw, bool is_ht40) |  				       bool set_bw, bool is_ht40) | ||||||
|  { |  { | ||||||
| @@ -9278,6 +9652,7 @@ static void rt2800_init_rfcsr_6352(struc | @@ -9304,6 +9678,7 @@ static void rt2800_init_rfcsr_6352(struc | ||||||
|  	rt2800_rxdcoc_calibration(rt2x00dev); |  	rt2800_rxdcoc_calibration(rt2x00dev); | ||||||
|  	rt2800_bw_filter_calibration(rt2x00dev, true); |  	rt2800_bw_filter_calibration(rt2x00dev, true); | ||||||
|  	rt2800_bw_filter_calibration(rt2x00dev, false); |  	rt2800_bw_filter_calibration(rt2x00dev, false); | ||||||
|   | |||||||
| @@ -1,52 +0,0 @@ | |||||||
| From patchwork Sat Sep 17 20:28:29 2022 |  | ||||||
| Content-Type: text/plain; charset="utf-8" |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| X-Patchwork-Id: 12979250 |  | ||||||
| X-Patchwork-Delegate: kvalo@adurom.com |  | ||||||
| Return-Path: <linux-wireless-owner@kernel.org> |  | ||||||
| Date: Sat, 17 Sep 2022 21:28:29 +0100 |  | ||||||
| From: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| To: linux-wireless@vger.kernel.org, Stanislaw Gruszka <stf_xl@wp.pl>, |  | ||||||
|         Helmut Schaa <helmut.schaa@googlemail.com> |  | ||||||
| Cc: Kalle Valo <kvalo@kernel.org>, |  | ||||||
|         "David S. Miller" <davem@davemloft.net>, |  | ||||||
|         Eric Dumazet <edumazet@google.com>, |  | ||||||
|         Jakub Kicinski <kuba@kernel.org>, |  | ||||||
|         Paolo Abeni <pabeni@redhat.com>, |  | ||||||
|         Johannes Berg <johannes.berg@intel.com> |  | ||||||
| Subject: [PATCH v3 09/16] rt2x00: don't run Rt5592 IQ calibration on MT7620 |  | ||||||
| Message-ID:  |  | ||||||
|  <31a1c34ddbd296b82f38c18c9ae7339059215fdc.1663445157.git.daniel@makrotopia.org> |  | ||||||
| References: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Disposition: inline |  | ||||||
| In-Reply-To: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| Precedence: bulk |  | ||||||
| List-ID: <linux-wireless.vger.kernel.org> |  | ||||||
| X-Mailing-List: linux-wireless@vger.kernel.org |  | ||||||
|  |  | ||||||
| The function rt2800_iq_calibrate is intended for Rt5592 only. |  | ||||||
| Don't call it for MT7620 which has it's own calibration functions. |  | ||||||
|  |  | ||||||
| Reported-by: Serge Vasilugin <vasilugin@yandex.ru> |  | ||||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| --- |  | ||||||
| v2: test for RT5592 instead of !RT6352 |  | ||||||
|  |  | ||||||
|  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- |  | ||||||
|  1 file changed, 2 insertions(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| @@ -4398,7 +4398,8 @@ static void rt2800_config_channel(struct |  | ||||||
|  		reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2*rt2x00dev->lna_gain; |  | ||||||
|  		rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg); |  | ||||||
|   |  | ||||||
| -		rt2800_iq_calibrate(rt2x00dev, rf->channel); |  | ||||||
| +		if (rt2x00_rt(rt2x00dev, RT5592)) |  | ||||||
| +			rt2800_iq_calibrate(rt2x00dev, rf->channel); |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	if (rt2x00_rt(rt2x00dev, RT6352)) { |  | ||||||
| @@ -45,7 +45,7 @@ Reported-by: kernel test robot <lkp@intel.com> | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c | ||||||
| @@ -9041,6 +9041,907 @@ restore_value: | @@ -9066,6 +9066,907 @@ restore_value: | ||||||
|  	rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, savemacsysctrl); |  	rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, savemacsysctrl); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -953,7 +953,7 @@ Reported-by: kernel test robot <lkp@intel.com> | |||||||
|  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, |  static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, | ||||||
|  				       bool set_bw, bool is_ht40) |  				       bool set_bw, bool is_ht40) | ||||||
|  { |  { | ||||||
| @@ -9653,6 +10554,7 @@ static void rt2800_init_rfcsr_6352(struc | @@ -9678,6 +10579,7 @@ static void rt2800_init_rfcsr_6352(struc | ||||||
|  	rt2800_rxdcoc_calibration(rt2x00dev); |  	rt2800_rxdcoc_calibration(rt2x00dev); | ||||||
|  	rt2800_bw_filter_calibration(rt2x00dev, true); |  	rt2800_bw_filter_calibration(rt2x00dev, true); | ||||||
|  	rt2800_bw_filter_calibration(rt2x00dev, false); |  	rt2800_bw_filter_calibration(rt2x00dev, false); | ||||||
|   | |||||||
| @@ -65,7 +65,7 @@ Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> | |||||||
|  static u8 rt2800_rfcsr_read(struct rt2x00_dev *rt2x00dev, |  static u8 rt2800_rfcsr_read(struct rt2x00_dev *rt2x00dev, | ||||||
|  			    const unsigned int word) |  			    const unsigned int word) | ||||||
|  { |  { | ||||||
| @@ -6947,26 +6967,6 @@ static void rt2800_init_bbp_5592(struct | @@ -6972,26 +6992,6 @@ static void rt2800_init_bbp_5592(struct | ||||||
|  		rt2800_bbp_write(rt2x00dev, 103, 0xc0); |  		rt2800_bbp_write(rt2x00dev, 103, 0xc0); | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   | |||||||
| @@ -1,52 +0,0 @@ | |||||||
| From patchwork Sat Sep 17 20:29:26 2022 |  | ||||||
| Content-Type: text/plain; charset="utf-8" |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| X-Patchwork-Id: 12979254 |  | ||||||
| X-Patchwork-Delegate: kvalo@adurom.com |  | ||||||
| Return-Path: <linux-wireless-owner@kernel.org> |  | ||||||
| Date: Sat, 17 Sep 2022 21:29:26 +0100 |  | ||||||
| From: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| To: linux-wireless@vger.kernel.org, Stanislaw Gruszka <stf_xl@wp.pl>, |  | ||||||
|         Helmut Schaa <helmut.schaa@googlemail.com> |  | ||||||
| Cc: Kalle Valo <kvalo@kernel.org>, |  | ||||||
|         "David S. Miller" <davem@davemloft.net>, |  | ||||||
|         Eric Dumazet <edumazet@google.com>, |  | ||||||
|         Jakub Kicinski <kuba@kernel.org>, |  | ||||||
|         Paolo Abeni <pabeni@redhat.com>, |  | ||||||
|         Johannes Berg <johannes.berg@intel.com> |  | ||||||
| Subject: [PATCH v3 13/16] rt2x00: set correct TX_SW_CFG1 MAC register for |  | ||||||
|  MT7620 |  | ||||||
| Message-ID:  |  | ||||||
|  <4be38975ce600a34249e12d09a3cb758c6e71071.1663445157.git.daniel@makrotopia.org> |  | ||||||
| References: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Disposition: inline |  | ||||||
| In-Reply-To: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| Precedence: bulk |  | ||||||
| List-ID: <linux-wireless.vger.kernel.org> |  | ||||||
| X-Mailing-List: linux-wireless@vger.kernel.org |  | ||||||
|  |  | ||||||
| Set correct TX_SW_CFG1 MAC register as it is done also in v3 of the |  | ||||||
| vendor driver[1]. |  | ||||||
|  |  | ||||||
| [1]: https://gitlab.com/dm38/padavan-ng/-/blob/master/trunk/proprietary/rt_wifi/rtpci/3.0.X.X/mt76x2/chips/rt6352.c#L531 |  | ||||||
| Reported-by: Serge Vasilugin <vasilugin@yandex.ru> |  | ||||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> |  | ||||||
| --- |  | ||||||
|  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 +- |  | ||||||
|  1 file changed, 1 insertion(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| @@ -5966,7 +5966,7 @@ static int rt2800_init_registers(struct |  | ||||||
|  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404); |  | ||||||
|  	} else if (rt2x00_rt(rt2x00dev, RT6352)) { |  | ||||||
|  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000401); |  | ||||||
| -		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0000); |  | ||||||
| +		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0001); |  | ||||||
|  		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000); |  | ||||||
|  		rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000); |  | ||||||
|  		rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0); |  | ||||||
| @@ -1,50 +0,0 @@ | |||||||
| From patchwork Sat Sep 17 20:29:40 2022 |  | ||||||
| Content-Type: text/plain; charset="utf-8" |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| X-Patchwork-Id: 12979255 |  | ||||||
| X-Patchwork-Delegate: kvalo@adurom.com |  | ||||||
| Return-Path: <linux-wireless-owner@kernel.org> |  | ||||||
| Date: Sat, 17 Sep 2022 21:29:40 +0100 |  | ||||||
| From: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| To: linux-wireless@vger.kernel.org, Stanislaw Gruszka <stf_xl@wp.pl>, |  | ||||||
|         Helmut Schaa <helmut.schaa@googlemail.com> |  | ||||||
| Cc: Kalle Valo <kvalo@kernel.org>, |  | ||||||
|         "David S. Miller" <davem@davemloft.net>, |  | ||||||
|         Eric Dumazet <edumazet@google.com>, |  | ||||||
|         Jakub Kicinski <kuba@kernel.org>, |  | ||||||
|         Paolo Abeni <pabeni@redhat.com>, |  | ||||||
|         Johannes Berg <johannes.berg@intel.com> |  | ||||||
| Subject: [PATCH v3 14/16] rt2x00: set VGC gain for both chains of MT7620 |  | ||||||
| Message-ID:  |  | ||||||
|  <29e161397e5c9d9399da0fe87d44458aa2b90a78.1663445157.git.daniel@makrotopia.org> |  | ||||||
| References: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Disposition: inline |  | ||||||
| In-Reply-To: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| Precedence: bulk |  | ||||||
| List-ID: <linux-wireless.vger.kernel.org> |  | ||||||
| X-Mailing-List: linux-wireless@vger.kernel.org |  | ||||||
|  |  | ||||||
| Set bbp66 for all chains of the MT7620. |  | ||||||
|  |  | ||||||
| Reported-by: Serge Vasilugin <vasilugin@yandex.ru> |  | ||||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> |  | ||||||
| --- |  | ||||||
|  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- |  | ||||||
|  1 file changed, 2 insertions(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| @@ -5743,7 +5743,8 @@ static inline void rt2800_set_vgc(struct |  | ||||||
|  	if (qual->vgc_level != vgc_level) { |  | ||||||
|  		if (rt2x00_rt(rt2x00dev, RT3572) || |  | ||||||
|  		    rt2x00_rt(rt2x00dev, RT3593) || |  | ||||||
| -		    rt2x00_rt(rt2x00dev, RT3883)) { |  | ||||||
| +		    rt2x00_rt(rt2x00dev, RT3883) || |  | ||||||
| +		    rt2x00_rt(rt2x00dev, RT6352)) { |  | ||||||
|  			rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, |  | ||||||
|  						       vgc_level); |  | ||||||
|  		} else if (rt2x00_rt(rt2x00dev, RT5592)) { |  | ||||||
| @@ -1,70 +0,0 @@ | |||||||
| From patchwork Sat Sep 17 20:29:55 2022 |  | ||||||
| Content-Type: text/plain; charset="utf-8" |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| X-Patchwork-Id: 12979256 |  | ||||||
| X-Patchwork-Delegate: kvalo@adurom.com |  | ||||||
| Return-Path: <linux-wireless-owner@kernel.org> |  | ||||||
| Date: Sat, 17 Sep 2022 21:29:55 +0100 |  | ||||||
| From: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| To: linux-wireless@vger.kernel.org, Stanislaw Gruszka <stf_xl@wp.pl>, |  | ||||||
|         Helmut Schaa <helmut.schaa@googlemail.com> |  | ||||||
| Cc: Kalle Valo <kvalo@kernel.org>, |  | ||||||
|         "David S. Miller" <davem@davemloft.net>, |  | ||||||
|         Eric Dumazet <edumazet@google.com>, |  | ||||||
|         Jakub Kicinski <kuba@kernel.org>, |  | ||||||
|         Paolo Abeni <pabeni@redhat.com>, |  | ||||||
|         Johannes Berg <johannes.berg@intel.com> |  | ||||||
| Subject: [PATCH v3 15/16] rt2x00: set SoC wmac clock register |  | ||||||
| Message-ID:  |  | ||||||
|  <3e275d259f476f597dab91a9c395015ef3fe3284.1663445157.git.daniel@makrotopia.org> |  | ||||||
| References: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Disposition: inline |  | ||||||
| In-Reply-To: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| Precedence: bulk |  | ||||||
| List-ID: <linux-wireless.vger.kernel.org> |  | ||||||
| X-Mailing-List: linux-wireless@vger.kernel.org |  | ||||||
|  |  | ||||||
| Instead of using the default value 33 (pci), set US_CYC_CNT init based |  | ||||||
| on Programming guide: |  | ||||||
| If available, set chipset bus clock with fallback to cpu clock/3. |  | ||||||
|  |  | ||||||
| Reported-by: Serge Vasilugin <vasilugin@yandex.ru> |  | ||||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> |  | ||||||
| --- |  | ||||||
|  .../net/wireless/ralink/rt2x00/rt2800lib.c    | 21 +++++++++++++++++++ |  | ||||||
|  1 file changed, 21 insertions(+) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| @@ -6229,6 +6229,27 @@ static int rt2800_init_registers(struct |  | ||||||
|  		reg = rt2800_register_read(rt2x00dev, US_CYC_CNT); |  | ||||||
|  		rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, 125); |  | ||||||
|  		rt2800_register_write(rt2x00dev, US_CYC_CNT, reg); |  | ||||||
| +	} else if (rt2x00_is_soc(rt2x00dev)) { |  | ||||||
| +		struct clk *clk = clk_get_sys("bus", NULL); |  | ||||||
| +		int rate; |  | ||||||
| + |  | ||||||
| +		if (IS_ERR(clk)) { |  | ||||||
| +			clk = clk_get_sys("cpu", NULL); |  | ||||||
| + |  | ||||||
| +			if (IS_ERR(clk)) { |  | ||||||
| +				rate = 125; |  | ||||||
| +			} else { |  | ||||||
| +				rate = clk_get_rate(clk) / 3000000; |  | ||||||
| +				clk_put(clk); |  | ||||||
| +			} |  | ||||||
| +		} else { |  | ||||||
| +			rate = clk_get_rate(clk) / 1000000; |  | ||||||
| +			clk_put(clk); |  | ||||||
| +		} |  | ||||||
| + |  | ||||||
| +		reg = rt2800_register_read(rt2x00dev, US_CYC_CNT); |  | ||||||
| +		rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, rate); |  | ||||||
| +		rt2800_register_write(rt2x00dev, US_CYC_CNT, reg); |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	reg = rt2800_register_read(rt2x00dev, HT_FBK_CFG0); |  | ||||||
| @@ -1,79 +0,0 @@ | |||||||
| From patchwork Sat Sep 17 20:30:09 2022 |  | ||||||
| Content-Type: text/plain; charset="utf-8" |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Transfer-Encoding: 7bit |  | ||||||
| X-Patchwork-Submitter: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| X-Patchwork-Id: 12979257 |  | ||||||
| X-Patchwork-Delegate: kvalo@adurom.com |  | ||||||
| Return-Path: <linux-wireless-owner@kernel.org> |  | ||||||
| X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on |  | ||||||
| 	aws-us-west-2-korg-lkml-1.web.codeaurora.org |  | ||||||
| Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) |  | ||||||
| 	by smtp.lore.kernel.org (Postfix) with ESMTP id E9118ECAAA1 |  | ||||||
| 	for <linux-wireless@archiver.kernel.org>; |  | ||||||
|  Sat, 17 Sep 2022 20:30:22 +0000 (UTC) |  | ||||||
| Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand |  | ||||||
|         id S229639AbiIQUaV (ORCPT |  | ||||||
|         <rfc822;linux-wireless@archiver.kernel.org>); |  | ||||||
|         Sat, 17 Sep 2022 16:30:21 -0400 |  | ||||||
| Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53912 "EHLO |  | ||||||
|         lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org |  | ||||||
|         with ESMTP id S229628AbiIQUaT (ORCPT |  | ||||||
|         <rfc822;linux-wireless@vger.kernel.org>); |  | ||||||
|         Sat, 17 Sep 2022 16:30:19 -0400 |  | ||||||
| Received: from fudo.makrotopia.org (fudo.makrotopia.org |  | ||||||
|  [IPv6:2a07:2ec0:3002::71]) |  | ||||||
|         by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1AEA822B27 |  | ||||||
|         for <linux-wireless@vger.kernel.org>; |  | ||||||
|  Sat, 17 Sep 2022 13:30:16 -0700 (PDT) |  | ||||||
| Received: from local |  | ||||||
|         by fudo.makrotopia.org with esmtpsa |  | ||||||
|  (TLS1.3:TLS_AES_256_GCM_SHA384:256) |  | ||||||
|          (Exim 4.96) |  | ||||||
|         (envelope-from <daniel@makrotopia.org>) |  | ||||||
|         id 1oZeS7-0003ra-0k; |  | ||||||
|         Sat, 17 Sep 2022 22:30:15 +0200 |  | ||||||
| Date: Sat, 17 Sep 2022 21:30:09 +0100 |  | ||||||
| From: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| To: linux-wireless@vger.kernel.org, Stanislaw Gruszka <stf_xl@wp.pl>, |  | ||||||
|         Helmut Schaa <helmut.schaa@googlemail.com> |  | ||||||
| Cc: Kalle Valo <kvalo@kernel.org>, |  | ||||||
|         "David S. Miller" <davem@davemloft.net>, |  | ||||||
|         Eric Dumazet <edumazet@google.com>, |  | ||||||
|         Jakub Kicinski <kuba@kernel.org>, |  | ||||||
|         Paolo Abeni <pabeni@redhat.com>, |  | ||||||
|         Johannes Berg <johannes.berg@intel.com> |  | ||||||
| Subject: [PATCH v3 16/16] rt2x00: correctly set BBP register 86 for MT7620 |  | ||||||
| Message-ID:  |  | ||||||
|  <257267247ee4fa7ebc6a5d0c4948b3f8119c0d77.1663445157.git.daniel@makrotopia.org> |  | ||||||
| References: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| MIME-Version: 1.0 |  | ||||||
| Content-Disposition: inline |  | ||||||
| In-Reply-To: <cover.1663445157.git.daniel@makrotopia.org> |  | ||||||
| Precedence: bulk |  | ||||||
| List-ID: <linux-wireless.vger.kernel.org> |  | ||||||
| X-Mailing-List: linux-wireless@vger.kernel.org |  | ||||||
|  |  | ||||||
| Instead of 0 set the correct value for BBP register 86 for MT7620. |  | ||||||
|  |  | ||||||
| Reported-by: Serge Vasilugin <vasilugin@yandex.ru> |  | ||||||
| Signed-off-by: Daniel Golle <daniel@makrotopia.org> |  | ||||||
| Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> |  | ||||||
| --- |  | ||||||
|  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 5 ++++- |  | ||||||
|  1 file changed, 4 insertions(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c |  | ||||||
| @@ -4225,7 +4225,10 @@ static void rt2800_config_channel(struct |  | ||||||
|  		rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain); |  | ||||||
|  		rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain); |  | ||||||
|  		rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain); |  | ||||||
| -		rt2800_bbp_write(rt2x00dev, 86, 0); |  | ||||||
| +		if (rt2x00_rt(rt2x00dev, RT6352)) |  | ||||||
| +			rt2800_bbp_write(rt2x00dev, 86, 0x38); |  | ||||||
| +		else |  | ||||||
| +			rt2800_bbp_write(rt2x00dev, 86, 0); |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
|  	if (rf->channel <= 14) { |  | ||||||
| @@ -60,7 +60,7 @@ Subject: [PATCH] mac80211: disable ipv4/ipv6 address notifiers | |||||||
|   fail_ifa: |   fail_ifa: | ||||||
|  #endif |  #endif | ||||||
|  	wiphy_unregister(local->hw.wiphy); |  	wiphy_unregister(local->hw.wiphy); | ||||||
| @@ -1371,10 +1371,10 @@ void ieee80211_unregister_hw(struct ieee | @@ -1373,10 +1373,10 @@ void ieee80211_unregister_hw(struct ieee | ||||||
|  	tasklet_kill(&local->tx_pending_tasklet); |  	tasklet_kill(&local->tx_pending_tasklet); | ||||||
|  	tasklet_kill(&local->tasklet); |  	tasklet_kill(&local->tasklet); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/drivers/net/wireless/mac80211_hwsim.c | --- a/drivers/net/wireless/mac80211_hwsim.c | ||||||
| +++ b/drivers/net/wireless/mac80211_hwsim.c | +++ b/drivers/net/wireless/mac80211_hwsim.c | ||||||
| @@ -3003,15 +3003,19 @@ static void mac80211_hwsim_he_capab(stru | @@ -3008,15 +3008,19 @@ static void mac80211_hwsim_he_capab(stru | ||||||
|  { |  { | ||||||
|  	u16 n_iftype_data; |  	u16 n_iftype_data; | ||||||
|   |   | ||||||
| @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		return; |  		return; | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @@ -3301,6 +3305,12 @@ static int mac80211_hwsim_new_radio(stru | @@ -3306,6 +3310,12 @@ static int mac80211_hwsim_new_radio(stru | ||||||
|  			sband->vht_cap.vht_mcs.tx_mcs_map = |  			sband->vht_cap.vht_mcs.tx_mcs_map = | ||||||
|  				sband->vht_cap.vht_mcs.rx_mcs_map; |  				sband->vht_cap.vht_mcs.rx_mcs_map; | ||||||
|  			break; |  			break; | ||||||
| @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		case NL80211_BAND_S1GHZ: |  		case NL80211_BAND_S1GHZ: | ||||||
|  			memcpy(&sband->s1g_cap, &hwsim_s1g_cap, |  			memcpy(&sband->s1g_cap, &hwsim_s1g_cap, | ||||||
|  			       sizeof(sband->s1g_cap)); |  			       sizeof(sband->s1g_cap)); | ||||||
| @@ -3311,6 +3321,13 @@ static int mac80211_hwsim_new_radio(stru | @@ -3316,6 +3326,13 @@ static int mac80211_hwsim_new_radio(stru | ||||||
|  			continue; |  			continue; | ||||||
|  		} |  		} | ||||||
|   |   | ||||||
| @@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		sband->ht_cap.ht_supported = true; |  		sband->ht_cap.ht_supported = true; | ||||||
|  		sband->ht_cap.cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | |  		sband->ht_cap.cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | | ||||||
|  				    IEEE80211_HT_CAP_GRN_FLD | |  				    IEEE80211_HT_CAP_GRN_FLD | | ||||||
| @@ -3324,10 +3341,6 @@ static int mac80211_hwsim_new_radio(stru | @@ -3329,10 +3346,6 @@ static int mac80211_hwsim_new_radio(stru | ||||||
|  		sband->ht_cap.mcs.rx_mask[0] = 0xff; |  		sband->ht_cap.mcs.rx_mask[0] = 0xff; | ||||||
|  		sband->ht_cap.mcs.rx_mask[1] = 0xff; |  		sband->ht_cap.mcs.rx_mask[1] = 0xff; | ||||||
|  		sband->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; |  		sband->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|  				     struct ieee80211_vif *vif, |  				     struct ieee80211_vif *vif, | ||||||
| --- a/net/mac80211/cfg.c | --- a/net/mac80211/cfg.c | ||||||
| +++ b/net/mac80211/cfg.c | +++ b/net/mac80211/cfg.c | ||||||
| @@ -4344,6 +4344,18 @@ out: | @@ -4341,6 +4341,18 @@ out: | ||||||
|  	return err; |  	return err; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|  const struct cfg80211_ops mac80211_config_ops = { |  const struct cfg80211_ops mac80211_config_ops = { | ||||||
|  	.add_virtual_intf = ieee80211_add_iface, |  	.add_virtual_intf = ieee80211_add_iface, | ||||||
|  	.del_virtual_intf = ieee80211_del_iface, |  	.del_virtual_intf = ieee80211_del_iface, | ||||||
| @@ -4448,4 +4460,5 @@ const struct cfg80211_ops mac80211_confi | @@ -4445,4 +4457,5 @@ const struct cfg80211_ops mac80211_confi | ||||||
|  	.reset_tid_config = ieee80211_reset_tid_config, |  	.reset_tid_config = ieee80211_reset_tid_config, | ||||||
|  	.set_sar_specs = ieee80211_set_sar_specs, |  	.set_sar_specs = ieee80211_set_sar_specs, | ||||||
|  	.color_change = ieee80211_color_change, |  	.color_change = ieee80211_color_change, | ||||||
|   | |||||||
| @@ -156,7 +156,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|  	NUM_NL80211_EXT_FEATURES, |  	NUM_NL80211_EXT_FEATURES, | ||||||
| --- a/net/mac80211/cfg.c | --- a/net/mac80211/cfg.c | ||||||
| +++ b/net/mac80211/cfg.c | +++ b/net/mac80211/cfg.c | ||||||
| @@ -4345,15 +4345,15 @@ out: | @@ -4342,15 +4342,15 @@ out: | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  static int |  static int | ||||||
| @@ -176,7 +176,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  const struct cfg80211_ops mac80211_config_ops = { |  const struct cfg80211_ops mac80211_config_ops = { | ||||||
| @@ -4460,5 +4460,5 @@ const struct cfg80211_ops mac80211_confi | @@ -4457,5 +4457,5 @@ const struct cfg80211_ops mac80211_confi | ||||||
|  	.reset_tid_config = ieee80211_reset_tid_config, |  	.reset_tid_config = ieee80211_reset_tid_config, | ||||||
|  	.set_sar_specs = ieee80211_set_sar_specs, |  	.set_sar_specs = ieee80211_set_sar_specs, | ||||||
|  	.color_change = ieee80211_color_change, |  	.color_change = ieee80211_color_change, | ||||||
|   | |||||||
| @@ -195,7 +195,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|  			return err; |  			return err; | ||||||
|  		} |  		} | ||||||
|  		*changed |= err; |  		*changed |= err; | ||||||
| @@ -3463,8 +3528,11 @@ static int ieee80211_set_csa_beacon(stru | @@ -3460,8 +3525,11 @@ static int ieee80211_set_csa_beacon(stru | ||||||
|  static void ieee80211_color_change_abort(struct ieee80211_sub_if_data  *sdata) |  static void ieee80211_color_change_abort(struct ieee80211_sub_if_data  *sdata) | ||||||
|  { |  { | ||||||
|  	sdata->vif.color_change_active = false; |  	sdata->vif.color_change_active = false; | ||||||
| @@ -209,7 +209,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|   |   | ||||||
|  	cfg80211_color_change_aborted_notify(sdata->dev); |  	cfg80211_color_change_aborted_notify(sdata->dev); | ||||||
|  } |  } | ||||||
| @@ -4202,8 +4270,11 @@ ieee80211_set_after_color_change_beacon( | @@ -4199,8 +4267,11 @@ ieee80211_set_after_color_change_beacon( | ||||||
|   |   | ||||||
|  		ret = ieee80211_assign_beacon(sdata, sdata->u.ap.next_beacon, |  		ret = ieee80211_assign_beacon(sdata, sdata->u.ap.next_beacon, | ||||||
|  					      NULL, NULL); |  					      NULL, NULL); | ||||||
| @@ -223,7 +223,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com> | |||||||
|   |   | ||||||
|  		if (ret < 0) |  		if (ret < 0) | ||||||
|  			return ret; |  			return ret; | ||||||
| @@ -4246,7 +4317,11 @@ ieee80211_set_color_change_beacon(struct | @@ -4243,7 +4314,11 @@ ieee80211_set_color_change_beacon(struct | ||||||
|  		err = ieee80211_assign_beacon(sdata, ¶ms->beacon_color_change, |  		err = ieee80211_assign_beacon(sdata, ¶ms->beacon_color_change, | ||||||
|  					      NULL, &color_change); |  					      NULL, &color_change); | ||||||
|  		if (err < 0) { |  		if (err < 0) { | ||||||
|   | |||||||
| @@ -77,7 +77,7 @@ | |||||||
|  static void ieee80211_rfkill_poll(struct wiphy *wiphy) |  static void ieee80211_rfkill_poll(struct wiphy *wiphy) | ||||||
|  { |  { | ||||||
|  	struct ieee80211_local *local = wiphy_priv(wiphy); |  	struct ieee80211_local *local = wiphy_priv(wiphy); | ||||||
| @@ -4516,6 +4529,7 @@ const struct cfg80211_ops mac80211_confi | @@ -4513,6 +4526,7 @@ const struct cfg80211_ops mac80211_confi | ||||||
|  	.set_wiphy_params = ieee80211_set_wiphy_params, |  	.set_wiphy_params = ieee80211_set_wiphy_params, | ||||||
|  	.set_tx_power = ieee80211_set_tx_power, |  	.set_tx_power = ieee80211_set_tx_power, | ||||||
|  	.get_tx_power = ieee80211_get_tx_power, |  	.get_tx_power = ieee80211_get_tx_power, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Hauke Mehrtens
					Hauke Mehrtens