Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
43d537b6a7
@ -1,16 +1,16 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mt76
|
||||
PKG_RELEASE=2
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2023-09-11
|
||||
PKG_SOURCE_VERSION:=f1e1e67d97d1e9a8bb01b59ab20c45ebc985a958
|
||||
PKG_MIRROR_HASH:=41fde79de5bec3aaafdb64658475a1fa99bc483b8122e6aad9b2aa8aa8edfce6
|
||||
PKG_SOURCE_DATE:=2023-12-18
|
||||
PKG_SOURCE_VERSION:=bebd9cffc2aeb2cecb40aadbb8c6eab3bdf7971b
|
||||
PKG_MIRROR_HASH:=580261755bc3f251b8bc5f7f610274693c067432187570694d2f2ccab0edb62b
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_USE_NINJA:=0
|
||||
@ -318,6 +318,38 @@ define KernelPackage/mt7921e
|
||||
AUTOLOAD:=$(call AutoProbe,mt7921e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7996e
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7996E wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7996/mt7996e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7996e)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7925-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7925 wireless driver common code
|
||||
HIDDEN:=1
|
||||
DEPENDS+=+kmod-mt792x-common +@DRIVER_11AX_SUPPORT +kmod-hwmon-core
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7925u
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7925U wireless driver
|
||||
DEPENDS+=+kmod-mt792x-usb +kmod-mt7925-common
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925u.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7921u)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7925e
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7925e wireless driver
|
||||
DEPENDS+=@PCI_SUPPORT +kmod-mt7925-common
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925e.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7921e)
|
||||
endef
|
||||
|
||||
define Package/mt76-test
|
||||
SECTION:=devel
|
||||
CATEGORY:=Development
|
||||
@ -426,6 +458,18 @@ endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7921e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7921E=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7996e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7996E=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7925-common
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7925_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7925u
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7925U=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7925e
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7925E=m
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
+$(KERNEL_MAKE) $(PKG_JOBS) \
|
||||
@ -606,8 +650,12 @@ $(eval $(call KernelPackage,mt7922-firmware))
|
||||
$(eval $(call KernelPackage,mt792x-common))
|
||||
$(eval $(call KernelPackage,mt792x-usb))
|
||||
$(eval $(call KernelPackage,mt7921-common))
|
||||
$(eval $(call KernelPackage,mt7925-common))
|
||||
$(eval $(call KernelPackage,mt7921u))
|
||||
$(eval $(call KernelPackage,mt7921s))
|
||||
$(eval $(call KernelPackage,mt7921e))
|
||||
$(eval $(call KernelPackage,mt7925u))
|
||||
$(eval $(call KernelPackage,mt7925e))
|
||||
$(eval $(call KernelPackage,mt7996e))
|
||||
$(eval $(call KernelPackage,mt76))
|
||||
$(eval $(call BuildPackage,mt76-test))
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
From 9c7b98c03173a1a201d74203a81b344a0cd637ac Mon Sep 17 00:00:00 2001
|
||||
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Date: Mon, 18 Sep 2023 12:29:07 +0200
|
||||
Subject: [PATCH] net: ethernet: mtk_wed: rename mtk_rxbm_desc in
|
||||
mtk_wed_bm_desc
|
||||
|
||||
Rename mtk_rxbm_desc structure in mtk_wed_bm_desc since it will be used
|
||||
even on tx side by MT7988 SoC.
|
||||
|
||||
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
---
|
||||
|
||||
--- a/mt7915/mmio.c
|
||||
+++ b/mt7915/mmio.c
|
||||
@@ -591,7 +591,7 @@ static void mt7915_mmio_wed_release_rx_b
|
||||
|
||||
static u32 mt7915_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
|
||||
{
|
||||
- struct mtk_rxbm_desc *desc = wed->rx_buf_ring.desc;
|
||||
+ struct mtk_wed_bm_desc *desc = wed->rx_buf_ring.desc;
|
||||
struct mt76_txwi_cache *t = NULL;
|
||||
struct mt7915_dev *dev;
|
||||
struct mt76_queue *q;
|
||||
@ -0,0 +1,26 @@
|
||||
From 786a339bac36d8e53eb8b540e79221d20011ab2a Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 3 Feb 2024 14:21:58 +0100
|
||||
Subject: [PATCH] wifi: mt76: mt7996: fix fortify warning
|
||||
|
||||
Copy cck and ofdm separately in order to avoid __read_overflow2_field
|
||||
warning.
|
||||
|
||||
Fixes: f75e4779d215 ("wifi: mt76: mt7996: add txpower setting support")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7996/mcu.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/mt7996/mcu.c
|
||||
+++ b/mt7996/mcu.c
|
||||
@@ -4477,7 +4477,8 @@ int mt7996_mcu_set_txpower_sku(struct mt
|
||||
|
||||
skb_put_data(skb, &req, sizeof(req));
|
||||
/* cck and ofdm */
|
||||
- skb_put_data(skb, &la.cck, sizeof(la.cck) + sizeof(la.ofdm));
|
||||
+ skb_put_data(skb, &la.cck, sizeof(la.cck));
|
||||
+ skb_put_data(skb, &la.ofdm, sizeof(la.ofdm));
|
||||
/* ht20 */
|
||||
skb_put_data(skb, &la.mcs[0], 8);
|
||||
/* ht40 */
|
||||
@ -0,0 +1,38 @@
|
||||
From bc37a7ebc267e400fc4e9886b7197b4b866763d1 Mon Sep 17 00:00:00 2001
|
||||
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Date: Thu, 21 Dec 2023 10:41:18 +0100
|
||||
Subject: [PATCH] wifi: mt76: mt7996: fix fw loading timeout
|
||||
|
||||
Fix the following firmware loading error due to a wrong dma register
|
||||
configuration if wed is disabled.
|
||||
|
||||
[ 8.245881] mt7996e_hif 0001:01:00.0: assign IRQ: got 128
|
||||
[ 8.251308] mt7996e_hif 0001:01:00.0: enabling device (0000 -> 0002)
|
||||
[ 8.257674] mt7996e_hif 0001:01:00.0: enabling bus mastering
|
||||
[ 8.263488] mt7996e 0000:01:00.0: assign IRQ: got 126
|
||||
[ 8.268537] mt7996e 0000:01:00.0: enabling device (0000 -> 0002)
|
||||
[ 8.274551] mt7996e 0000:01:00.0: enabling bus mastering
|
||||
[ 28.648773] mt7996e 0000:01:00.0: Message 00000010 (seq 1) timeout
|
||||
[ 28.654959] mt7996e 0000:01:00.0: Failed to get patch semaphore
|
||||
[ 29.661033] mt7996e: probe of 0000:01:00.0 failed with error -11
|
||||
|
||||
Suggested-by: Sujuan Chen" <sujuan.chen@mediatek.com>
|
||||
Fixes: 4920a3a1285f ("wifi: mt76: mt7996: set DMA mask to 36 bits for boards with more than 4GB of RAM")
|
||||
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7996/dma.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/mt7996/dma.c
|
||||
+++ b/mt7996/dma.c
|
||||
@@ -237,7 +237,8 @@ void mt7996_dma_start(struct mt7996_dev
|
||||
MT_WFDMA0_GLO_CFG_TX_DMA_EN |
|
||||
MT_WFDMA0_GLO_CFG_RX_DMA_EN |
|
||||
MT_WFDMA0_GLO_CFG_OMIT_TX_INFO |
|
||||
- MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2);
|
||||
+ MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2 |
|
||||
+ MT_WFDMA0_GLO_CFG_EXT_EN);
|
||||
|
||||
if (dev->hif2)
|
||||
mt76_set(dev, MT_WFDMA0_GLO_CFG + hif1_ofs,
|
||||
@ -0,0 +1,60 @@
|
||||
From 025d5734caba6fa1fd96b57c19c61e42e601815b Mon Sep 17 00:00:00 2001
|
||||
From: Peter Chiu <chui-hao.chiu@mediatek.com>
|
||||
Date: Fri, 26 Jan 2024 17:09:12 +0800
|
||||
Subject: [PATCH] wifi: mt76: mt7996: check txs format before getting skb by
|
||||
pid
|
||||
|
||||
The PPDU TXS does not include the error bit so it cannot use to report
|
||||
status to mac80211. This patch fixes issue that STA wrongly detects if AP
|
||||
is still alive.
|
||||
|
||||
Fixes: 2569ea5326e2 ("wifi: mt76: mt7996: enable PPDU-TxS to host")
|
||||
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
|
||||
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7996/mac.c | 23 +++++++++++++----------
|
||||
1 file changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
--- a/mt7996/mac.c
|
||||
+++ b/mt7996/mac.c
|
||||
@@ -1188,25 +1188,28 @@ mt7996_mac_add_txs_skb(struct mt7996_dev
|
||||
struct ieee80211_tx_info *info;
|
||||
struct sk_buff_head list;
|
||||
struct rate_info rate = {};
|
||||
- struct sk_buff *skb;
|
||||
+ struct sk_buff *skb = NULL;
|
||||
bool cck = false;
|
||||
u32 txrate, txs, mode, stbc;
|
||||
|
||||
txs = le32_to_cpu(txs_data[0]);
|
||||
|
||||
mt76_tx_status_lock(mdev, &list);
|
||||
- skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list);
|
||||
|
||||
- if (skb) {
|
||||
- info = IEEE80211_SKB_CB(skb);
|
||||
- if (!(txs & MT_TXS0_ACK_ERROR_MASK))
|
||||
- info->flags |= IEEE80211_TX_STAT_ACK;
|
||||
-
|
||||
- info->status.ampdu_len = 1;
|
||||
- info->status.ampdu_ack_len =
|
||||
- !!(info->flags & IEEE80211_TX_STAT_ACK);
|
||||
+ /* only report MPDU TXS */
|
||||
+ if (le32_get_bits(txs_data[0], MT_TXS0_TXS_FORMAT) == 0) {
|
||||
+ skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list);
|
||||
+ if (skb) {
|
||||
+ info = IEEE80211_SKB_CB(skb);
|
||||
+ if (!(txs & MT_TXS0_ACK_ERROR_MASK))
|
||||
+ info->flags |= IEEE80211_TX_STAT_ACK;
|
||||
+
|
||||
+ info->status.ampdu_len = 1;
|
||||
+ info->status.ampdu_ack_len =
|
||||
+ !!(info->flags & IEEE80211_TX_STAT_ACK);
|
||||
|
||||
- info->status.rates[0].idx = -1;
|
||||
+ info->status.rates[0].idx = -1;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (mtk_wed_device_active(&dev->mt76.mmio.wed) && wcid->sta) {
|
||||
@ -0,0 +1,38 @@
|
||||
From d75eac9f5531e484fbbabf2652922976e15a7a7a Mon Sep 17 00:00:00 2001
|
||||
From: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
|
||||
Date: Tue, 16 Jan 2024 10:48:54 +0800
|
||||
Subject: [PATCH] wifi: mt76: mt7921: fix incorrect type conversion for CLC
|
||||
command
|
||||
|
||||
clc->len is defined as 32 bits in length, so it must also be
|
||||
operated on with 32 bits, not 16 bits.
|
||||
|
||||
Fixes: fa6ad88e023d ("wifi: mt76: mt7921: fix country count limitation for CLC")
|
||||
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
|
||||
Reported-by: kernel test robot <lkp@intel.com>
|
||||
Closes: https://lore.kernel.org/oe-kbuild-all/202312112104.Zkc3QUHr-lkp@intel.com/
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7921/mcu.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/mt7921/mcu.c
|
||||
+++ b/mt7921/mcu.c
|
||||
@@ -1272,7 +1272,7 @@ int __mt7921_mcu_set_clc(struct mt792x_d
|
||||
.mtcl_conf = mt792x_acpi_get_mtcl_conf(&dev->phy, alpha2),
|
||||
};
|
||||
int ret, valid_cnt = 0;
|
||||
- u16 buf_len = 0;
|
||||
+ u32 buf_len = 0;
|
||||
u8 *pos;
|
||||
|
||||
if (!clc)
|
||||
@@ -1283,7 +1283,7 @@ int __mt7921_mcu_set_clc(struct mt792x_d
|
||||
if (mt76_find_power_limits_node(&dev->mt76))
|
||||
req.cap |= CLC_CAP_DTS_EN;
|
||||
|
||||
- buf_len = le16_to_cpu(clc->len) - sizeof(*clc);
|
||||
+ buf_len = le32_to_cpu(clc->len) - sizeof(*clc);
|
||||
pos = clc->data;
|
||||
while (buf_len > 16) {
|
||||
struct mt7921_clc_rule *rule = (struct mt7921_clc_rule *)pos;
|
||||
@ -0,0 +1,28 @@
|
||||
From 841bf82e99581f648325bee570de98892cad894f Mon Sep 17 00:00:00 2001
|
||||
From: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
|
||||
Date: Wed, 7 Feb 2024 11:31:23 +0800
|
||||
Subject: [PATCH] wifi: mt76: fix the issue of missing txpwr settings from
|
||||
ch153 to ch177
|
||||
|
||||
Because the number of channels to be configured is calculated using the %,
|
||||
and it results in 0 when there's an exact division, this leads to some
|
||||
channels not having their tx power configured.
|
||||
|
||||
Fixes: 7801da338856 ("wifi: mt76: mt7921: enable set txpower for UNII-4")
|
||||
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt76_connac_mcu.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/mt76_connac_mcu.c
|
||||
+++ b/mt76_connac_mcu.c
|
||||
@@ -2101,7 +2101,7 @@ mt76_connac_mcu_rate_txpower_band(struct
|
||||
int j, msg_len, num_ch;
|
||||
struct sk_buff *skb;
|
||||
|
||||
- num_ch = i == batch_size - 1 ? n_chan % batch_len : batch_len;
|
||||
+ num_ch = i == batch_size - 1 ? n_chan - i * batch_len : batch_len;
|
||||
msg_len = sizeof(tx_power_tlv) + num_ch * sizeof(sku_tlbv);
|
||||
skb = mt76_mcu_msg_alloc(dev, NULL, msg_len);
|
||||
if (!skb) {
|
||||
@ -0,0 +1,56 @@
|
||||
From b108dda7e201994f10c885362b07ff3b6e1e843d Mon Sep 17 00:00:00 2001
|
||||
From: Chad Monroe <chad@monroe.io>
|
||||
Date: Tue, 5 Mar 2024 17:55:35 +0000
|
||||
Subject: [PATCH] wifi: mt76: mt7996: fix size of txpower MCU command
|
||||
|
||||
Fixes issues with scanning and low power output at some rates.
|
||||
|
||||
Fixes: f75e4779d215 ("wifi: mt76: mt7996: add txpower setting support")
|
||||
Signed-off-by: Chad Monroe <chad@monroe.io>
|
||||
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7996/mcu.c | 7 +++++--
|
||||
mt7996/mt7996.h | 1 +
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/mt7996/mcu.c
|
||||
+++ b/mt7996/mcu.c
|
||||
@@ -4456,7 +4456,7 @@ int mt7996_mcu_set_txpower_sku(struct mt
|
||||
u8 band_idx;
|
||||
} __packed req = {
|
||||
.tag = cpu_to_le16(UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL),
|
||||
- .len = cpu_to_le16(sizeof(req) + MT7996_SKU_RATE_NUM - 4),
|
||||
+ .len = cpu_to_le16(sizeof(req) + MT7996_SKU_PATH_NUM - 4),
|
||||
.power_ctrl_id = UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL,
|
||||
.power_limit_type = TX_POWER_LIMIT_TABLE_RATE,
|
||||
.band_idx = phy->mt76->band_idx,
|
||||
@@ -4471,7 +4471,7 @@ int mt7996_mcu_set_txpower_sku(struct mt
|
||||
mphy->txpower_cur = tx_power;
|
||||
|
||||
skb = mt76_mcu_msg_alloc(&dev->mt76, NULL,
|
||||
- sizeof(req) + MT7996_SKU_RATE_NUM);
|
||||
+ sizeof(req) + MT7996_SKU_PATH_NUM);
|
||||
if (!skb)
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -4495,6 +4495,9 @@ int mt7996_mcu_set_txpower_sku(struct mt
|
||||
/* eht */
|
||||
skb_put_data(skb, &la.eht[0], sizeof(la.eht));
|
||||
|
||||
+ /* padding */
|
||||
+ skb_put_zero(skb, MT7996_SKU_PATH_NUM - MT7996_SKU_RATE_NUM);
|
||||
+
|
||||
return mt76_mcu_skb_send_msg(&dev->mt76, skb,
|
||||
MCU_WM_UNI_CMD(TXPOWER), true);
|
||||
}
|
||||
--- a/mt7996/mt7996.h
|
||||
+++ b/mt7996/mt7996.h
|
||||
@@ -50,6 +50,7 @@
|
||||
#define MT7996_CFEND_RATE_11B 0x03 /* 11B LP, 11M */
|
||||
|
||||
#define MT7996_SKU_RATE_NUM 417
|
||||
+#define MT7996_SKU_PATH_NUM 494
|
||||
|
||||
#define MT7996_MAX_TWT_AGRT 16
|
||||
#define MT7996_MAX_STA_TWT_AGRT 8
|
||||
@ -0,0 +1,27 @@
|
||||
From b96ab5e62010887a8abee43dbcccf6f4b3fcb269 Mon Sep 17 00:00:00 2001
|
||||
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Date: Tue, 19 Mar 2024 13:05:36 +0100
|
||||
Subject: [PATCH] wifi: mt76: mt7996: fix uninitialized variable in
|
||||
mt7996_irq_tasklet()
|
||||
|
||||
Set intr1 to 0 in mt7996_irq_tasklet() in order to avoid possible
|
||||
uninitialized variable usage if wed is not active for hif2.
|
||||
|
||||
Fixes: 83eafc9251d6 ("wifi: mt76: mt7996: add wed tx support")
|
||||
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7996/mmio.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/mt7996/mmio.c
|
||||
+++ b/mt7996/mmio.c
|
||||
@@ -499,7 +499,7 @@ static void mt7996_irq_tasklet(struct ta
|
||||
struct mt7996_dev *dev = from_tasklet(dev, t, mt76.irq_tasklet);
|
||||
struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
|
||||
struct mtk_wed_device *wed_hif2 = &dev->mt76.mmio.wed_hif2;
|
||||
- u32 i, intr, mask, intr1;
|
||||
+ u32 i, intr, mask, intr1 = 0;
|
||||
|
||||
if (dev->hif2 && mtk_wed_device_active(wed_hif2)) {
|
||||
mtk_wed_device_irq_set_mask(wed_hif2, 0);
|
||||
@ -0,0 +1,39 @@
|
||||
From 424e9df466cea3bb39a1e92bf95f3efe65472c27 Mon Sep 17 00:00:00 2001
|
||||
From: Howard Hsu <howard-yh.hsu@mediatek.com>
|
||||
Date: Wed, 20 Mar 2024 19:09:14 +0800
|
||||
Subject: [PATCH] wifi: mt76: mt7996: fix potential memory leakage when reading
|
||||
chip temperature
|
||||
|
||||
Without this commit, reading chip temperature will cause memory leakage.
|
||||
|
||||
Fixes: 6879b2e94172 ("wifi: mt76: mt7996: add thermal sensor device support")
|
||||
Reported-by: Ryder Lee <ryder.lee@mediatek.com>
|
||||
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
|
||||
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7996/mcu.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/mt7996/mcu.c
|
||||
+++ b/mt7996/mcu.c
|
||||
@@ -3721,6 +3721,7 @@ int mt7996_mcu_get_temperature(struct mt
|
||||
} __packed * res;
|
||||
struct sk_buff *skb;
|
||||
int ret;
|
||||
+ u32 temp;
|
||||
|
||||
ret = mt76_mcu_send_and_get_msg(&phy->dev->mt76, MCU_WM_UNI_CMD(THERMAL),
|
||||
&req, sizeof(req), true, &skb);
|
||||
@@ -3728,8 +3729,10 @@ int mt7996_mcu_get_temperature(struct mt
|
||||
return ret;
|
||||
|
||||
res = (void *)skb->data;
|
||||
+ temp = le32_to_cpu(res->temperature);
|
||||
+ dev_kfree_skb(skb);
|
||||
|
||||
- return le32_to_cpu(res->temperature);
|
||||
+ return temp;
|
||||
}
|
||||
|
||||
int mt7996_mcu_set_thermal_throttling(struct mt7996_phy *phy, u8 state)
|
||||
@ -13,7 +13,7 @@
|
||||
aliases {
|
||||
led-boot = &led_blue;
|
||||
led-failsafe = &led_red;
|
||||
led-running = &led_green;
|
||||
led-running = &led_blue;
|
||||
led-upgrade = &led_red;
|
||||
};
|
||||
|
||||
@ -278,7 +278,6 @@
|
||||
label = "red";
|
||||
color = <LED_COLOR_ID_RED>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
linux,default-trigger = "none";
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
@ -286,7 +285,6 @@
|
||||
label = "green";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
linux,default-trigger = "none";
|
||||
reg = <1>;
|
||||
};
|
||||
|
||||
@ -294,7 +292,6 @@
|
||||
label = "blue";
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_INDICATOR;
|
||||
linux,default-trigger = "default-on";
|
||||
reg = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -44,13 +44,13 @@
|
||||
gpios = <&qcom_pinmux 19 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
lan2_green {
|
||||
label = "green:lan2";
|
||||
lan1_green {
|
||||
label = "green:lan1";
|
||||
gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
lan1_green {
|
||||
label = "green:lan1";
|
||||
lan2_green {
|
||||
label = "green:lan2";
|
||||
gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
@ -59,13 +59,13 @@
|
||||
gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
lan2_orange {
|
||||
label = "orange:lan2";
|
||||
lan1_orange {
|
||||
label = "orange:lan1";
|
||||
gpios = <&qcom_pinmux 60 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
lan1_orange {
|
||||
label = "orange:lan1";
|
||||
lan2_orange {
|
||||
label = "orange:lan2";
|
||||
gpios = <&qcom_pinmux 62 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
compatible = "enterasys,ws-ap3710i";
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet2;
|
||||
led-boot = &led_power_green;
|
||||
led-failsafe = &led_power_red;
|
||||
led-running = &led_power_green;
|
||||
@ -16,6 +18,11 @@
|
||||
label-mac-device = &enet0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs-override = "console=ttyS0,115200";
|
||||
stdout-path = &serial0;
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
@ -74,7 +81,7 @@
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
compatible = "denx,fit";
|
||||
compatible = "denx,uimage";
|
||||
reg = <0x0 0x1d80000>;
|
||||
label = "firmware";
|
||||
};
|
||||
@ -145,6 +152,13 @@
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
reg = <0 0xffe09000 0 0x1000>;
|
||||
|
||||
/* Filled by U-Boot */
|
||||
bus-range = <0x00 0x01>;
|
||||
dma-ranges = <0x2000000 0x00 0xfff00000 0x00 0xffe00000
|
||||
0x00 0x100000 0x42000000 0x00 0x00 0x00
|
||||
0x00 0x00 0x10000000>;
|
||||
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
@ -160,6 +174,13 @@
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
|
||||
/* Filled by U-Boot */
|
||||
bus-range = <0x00 0x01>;
|
||||
dma-ranges = <0x2000000 0x00 0xfff00000 0x00
|
||||
0xffe00000 0x00 0x100000 0x42000000
|
||||
0x00 0x00 0x00 0x00 0x00 0x10000000>;
|
||||
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
@ -174,6 +195,87 @@
|
||||
};
|
||||
/include/ "fsl/p1020si-post.dtsi"
|
||||
|
||||
/ {
|
||||
cpus {
|
||||
PowerPC,P1020@0 {
|
||||
bus-frequency = <399999996>;
|
||||
timebase-frequency = <50000000>;
|
||||
clock-frequency = <799999992>;
|
||||
d-cache-block-size = <0x20>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-sets = <0x80>;
|
||||
i-cache-block-size = <0x20>;
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-sets = <0x80>;
|
||||
cpu-release-addr = <0x0 0x0ffff280>;
|
||||
status = "okay";
|
||||
enable-method = "spin-table";
|
||||
};
|
||||
|
||||
PowerPC,P1020@1 {
|
||||
bus-frequency = <399999996>;
|
||||
timebase-frequency = <50000000>;
|
||||
clock-frequency = <799999992>;
|
||||
d-cache-block-size = <0x20>;
|
||||
d-cache-size = <0x8000>;
|
||||
d-cache-sets = <0x80>;
|
||||
i-cache-block-size = <0x20>;
|
||||
i-cache-size = <0x8000>;
|
||||
i-cache-sets = <0x80>;
|
||||
cpu-release-addr = <0x0 0x0ffff2a0>;
|
||||
status = "disabled";
|
||||
enable-method = "spin-table";
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
reg = <0x0 0x0 0x0 0x10000000>;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
cpu1-bootpage@ff00000 {
|
||||
/* Reserve upper 1 MB for second-core-bootpage */
|
||||
reg = <0x0 0xff00000 0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
soc@ffe00000 {
|
||||
bus-frequency = <399999996>;
|
||||
|
||||
serial@4600 {
|
||||
clock-frequency = <399999996>;
|
||||
};
|
||||
|
||||
serial@4500 {
|
||||
clock-frequency = <399999996>;
|
||||
};
|
||||
|
||||
pic@40000 {
|
||||
clock-frequency = <399999996>;
|
||||
};
|
||||
};
|
||||
|
||||
localbus@ffe05000 {
|
||||
bus-frequency = <24999999>;
|
||||
};
|
||||
};
|
||||
|
||||
&enet0 {
|
||||
rx-stash-idx = <0x00>;
|
||||
rx-stash-len = <0x60>;
|
||||
bd-stash;
|
||||
};
|
||||
|
||||
&enet2 {
|
||||
rx-stash-idx = <0x00>;
|
||||
rx-stash-len = <0x60>;
|
||||
bd-stash;
|
||||
};
|
||||
|
||||
/*
|
||||
* For the OpenWrt 22.03 release, since Linux 5.10.138 now uses
|
||||
* aliases to determine PCI domain numbers, drop aliases so as not to
|
||||
|
||||
@ -62,7 +62,11 @@ define Device/enterasys_ws-ap3710i
|
||||
DEVICE_VENDOR := Enterasys
|
||||
DEVICE_MODEL := WS-AP3710i
|
||||
BLOCKSIZE := 128k
|
||||
KERNEL = kernel-bin | lzma | fit lzma $(KDIR)/image-$$(DEVICE_DTS).dtb
|
||||
KERNEL_NAME := simpleImage.ws-ap3710i
|
||||
KERNEL_ENTRY := 0x1000000
|
||||
KERNEL_LOADADDR := 0x1000000
|
||||
KERNEL = kernel-bin | uImage none
|
||||
KERNEL_INITRAMFS := kernel-bin | uImage none
|
||||
IMAGES := sysupgrade.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
endef
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
BOARDNAME:=P1020
|
||||
KERNEL_IMAGES:=simpleImage.ws-ap3825i
|
||||
KERNEL_IMAGES:=simpleImage.ws-ap3710i simpleImage.ws-ap3825i
|
||||
|
||||
define Target/Description
|
||||
Build firmware images for Freescale P1020 based boards.
|
||||
|
||||
@ -28,3 +28,33 @@
|
||||
obj-$(CONFIG_CORENET_GENERIC) += corenet_generic.o
|
||||
obj-$(CONFIG_FB_FSL_DIU) += t1042rdb_diu.o
|
||||
obj-$(CONFIG_RED_15W_REV1) += red15w_rev1.o
|
||||
--- a/arch/powerpc/boot/Makefile
|
||||
+++ b/arch/powerpc/boot/Makefile
|
||||
@@ -164,6 +164,7 @@ src-plat-$(CONFIG_PPC_POWERNV) += pserie
|
||||
src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
|
||||
src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
|
||||
src-plat-$(CONFIG_TL_WDR4900_V1) += simpleboot.c fixed-head.S
|
||||
+src-plat-$(CONFIG_WS_AP3710I) += simpleboot.c fixed-head.S
|
||||
|
||||
src-plat-$(CONFIG_PPC_MICROWATT) += fixed-head.S microwatt.c
|
||||
|
||||
@@ -345,6 +346,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
|
||||
image-$(CONFIG_TQM8560) += cuImage.tqm8560
|
||||
image-$(CONFIG_KSI8560) += cuImage.ksi8560
|
||||
image-$(CONFIG_TL_WDR4900_V1) += simpleImage.tl-wdr4900-v1
|
||||
+image-$(CONFIG_WS_AP3710I) += simpleImage.ws-ap3710i
|
||||
# Board ports in arch/powerpc/platform/86xx/Kconfig
|
||||
image-$(CONFIG_MVME7100) += dtbImage.mvme7100
|
||||
|
||||
--- a/arch/powerpc/boot/wrapper
|
||||
+++ b/arch/powerpc/boot/wrapper
|
||||
@@ -326,7 +326,8 @@ adder875-redboot)
|
||||
platformo="$object/fixed-head.o $object/redboot-8xx.o"
|
||||
binary=y
|
||||
;;
|
||||
-simpleboot-tl-wdr4900-v1)
|
||||
+simpleboot-tl-wdr4900-v1|\
|
||||
+simpleboot-ws-ap3710i)
|
||||
platformo="$object/fixed-head.o $object/simpleboot.o"
|
||||
link_address='0x1000000'
|
||||
binary=y
|
||||
|
||||
@ -37,29 +37,23 @@ WS-AP3825i AP.
|
||||
obj-$(CONFIG_RED_15W_REV1) += red15w_rev1.o
|
||||
--- a/arch/powerpc/boot/Makefile
|
||||
+++ b/arch/powerpc/boot/Makefile
|
||||
@@ -164,6 +164,7 @@ src-plat-$(CONFIG_PPC_POWERNV) += pserie
|
||||
src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
|
||||
src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
|
||||
src-plat-$(CONFIG_TL_WDR4900_V1) += simpleboot.c fixed-head.S
|
||||
+src-plat-$(CONFIG_WS_AP3825I) += simpleboot.c fixed-head.S
|
||||
|
||||
src-plat-$(CONFIG_PPC_MICROWATT) += fixed-head.S microwatt.c
|
||||
|
||||
@@ -345,6 +346,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
|
||||
image-$(CONFIG_TQM8560) += cuImage.tqm8560
|
||||
@@ -347,6 +347,7 @@ image-$(CONFIG_TQM8560) += cuImage.tqm
|
||||
image-$(CONFIG_KSI8560) += cuImage.ksi8560
|
||||
image-$(CONFIG_TL_WDR4900_V1) += simpleImage.tl-wdr4900-v1
|
||||
image-$(CONFIG_WS_AP3710I) += simpleImage.ws-ap3710i
|
||||
+image-$(CONFIG_WS_AP3825I) += simpleImage.ws-ap3825i
|
||||
# Board ports in arch/powerpc/platform/86xx/Kconfig
|
||||
image-$(CONFIG_MVME7100) += dtbImage.mvme7100
|
||||
|
||||
--- a/arch/powerpc/boot/wrapper
|
||||
+++ b/arch/powerpc/boot/wrapper
|
||||
@@ -326,6 +326,7 @@ adder875-redboot)
|
||||
platformo="$object/fixed-head.o $object/redboot-8xx.o"
|
||||
@@ -327,7 +327,8 @@ adder875-redboot)
|
||||
binary=y
|
||||
;;
|
||||
+simpleboot-ws-ap3825i|\
|
||||
simpleboot-tl-wdr4900-v1)
|
||||
simpleboot-tl-wdr4900-v1|\
|
||||
-simpleboot-ws-ap3710i)
|
||||
+simpleboot-ws-ap3710i|\
|
||||
+simpleboot-ws-ap3825i)
|
||||
platformo="$object/fixed-head.o $object/simpleboot.o"
|
||||
link_address='0x1000000'
|
||||
binary=y
|
||||
|
||||
@ -30,21 +30,21 @@
|
||||
obj-$(CONFIG_CORENET_GENERIC) += corenet_generic.o
|
||||
--- a/arch/powerpc/boot/Makefile
|
||||
+++ b/arch/powerpc/boot/Makefile
|
||||
@@ -346,6 +346,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
|
||||
image-$(CONFIG_TQM8560) += cuImage.tqm8560
|
||||
@@ -347,6 +347,7 @@ image-$(CONFIG_TQM8560) += cuImage.tqm
|
||||
image-$(CONFIG_KSI8560) += cuImage.ksi8560
|
||||
image-$(CONFIG_TL_WDR4900_V1) += simpleImage.tl-wdr4900-v1
|
||||
image-$(CONFIG_WS_AP3710I) += simpleImage.ws-ap3710i
|
||||
+image-$(CONFIG_WS_AP3715I) += simpleImage.ws-ap3715i
|
||||
image-$(CONFIG_WS_AP3825I) += simpleImage.ws-ap3825i
|
||||
# Board ports in arch/powerpc/platform/86xx/Kconfig
|
||||
image-$(CONFIG_MVME7100) += dtbImage.mvme7100
|
||||
--- a/arch/powerpc/boot/wrapper
|
||||
+++ b/arch/powerpc/boot/wrapper
|
||||
@@ -326,6 +326,7 @@ adder875-redboot)
|
||||
platformo="$object/fixed-head.o $object/redboot-8xx.o"
|
||||
binary=y
|
||||
@@ -328,6 +328,7 @@ adder875-redboot)
|
||||
;;
|
||||
simpleboot-tl-wdr4900-v1|\
|
||||
simpleboot-ws-ap3710i|\
|
||||
+simpleboot-ws-ap3715i|\
|
||||
simpleboot-ws-ap3825i|\
|
||||
simpleboot-tl-wdr4900-v1)
|
||||
simpleboot-ws-ap3825i)
|
||||
platformo="$object/fixed-head.o $object/simpleboot.o"
|
||||
link_address='0x1000000'
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
|
||||
+src-plat-$(CONFIG_BR200_WP) += simpleboot.c fixed-head.S
|
||||
src-plat-$(CONFIG_TL_WDR4900_V1) += simpleboot.c fixed-head.S
|
||||
src-plat-$(CONFIG_WS_AP3825I) += simpleboot.c fixed-head.S
|
||||
src-plat-$(CONFIG_WS_AP3710I) += simpleboot.c fixed-head.S
|
||||
|
||||
@@ -345,6 +346,7 @@ image-$(CONFIG_TQM8548) += cuImage.tqm
|
||||
image-$(CONFIG_TQM8555) += cuImage.tqm8555
|
||||
@ -43,8 +43,8 @@
|
||||
image-$(CONFIG_KSI8560) += cuImage.ksi8560
|
||||
+image-$(CONFIG_BR200_WP) += simpleImage.br200-wp
|
||||
image-$(CONFIG_TL_WDR4900_V1) += simpleImage.tl-wdr4900-v1
|
||||
image-$(CONFIG_WS_AP3710I) += simpleImage.ws-ap3710i
|
||||
image-$(CONFIG_WS_AP3715I) += simpleImage.ws-ap3715i
|
||||
image-$(CONFIG_WS_AP3825I) += simpleImage.ws-ap3825i
|
||||
--- a/arch/powerpc/boot/wrapper
|
||||
+++ b/arch/powerpc/boot/wrapper
|
||||
@@ -326,6 +326,7 @@ adder875-redboot)
|
||||
@ -52,6 +52,6 @@
|
||||
binary=y
|
||||
;;
|
||||
+simpleboot-br200-wp|\
|
||||
simpleboot-tl-wdr4900-v1|\
|
||||
simpleboot-ws-ap3710i|\
|
||||
simpleboot-ws-ap3715i|\
|
||||
simpleboot-ws-ap3825i|\
|
||||
simpleboot-tl-wdr4900-v1)
|
||||
|
||||
@ -155,6 +155,12 @@ static void rtl83xx_setup_bpdu_traps(struct rtl838x_switch_priv *priv)
|
||||
priv->r->set_receive_management_action(i, BPDU, TRAP2CPU);
|
||||
}
|
||||
|
||||
static void rtl83xx_setup_lldp_traps(struct rtl838x_switch_priv *priv)
|
||||
{
|
||||
for (int i = 0; i < priv->cpu_port; i++)
|
||||
priv->r->set_receive_management_action(i, LLDP, TRAP2CPU);
|
||||
}
|
||||
|
||||
static void rtl83xx_port_set_salrn(struct rtl838x_switch_priv *priv,
|
||||
int port, bool enable)
|
||||
{
|
||||
@ -207,6 +213,7 @@ static int rtl83xx_setup(struct dsa_switch *ds)
|
||||
rtl83xx_vlan_setup(priv);
|
||||
|
||||
rtl83xx_setup_bpdu_traps(priv);
|
||||
rtl83xx_setup_lldp_traps(priv);
|
||||
|
||||
ds->configure_vlan_while_not_filtering = true;
|
||||
|
||||
|
||||
@ -1678,9 +1678,9 @@ void rtl838x_set_receive_management_action(int port, rma_ctrl_t type, action_typ
|
||||
sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1),
|
||||
RTL838X_RMA_PTP_CTRL + ((port >> 4) << 2));
|
||||
break;
|
||||
case LLTP:
|
||||
case LLDP:
|
||||
sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1),
|
||||
RTL838X_RMA_LLTP_CTRL + ((port >> 4) << 2));
|
||||
RTL838X_RMA_LLDP_CTRL + ((port >> 4) << 2));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@ -425,7 +425,7 @@ typedef enum {
|
||||
PTP,
|
||||
PTP_UDP,
|
||||
PTP_ETH2,
|
||||
LLTP,
|
||||
LLDP,
|
||||
EAPOL,
|
||||
GRATARP,
|
||||
} rma_ctrl_t;
|
||||
@ -449,10 +449,10 @@ typedef enum {
|
||||
#define RTL930X_RMA_PTP_CTRL (0x9E88)
|
||||
#define RTL931X_RMA_PTP_CTRL (0x8834)
|
||||
|
||||
#define RTL838X_RMA_LLTP_CTRL (0x4340)
|
||||
#define RTL839X_RMA_LLTP_CTRL (0x124C)
|
||||
#define RTL930X_RMA_LLTP_CTRL (0x9EFC)
|
||||
#define RTL931X_RMA_LLTP_CTRL (0x8918)
|
||||
#define RTL838X_RMA_LLDP_CTRL (0x4340)
|
||||
#define RTL839X_RMA_LLDP_CTRL (0x124C)
|
||||
#define RTL930X_RMA_LLDP_CTRL (0x9EFC)
|
||||
#define RTL931X_RMA_LLDP_CTRL (0x8918)
|
||||
|
||||
#define RTL930X_RMA_EAPOL_CTRL (0x9F08)
|
||||
#define RTL931X_RMA_EAPOL_CTRL (0x8930)
|
||||
|
||||
@ -1814,9 +1814,9 @@ void rtl839x_set_receive_management_action(int port, rma_ctrl_t type, action_typ
|
||||
sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1),
|
||||
RTL839X_RMA_PTP_CTRL + ((port >> 4) << 2));
|
||||
break;
|
||||
case LLTP:
|
||||
case LLDP:
|
||||
sw_w32_mask(3 << ((port & 0xf) << 1), (action & 0x3) << ((port & 0xf) << 1),
|
||||
RTL839X_RMA_LLTP_CTRL + ((port >> 4) << 2));
|
||||
RTL839X_RMA_LLDP_CTRL + ((port >> 4) << 2));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@ -516,8 +516,8 @@ void rtl931x_set_receive_management_action(int port, rma_ctrl_t type, action_typ
|
||||
case PTP_ETH2:
|
||||
sw_w32_mask(3, value, RTL931X_RMA_PTP_CTRL + (port << 2));
|
||||
break;
|
||||
case LLTP:
|
||||
sw_w32_mask(7 << ((port % 10) * 3), value << ((port % 10) * 3), RTL931X_RMA_LLTP_CTRL + ((port / 10) << 2));
|
||||
case LLDP:
|
||||
sw_w32_mask(7 << ((port % 10) * 3), value << ((port % 10) * 3), RTL931X_RMA_LLDP_CTRL + ((port / 10) << 2));
|
||||
break;
|
||||
case EAPOL:
|
||||
sw_w32_mask(7 << ((port % 10) * 3), value << ((port % 10) * 3), RTL931X_RMA_EAPOL_CTRL + ((port / 10) << 2));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user