ipq40xx: revert usage of VLAN S-TAG

This reverts the usage of the S-Tag for separating LAN and WAN port on
the embedded switch. Many users complained about not being able to
manage C-Tag addition / removal on the switch as well as degraded
performance.

Fixes: commit 9da2b56760 ("ipq40xx: fix ethernet vlan double tagging")

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer 2020-12-01 18:55:27 +01:00 committed by AmadeusGhost
parent b861ae3270
commit 3d79ad3f05
2 changed files with 9 additions and 14 deletions

View File

@ -156,10 +156,8 @@ static void edma_configure_rx(struct edma_common_info *edma_cinfo)
/* Set Rx FIFO threshold to start to DMA data to host */
rxq_ctrl_data = EDMA_FIFO_THRESH_128_BYTE;
if (!edma_cinfo->is_single_phy) {
/* Set RX remove vlan bit */
rxq_ctrl_data |= EDMA_RXQ_CTRL_RMV_VLAN;
}
edma_write_reg(EDMA_REG_RXQ_CTRL, rxq_ctrl_data);
}
@ -1403,12 +1401,10 @@ netdev_tx_t edma_xmit(struct sk_buff *skb,
}
/* Check and mark VLAN tag offload */
if (!adapter->edma_cinfo->is_single_phy) {
if (unlikely(skb_vlan_tag_present(skb)))
flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_FLAG;
else if (adapter->default_vlan_tag)
flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_DEFAULT_FLAG;
}
if (unlikely(skb_vlan_tag_present(skb)))
flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_FLAG;
else if (!adapter->edma_cinfo->is_single_phy && adapter->default_vlan_tag)
flags_transmit |= EDMA_VLAN_TX_TAG_INSERT_DEFAULT_FLAG;
/* Check and mark checksum offload */
if (likely(skb->ip_summed == CHECKSUM_PARTIAL))

View File

@ -956,9 +956,8 @@ static int edma_axi_probe(struct platform_device *pdev)
edma_netdev[i]->netdev_ops = &edma_axi_netdev_ops;
edma_netdev[i]->max_mtu = 9000;
edma_netdev[i]->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM
| NETIF_F_HW_VLAN_CTAG_TX
| NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_SG |
NETIF_F_TSO | NETIF_F_GRO;
NETIF_F_TSO | NETIF_F_GRO | NETIF_F_HW_VLAN_CTAG_TX;
edma_netdev[i]->hw_features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
NETIF_F_HW_VLAN_CTAG_RX
| NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO;
@ -968,10 +967,10 @@ static int edma_axi_probe(struct platform_device *pdev)
NETIF_F_TSO | NETIF_F_GRO;
#ifdef CONFIG_RFS_ACCEL
edma_netdev[i]->features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
edma_netdev[i]->hw_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
edma_netdev[i]->vlan_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
edma_netdev[i]->wanted_features |= NETIF_F_RXHASH | NETIF_F_NTUPLE;
edma_netdev[i]->features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
edma_netdev[i]->hw_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE | NETIF_F_RXHASH;
#endif
edma_set_ethtool_ops(edma_netdev[i]);