diff --git a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c index 50335b0d14b..49ee31a1bdf 100644 --- a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c +++ b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma_axi.c @@ -978,11 +978,20 @@ static int edma_axi_probe(struct platform_device *pdev) edma_netdev[i]->wanted_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_TSO | NETIF_F_GRO; + if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1) + edma_netdev[i]->features |= NETIF_F_HW_VLAN_CTAG_TX; + #ifdef CONFIG_RFS_ACCEL edma_netdev[i]->features |= NETIF_F_NTUPLE; edma_netdev[i]->hw_features |= NETIF_F_NTUPLE; edma_netdev[i]->vlan_features |= NETIF_F_NTUPLE; edma_netdev[i]->wanted_features |= NETIF_F_NTUPLE; + if (of_property_read_bool(np, "qcom,single-phy") && edma_cinfo->num_gmac == 1) { + edma_netdev[i]->features |= NETIF_F_RXHASH; + edma_netdev[i]->hw_features |= NETIF_F_RXHASH; + edma_netdev[i]->vlan_features |= NETIF_F_RXHASH; + edma_netdev[i]->wanted_features |= NETIF_F_RXHASH; + } #endif edma_set_ethtool_ops(edma_netdev[i]);