Commit 78d28543 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by David S. Miller

ftgmac100: Use device "compatible" property, not machine.

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: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 05690d63
...@@ -42,7 +42,7 @@ vic: interrupt-controller@1e6c0080 { ...@@ -42,7 +42,7 @@ vic: interrupt-controller@1e6c0080 {
}; };
mac0: ethernet@1e660000 { mac0: ethernet@1e660000 {
compatible = "faraday,ftgmac100"; compatible = "aspeed,ast2400-mac", "faraday,ftgmac100";
reg = <0x1e660000 0x180>; reg = <0x1e660000 0x180>;
interrupts = <2>; interrupts = <2>;
no-hw-checksum; no-hw-checksum;
...@@ -50,7 +50,7 @@ mac0: ethernet@1e660000 { ...@@ -50,7 +50,7 @@ mac0: ethernet@1e660000 {
}; };
mac1: ethernet@1e680000 { mac1: ethernet@1e680000 {
compatible = "faraday,ftgmac100"; compatible = "aspeed,ast2400-mac", "faraday,ftgmac100";
reg = <0x1e680000 0x180>; reg = <0x1e680000 0x180>;
interrupts = <3>; interrupts = <3>;
no-hw-checksum; no-hw-checksum;
......
...@@ -33,7 +33,7 @@ vic: interrupt-controller@1e6c0080 { ...@@ -33,7 +33,7 @@ vic: interrupt-controller@1e6c0080 {
}; };
mac0: ethernet@1e660000 { mac0: ethernet@1e660000 {
compatible = "faraday,ftgmac100"; compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
reg = <0x1e660000 0x180>; reg = <0x1e660000 0x180>;
interrupts = <2>; interrupts = <2>;
no-hw-checksum; no-hw-checksum;
...@@ -41,7 +41,7 @@ mac0: ethernet@1e660000 { ...@@ -41,7 +41,7 @@ mac0: ethernet@1e660000 {
}; };
mac1: ethernet@1e680000 { mac1: ethernet@1e680000 {
compatible = "faraday,ftgmac100"; compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
reg = <0x1e680000 0x180>; reg = <0x1e680000 0x180>;
interrupts = <3>; interrupts = <3>;
no-hw-checksum; no-hw-checksum;
......
...@@ -92,6 +92,7 @@ struct ftgmac100 { ...@@ -92,6 +92,7 @@ struct ftgmac100 {
/* Misc */ /* Misc */
bool need_mac_restart; bool need_mac_restart;
bool is_aspeed;
}; };
static void ftgmac100_set_rx_ring_base(struct ftgmac100 *priv, dma_addr_t addr) 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) ...@@ -1322,8 +1323,7 @@ static int ftgmac100_setup_mdio(struct net_device *netdev)
if (!priv->mii_bus) if (!priv->mii_bus)
return -EIO; return -EIO;
if (of_machine_is_compatible("aspeed,ast2400") || if (priv->is_aspeed) {
of_machine_is_compatible("aspeed,ast2500")) {
/* This driver supports the old MDIO interface */ /* This driver supports the old MDIO interface */
reg = ioread32(priv->base + FTGMAC100_OFFSET_REVR); reg = ioread32(priv->base + FTGMAC100_OFFSET_REVR);
reg &= ~FTGMAC100_REVR_NEW_MDIO_INTERFACE; reg &= ~FTGMAC100_REVR_NEW_MDIO_INTERFACE;
...@@ -1388,6 +1388,7 @@ static int ftgmac100_probe(struct platform_device *pdev) ...@@ -1388,6 +1388,7 @@ static int ftgmac100_probe(struct platform_device *pdev)
int irq; int irq;
struct net_device *netdev; struct net_device *netdev;
struct ftgmac100 *priv; struct ftgmac100 *priv;
struct device_node *np;
int err = 0; int err = 0;
if (!pdev) if (!pdev)
...@@ -1443,17 +1444,18 @@ static int ftgmac100_probe(struct platform_device *pdev) ...@@ -1443,17 +1444,18 @@ static int ftgmac100_probe(struct platform_device *pdev)
/* MAC address from chip or random one */ /* MAC address from chip or random one */
ftgmac100_setup_mac(priv); ftgmac100_setup_mac(priv);
if (of_machine_is_compatible("aspeed,ast2400") || np = pdev->dev.of_node;
of_machine_is_compatible("aspeed,ast2500")) { 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->rxdes0_edorr_mask = BIT(30);
priv->txdes0_edotr_mask = BIT(30); priv->txdes0_edotr_mask = BIT(30);
priv->is_aspeed = true;
} else { } else {
priv->rxdes0_edorr_mask = BIT(15); priv->rxdes0_edorr_mask = BIT(15);
priv->txdes0_edotr_mask = BIT(15); priv->txdes0_edotr_mask = BIT(15);
} }
if (pdev->dev.of_node && if (np && of_get_property(np, "use-ncsi", NULL)) {
of_get_property(pdev->dev.of_node, "use-ncsi", NULL)) {
if (!IS_ENABLED(CONFIG_NET_NCSI)) { if (!IS_ENABLED(CONFIG_NET_NCSI)) {
dev_err(&pdev->dev, "NCSI stack not enabled\n"); dev_err(&pdev->dev, "NCSI stack not enabled\n");
goto err_ncsi_dev; goto err_ncsi_dev;
...@@ -1478,7 +1480,7 @@ static int ftgmac100_probe(struct platform_device *pdev) ...@@ -1478,7 +1480,7 @@ static int ftgmac100_probe(struct platform_device *pdev)
netdev->features = NETIF_F_RXCSUM | NETIF_F_HW_CSUM | netdev->features = NETIF_F_RXCSUM | NETIF_F_HW_CSUM |
NETIF_F_GRO | NETIF_F_SG; NETIF_F_GRO | NETIF_F_SG;
if (priv->use_ncsi && 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; netdev->features &= ~NETIF_F_HW_CSUM;
/* register network device */ /* register network device */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment