rockchip: disable vlan hw filter for nanopi r6s

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2024-08-14 01:00:01 +08:00
parent a3b7cd0483
commit 07e476cac8
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
3 changed files with 51 additions and 2 deletions

View File

@ -189,6 +189,7 @@
&gmac1_rx_bus2 &gmac1_rx_bus2
&gmac1_rgmii_clk &gmac1_rgmii_clk
&gmac1_rgmii_bus>; &gmac1_rgmii_bus>;
snps,no-vlhash;
snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
snps,reset-active-low; snps,reset-active-low;
/* Reset time is 20ms, 100ms for rtl8211f */ /* Reset time is 20ms, 100ms for rtl8211f */

View File

@ -0,0 +1,48 @@
From 32230f9e59438899c949a4bab178a8f10f17b903 Mon Sep 17 00:00:00 2001
From: jensen <jensenhuang@friendlyarm.com>
Date: Thu, 17 Nov 2022 18:35:43 +0800
Subject: [PATCH] ethernet: stmmac: Add property to disable VLAN hw filter
Since adding VLAN in promisc mode not supported, which makes unable to
setup bridge, add a configurable option to disable it.
Signed-off-by: jensen <jensenhuang@friendlyarm.com>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 +++
include/linux/stmmac.h | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -7528,7 +7528,7 @@ int stmmac_dvr_probe(struct device *devi
#ifdef STMMAC_VLAN_TAG_USED
/* Both mac100 and gmac support receive VLAN tag detection */
ndev->features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_STAG_RX;
- if (priv->dma_cap.vlhash) {
+ if (priv->plat->vlhash_en && priv->dma_cap.vlhash) {
ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
ndev->features |= NETIF_F_HW_VLAN_STAG_FILTER;
}
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -570,6 +570,9 @@ stmmac_probe_config_dt(struct platform_d
"force_sf_dma_mode is ignored if force_thresh_dma_mode is set.\n");
}
+ /* To disable VLAN tag filter */
+ plat->vlhash_en = !of_property_read_bool(np, "snps,no-vlhash");
+
of_property_read_u32(np, "snps,ps-speed", &plat->mac_port_sel_speed);
plat->axi = stmmac_axi_setup(pdev);
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -300,6 +300,7 @@ struct plat_stmmacenet_data {
int rss_en;
int mac_port_sel_speed;
int has_xgmac;
+ bool vlhash_en;
u8 vlan_fail_q;
unsigned int eee_usecs_rate;
struct pci_dev *pdev;

View File

@ -8,7 +8,7 @@
#include <linux/tcp.h> #include <linux/tcp.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
@@ -5413,6 +5414,7 @@ static int rtl_init_one(struct pci_dev * @@ -5409,6 +5410,7 @@ static int rtl_init_one(struct pci_dev *
int jumbo_max, region, rc; int jumbo_max, region, rc;
enum mac_version chipset; enum mac_version chipset;
struct net_device *dev; struct net_device *dev;
@ -16,7 +16,7 @@
u32 txconfig; u32 txconfig;
u16 xid; u16 xid;
@@ -5420,6 +5422,9 @@ static int rtl_init_one(struct pci_dev * @@ -5416,6 +5418,9 @@ static int rtl_init_one(struct pci_dev *
if (!dev) if (!dev)
return -ENOMEM; return -ENOMEM;