同步更新
This commit is contained in:
27
ath.mk
27
ath.mk
@@ -1,5 +1,5 @@
|
|||||||
PKG_DRIVERS += \
|
PKG_DRIVERS += \
|
||||||
ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k ath10k-sdio ath10k-smallbuffers \
|
ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k ath10k-smallbuffers \
|
||||||
ath11k ath11k-ahb ath11k-pci ath12k carl9170 owl-loader ar5523 wil6210 qcom-qmi-helpers
|
ath11k ath11k-ahb ath11k-pci ath12k carl9170 owl-loader ar5523 wil6210 qcom-qmi-helpers
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS += \
|
PKG_CONFIG_DEPENDS += \
|
||||||
@@ -40,7 +40,7 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
config-$(call config_package,qcom-qmi-helpers) += QCOM_QMI_HELPERS
|
config-$(call config_package,qcom-qmi-helpers) += QCOM_QMI_HELPERS
|
||||||
config-$(call config_package,ath,regular sdio smallbuffers) += ATH_CARDS ATH_COMMON
|
config-$(call config_package,ath,regular smallbuffers) += ATH_CARDS ATH_COMMON
|
||||||
config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH11K_DEBUG ATH12K_DEBUG ATH9K_STATION_STATISTICS
|
config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH11K_DEBUG ATH12K_DEBUG ATH9K_STATION_STATISTICS
|
||||||
config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
|
config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
|
||||||
config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL ATH11K_SPECTRAL
|
config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL ATH11K_SPECTRAL
|
||||||
@@ -62,7 +62,6 @@ config-$(CONFIG_ATH11K_THERMAL) += ATH11K_THERMAL
|
|||||||
|
|
||||||
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
||||||
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
||||||
config-$(call config_package,ath10k-sdio,sdio) += ATH10K ATH10K_SDIO
|
|
||||||
config-$(call config_package,ath10k-smallbuffers,smallbuffers) += ATH10K ATH10K_PCI ATH10K_SMALLBUFFERS
|
config-$(call config_package,ath10k-smallbuffers,smallbuffers) += ATH10K ATH10K_PCI ATH10K_SMALLBUFFERS
|
||||||
config-$(call config_package,ath11k) += ATH11K
|
config-$(call config_package,ath11k) += ATH11K
|
||||||
config-$(call config_package,ath11k-ahb) += ATH11K_AHB
|
config-$(call config_package,ath11k-ahb) += ATH11K_AHB
|
||||||
@@ -295,30 +294,10 @@ define KernelPackage/ath10k/config
|
|||||||
|
|
||||||
config ATH10K_THERMAL
|
config ATH10K_THERMAL
|
||||||
bool "Enable thermal sensors and throttling support"
|
bool "Enable thermal sensors and throttling support"
|
||||||
default y
|
depends on PACKAGE_kmod-ath10k || PACKAGE_kmod-ath10k-smallbuffers
|
||||||
depends on PACKAGE_kmod-ath10k || PACKAGE_kmod-ath10k-sdio || PACKAGE_kmod-ath10k-smallbuffers
|
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ath10k-sdio
|
|
||||||
$(call KernelPackage/mac80211/Default)
|
|
||||||
TITLE:=Atheros 802.11ac SDIO wireless cards support
|
|
||||||
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath10k
|
|
||||||
DEPENDS+= +kmod-ath +kmod-mmc +@DRIVER_11AC_SUPPORT \
|
|
||||||
+ATH10K_THERMAL:kmod-hwmon-core +ATH10K_THERMAL:kmod-thermal
|
|
||||||
FILES:= \
|
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_core.ko \
|
|
||||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath10k/ath10k_sdio.ko
|
|
||||||
AUTOLOAD:=$(call AutoProbe,ath10k_core)
|
|
||||||
MODPARAMS.ath10k_core:=frame_mode=2
|
|
||||||
VARIANT:=sdio
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/ath10k-sdio/description
|
|
||||||
This module adds support for wireless adapters based on
|
|
||||||
Atheros IEEE 802.11ac family of chipsets with SDIO bus.
|
|
||||||
endef
|
|
||||||
|
|
||||||
define KernelPackage/ath10k-smallbuffers
|
define KernelPackage/ath10k-smallbuffers
|
||||||
$(call KernelPackage/ath10k)
|
$(call KernelPackage/ath10k)
|
||||||
TITLE+= (small buffers for low-RAM devices)
|
TITLE+= (small buffers for low-RAM devices)
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
--- a/drivers/net/wireless/ath/ath10k/core.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
|
||||||
@@ -3554,7 +3554,8 @@ int ath10k_core_register(struct ath10k *
|
|
||||||
* Forcing the work to be done immediately works around this problem
|
|
||||||
* but may also delay the boot when firmware images cannot be found.
|
|
||||||
*/
|
|
||||||
- flush_workqueue(ar->workqueue);
|
|
||||||
+ if (ar->hif.bus != ATH10K_BUS_SDIO)
|
|
||||||
+ flush_workqueue(ar->workqueue);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--- a/drivers/net/wireless/ath/ath10k/debug.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/debug.c
|
|
||||||
@@ -1262,6 +1262,9 @@ static int ath10k_debug_cal_data_fetch(s
|
|
||||||
if (ar->hw_params.cal_data_len == 0)
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
|
|
||||||
+ if (ar->hif.bus == ATH10K_BUS_SDIO)
|
|
||||||
+ return -EINVAL;
|
|
||||||
+
|
|
||||||
hi_addr = host_interest_item_address(HI_ITEM(hi_board_data));
|
|
||||||
|
|
||||||
ret = ath10k_hif_diag_read(ar, hi_addr, &addr, sizeof(addr));
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
|
||||||
@@ -5054,6 +5054,7 @@ static void ath10k_mac_setup_ht_vht_cap(
|
|
||||||
if (ar->phy_capability & WHAL_WLAN_11G_CAPABILITY) {
|
|
||||||
band = &ar->mac.sbands[NL80211_BAND_2GHZ];
|
|
||||||
band->ht_cap = ht_cap;
|
|
||||||
+ band->vht_cap = vht_cap;
|
|
||||||
}
|
|
||||||
if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) {
|
|
||||||
band = &ar->mac.sbands[NL80211_BAND_5GHZ];
|
|
||||||
@@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
|||||||
|
|
||||||
--- 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
|
||||||
@@ -10122,7 +10122,6 @@ int ath10k_mac_register(struct ath10k *a
|
@@ -10121,7 +10121,6 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
|
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
|
||||||
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
||||||
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
|
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
||||||
@@ -2868,9 +2868,9 @@ static void ath11k_peer_assoc_h_phymode(
|
|
||||||
} else if (sta->deflink.vht_cap.vht_supported &&
|
|
||||||
!ath11k_peer_assoc_h_vht_masked(vht_mcs_mask)) {
|
|
||||||
if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
|
|
||||||
- phymode = MODE_11AC_VHT40;
|
|
||||||
+ phymode = MODE_11AC_VHT40_2G;
|
|
||||||
else
|
|
||||||
- phymode = MODE_11AC_VHT20;
|
|
||||||
+ phymode = MODE_11AC_VHT20_2G;
|
|
||||||
} else if (sta->deflink.ht_cap.ht_supported &&
|
|
||||||
!ath11k_peer_assoc_h_ht_masked(ht_mcs_mask)) {
|
|
||||||
if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
|
|
||||||
@@ -5547,6 +5547,9 @@ static void ath11k_mac_setup_ht_vht_cap(
|
|
||||||
*ht_cap_info = ht_cap;
|
|
||||||
band->ht_cap = ath11k_create_ht_cap(ar, ht_cap,
|
|
||||||
rate_cap_rx_chainmask);
|
|
||||||
+
|
|
||||||
+ band->vht_cap = ath11k_create_vht_cap(ar, rate_cap_tx_chainmask,
|
|
||||||
+ rate_cap_rx_chainmask);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP &&
|
|
||||||
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
|
||||||
@@ -411,6 +411,8 @@ ath11k_pull_mac_phy_cap_svc_ready_ext(st
|
|
||||||
* handled.
|
|
||||||
*/
|
|
||||||
if (mac_phy_caps->supported_bands & WMI_HOST_WLAN_2G_CAP) {
|
|
||||||
+ pdev_cap->vht_cap = mac_phy_caps->vht_cap_info_2g;
|
|
||||||
+ pdev_cap->vht_mcs = mac_phy_caps->vht_supp_mcs_2g;
|
|
||||||
pdev_cap->tx_chain_mask = mac_phy_caps->tx_chain_mask_2g;
|
|
||||||
pdev_cap->rx_chain_mask = mac_phy_caps->rx_chain_mask_2g;
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
|
||||||
@@ -371,8 +371,8 @@ int ath11k_dp_rxbufs_replenish(struct at
|
|
||||||
num_remain = req_entries;
|
|
||||||
|
|
||||||
while (num_remain > 0) {
|
|
||||||
- skb = dev_alloc_skb(DP_RX_BUFFER_SIZE +
|
|
||||||
- DP_RX_BUFFER_ALIGN_SIZE);
|
|
||||||
+ skb = alloc_skb(DP_RX_BUFFER_SIZE +
|
|
||||||
+ DP_RX_BUFFER_ALIGN_SIZE, GFP_ATOMIC);
|
|
||||||
if (!skb)
|
|
||||||
break;
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
From: Chukun Pan <amadeus@jmu.edu.cn>
|
|
||||||
To: Jakub Kicinski <kubakici@wp.pl>
|
|
||||||
Cc: Kalle Valo <kvalo@kernel.org>,
|
|
||||||
"David S . Miller" <davem@davemloft.net>,
|
|
||||||
Eric Dumazet <edumazet@google.com>,
|
|
||||||
Paolo Abeni <pabeni@redhat.com>,
|
|
||||||
Matthias Brugger <matthias.bgg@gmail.com>,
|
|
||||||
Lintel Huang <lintel.huang@gmail.com>,
|
|
||||||
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
|
|
||||||
linux-kernel@vger.kernel.org, Chukun Pan <amadeus@jmu.edu.cn>
|
|
||||||
Subject: [PATCH] wifi: mt7601u: Add AP mode support
|
|
||||||
Date: Tue, 26 Jul 2022 00:16:03 +0800 [thread overview]
|
|
||||||
Message-ID: <20220725161603.15201-1-amadeus@jmu.edu.cn> (raw)
|
|
||||||
|
|
||||||
Add AP mode support to mt7601u chipset.
|
|
||||||
Simply tested it with firmware version
|
|
||||||
201302052146 and it seems working fine.
|
|
||||||
|
|
||||||
Run-tested-by: Lintel Huang <lintel.huang@gmail.com>
|
|
||||||
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
|
|
||||||
---
|
|
||||||
drivers/net/wireless/mediatek/mt7601u/init.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/net/wireless/mediatek/mt7601u/init.c
|
|
||||||
+++ b/drivers/net/wireless/mediatek/mt7601u/init.c
|
|
||||||
@@ -609,7 +609,8 @@ int mt7601u_register_device(struct mt760
|
|
||||||
SET_IEEE80211_PERM_ADDR(hw, dev->macaddr);
|
|
||||||
|
|
||||||
wiphy->features |= NL80211_FEATURE_ACTIVE_MONITOR;
|
|
||||||
- wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
|
|
||||||
+ wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) |
|
|
||||||
+ BIT(NL80211_IFTYPE_AP);
|
|
||||||
wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS;
|
|
||||||
|
|
||||||
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
--- a/net/mac80211/vht.c
|
|
||||||
+++ b/net/mac80211/vht.c
|
|
||||||
@@ -137,7 +137,8 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(stru
|
|
||||||
have_80mhz = false;
|
|
||||||
for (i = 0; i < sband->n_channels; i++) {
|
|
||||||
if (sband->channels[i].flags & (IEEE80211_CHAN_DISABLED |
|
|
||||||
- IEEE80211_CHAN_NO_80MHZ))
|
|
||||||
+ IEEE80211_CHAN_NO_80MHZ) &
|
|
||||||
+ (sband->band != NL80211_BAND_2GHZ))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
have_80mhz = true;
|
|
||||||
--- a/net/mac80211/util.c
|
|
||||||
+++ b/net/mac80211/util.c
|
|
||||||
@@ -1329,7 +1329,8 @@ static int ieee80211_put_preq_ies_band(s
|
|
||||||
/* Check if any channel in this sband supports at least 80 MHz */
|
|
||||||
for (i = 0; i < sband->n_channels; i++) {
|
|
||||||
if (sband->channels[i].flags & (IEEE80211_CHAN_DISABLED |
|
|
||||||
- IEEE80211_CHAN_NO_80MHZ))
|
|
||||||
+ IEEE80211_CHAN_NO_80MHZ) &
|
|
||||||
+ (sband->band != NL80211_BAND_2GHZ))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
have_80mhz = true;
|
|
||||||
--- a/net/mac80211/mlme.c
|
|
||||||
+++ b/net/mac80211/mlme.c
|
|
||||||
@@ -5760,7 +5760,8 @@ ieee80211_determine_our_sta_mode(struct
|
|
||||||
/* Allow VHT if at least one channel on the sband supports 80 MHz */
|
|
||||||
for (i = 0; i < sband->n_channels; i++) {
|
|
||||||
if (sband->channels[i].flags & (IEEE80211_CHAN_DISABLED |
|
|
||||||
- IEEE80211_CHAN_NO_80MHZ))
|
|
||||||
+ IEEE80211_CHAN_NO_80MHZ) &
|
|
||||||
+ (sband->band != NL80211_BAND_2GHZ))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
have_80mhz = true;
|
|
||||||
Reference in New Issue
Block a user