net: ethernet: mediatek: get hw lro capability by the chip id instead of by the dtsi
authorNelson Chang <nelson.chang@mediatek.com>
Thu, 6 Oct 2016 11:44:02 +0000 (19:44 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Oct 2016 01:08:08 +0000 (21:08 -0400)
Because hw lro started to be supported from MT7623, the proper way to check if
the feature is capable is to judge by the chip id instead of by the dtsi.

Signed-off-by: Nelson Chang <nelson.chang@mediatek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c
drivers/net/ethernet/mediatek/mtk_eth_soc.h

index 0c67ab1fb4d88d942615bc9ff3c0e7862c82dfde..4a62ffd7729d0327f35b16d4a5b4e3dc89adbb01 100644 (file)
@@ -2348,6 +2348,16 @@ static int mtk_get_chip_id(struct mtk_eth *eth, u32 *chip_id)
        return 0;
 }
 
+static bool mtk_is_hwlro_supported(struct mtk_eth *eth)
+{
+       switch (eth->chip_id) {
+       case MT7623_ETH:
+               return true;
+       }
+
+       return false;
+}
+
 static int mtk_probe(struct platform_device *pdev)
 {
        struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -2387,8 +2397,6 @@ static int mtk_probe(struct platform_device *pdev)
                return PTR_ERR(eth->pctl);
        }
 
-       eth->hwlro = of_property_read_bool(pdev->dev.of_node, "mediatek,hwlro");
-
        for (i = 0; i < 3; i++) {
                eth->irq[i] = platform_get_irq(pdev, i);
                if (eth->irq[i] < 0) {
@@ -2417,6 +2425,8 @@ static int mtk_probe(struct platform_device *pdev)
        if (err)
                return err;
 
+       eth->hwlro = mtk_is_hwlro_supported(eth);
+
        for_each_child_of_node(pdev->dev.of_node, mac_np) {
                if (!of_device_is_compatible(mac_np,
                                             "mediatek,eth-mac"))
index a5b422b37f80e9fea5c9c36738d790b0613d29fc..99b1c8e9f16f981a0603f906280dcd98f7fa1b54 100644 (file)
 /* ethernet subsystem chip id register */
 #define ETHSYS_CHIPID0_3       0x0
 #define ETHSYS_CHIPID4_7       0x4
+#define MT7623_ETH             7623
 
 /* ethernet subsystem config register */
 #define ETHSYS_SYSCFG0         0x14