]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ftgmac100: Use device "compatible" property, not machine.
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 12 Apr 2017 03:27:02 +0000 (13:27 +1000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Apr 2017 14:17:01 +0000 (10:17 -0400)
We test for aspeed chips to handle a couple of special cases,
but we do that by checking the machine type which isn't right.

Instead check the actual device compatible property. This also
updates the dtsi files for the aspeed SoC to match.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/arm/boot/dts/aspeed-g4.dtsi
arch/arm/boot/dts/aspeed-g5.dtsi
drivers/net/ethernet/faraday/ftgmac100.c

index 0b4932cc02a8d8bb66165e40c11113647b92633f..6068e79fb65178ac946c61c5686201284013f521 100644 (file)
@@ -42,7 +42,7 @@ vic: interrupt-controller@1e6c0080 {
                };
 
                mac0: ethernet@1e660000 {
-                       compatible = "faraday,ftgmac100";
+                       compatible = "aspeed,ast2400-mac", "faraday,ftgmac100";
                        reg = <0x1e660000 0x180>;
                        interrupts = <2>;
                        no-hw-checksum;
@@ -50,7 +50,7 @@ mac0: ethernet@1e660000 {
                };
 
                mac1: ethernet@1e680000 {
-                       compatible = "faraday,ftgmac100";
+                       compatible = "aspeed,ast2400-mac", "faraday,ftgmac100";
                        reg = <0x1e680000 0x180>;
                        interrupts = <3>;
                        no-hw-checksum;
index b664fe380936390a6f1ecdee49f157763e858513..4dbe91a0279218bddcc8971e00e1b11117e384ea 100644 (file)
@@ -33,7 +33,7 @@ vic: interrupt-controller@1e6c0080 {
                };
 
                mac0: ethernet@1e660000 {
-                       compatible = "faraday,ftgmac100";
+                       compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
                        reg = <0x1e660000 0x180>;
                        interrupts = <2>;
                        no-hw-checksum;
@@ -41,7 +41,7 @@ mac0: ethernet@1e660000 {
                };
 
                mac1: ethernet@1e680000 {
-                       compatible = "faraday,ftgmac100";
+                       compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
                        reg = <0x1e680000 0x180>;
                        interrupts = <3>;
                        no-hw-checksum;
index 3994a8307c08a66ea1d56906000c50ed870a4457..e793d353882fe85d8e753af364967fc38d7ad2d2 100644 (file)
@@ -92,6 +92,7 @@ struct ftgmac100 {
 
        /* Misc */
        bool need_mac_restart;
+       bool is_aspeed;
 };
 
 static void ftgmac100_set_rx_ring_base(struct ftgmac100 *priv, dma_addr_t addr)
@@ -1322,8 +1323,7 @@ static int ftgmac100_setup_mdio(struct net_device *netdev)
        if (!priv->mii_bus)
                return -EIO;
 
-       if (of_machine_is_compatible("aspeed,ast2400") ||
-           of_machine_is_compatible("aspeed,ast2500")) {
+       if (priv->is_aspeed) {
                /* This driver supports the old MDIO interface */
                reg = ioread32(priv->base + FTGMAC100_OFFSET_REVR);
                reg &= ~FTGMAC100_REVR_NEW_MDIO_INTERFACE;
@@ -1388,6 +1388,7 @@ static int ftgmac100_probe(struct platform_device *pdev)
        int irq;
        struct net_device *netdev;
        struct ftgmac100 *priv;
+       struct device_node *np;
        int err = 0;
 
        if (!pdev)
@@ -1443,17 +1444,18 @@ static int ftgmac100_probe(struct platform_device *pdev)
        /* MAC address from chip or random one */
        ftgmac100_setup_mac(priv);
 
-       if (of_machine_is_compatible("aspeed,ast2400") ||
-           of_machine_is_compatible("aspeed,ast2500")) {
+       np = pdev->dev.of_node;
+       if (np && (of_device_is_compatible(np, "aspeed,ast2400-mac") ||
+                  of_device_is_compatible(np, "aspeed,ast2500-mac"))) {
                priv->rxdes0_edorr_mask = BIT(30);
                priv->txdes0_edotr_mask = BIT(30);
+               priv->is_aspeed = true;
        } else {
                priv->rxdes0_edorr_mask = BIT(15);
                priv->txdes0_edotr_mask = BIT(15);
        }
 
-       if (pdev->dev.of_node &&
-           of_get_property(pdev->dev.of_node, "use-ncsi", NULL)) {
+       if (np && of_get_property(np, "use-ncsi", NULL)) {
                if (!IS_ENABLED(CONFIG_NET_NCSI)) {
                        dev_err(&pdev->dev, "NCSI stack not enabled\n");
                        goto err_ncsi_dev;
@@ -1478,7 +1480,7 @@ static int ftgmac100_probe(struct platform_device *pdev)
        netdev->features = NETIF_F_RXCSUM | NETIF_F_HW_CSUM |
                NETIF_F_GRO | NETIF_F_SG;
        if (priv->use_ncsi &&
-           of_get_property(pdev->dev.of_node, "no-hw-checksum", NULL))
+           of_get_property(np, "no-hw-checksum", NULL))
                netdev->features &= ~NETIF_F_HW_CSUM;
 
        /* register network device */