ftgmac100: Support NCSI VLAN filtering when available
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>
Mon, 28 Aug 2017 06:18:43 +0000 (16:18 +1000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Aug 2017 23:49:49 +0000 (16:49 -0700)
Register the ndo_vlan_rx_{add,kill}_vid callbacks and set the
NETIF_F_HW_VLAN_CTAG_FILTER if NCSI is available.
This allows the VLAN core to notify the NCSI driver when changes occur
so that the remote NCSI channel can be properly configured to filter on
the set VLAN tags.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/faraday/ftgmac100.c

index 34dae51effd45a19c9a2b8b607dafeaec3aa0456..05fe7123d5ae8868a1f4b1a0ef5f23de33b71ad6 100644 (file)
@@ -1623,6 +1623,8 @@ static const struct net_device_ops ftgmac100_netdev_ops = {
 #ifdef CONFIG_NET_POLL_CONTROLLER
        .ndo_poll_controller    = ftgmac100_poll_controller,
 #endif
+       .ndo_vlan_rx_add_vid    = ncsi_vlan_rx_add_vid,
+       .ndo_vlan_rx_kill_vid   = ncsi_vlan_rx_kill_vid,
 };
 
 static int ftgmac100_setup_mdio(struct net_device *netdev)
@@ -1837,6 +1839,9 @@ static int ftgmac100_probe(struct platform_device *pdev)
                NETIF_F_GRO | NETIF_F_SG | NETIF_F_HW_VLAN_CTAG_RX |
                NETIF_F_HW_VLAN_CTAG_TX;
 
+       if (priv->use_ncsi)
+               netdev->hw_features |= NETIF_F_HW_VLAN_CTAG_FILTER;
+
        /* AST2400  doesn't have working HW checksum generation */
        if (np && (of_device_is_compatible(np, "aspeed,ast2400-mac")))
                netdev->hw_features &= ~NETIF_F_HW_CSUM;