Skip to content

Commit

Permalink
ftgmac100: Use device "compatible" property, not machine.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
ozbenh authored and davem330 committed Apr 12, 2017
1 parent 05690d6 commit 78d2854
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
4 changes: 2 additions & 2 deletions arch/arm/boot/dts/aspeed-g4.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@
};

mac0: ethernet@1e660000 {
compatible = "faraday,ftgmac100";
compatible = "aspeed,ast2400-mac", "faraday,ftgmac100";
reg = <0x1e660000 0x180>;
interrupts = <2>;
no-hw-checksum;
status = "disabled";
};

mac1: ethernet@1e680000 {
compatible = "faraday,ftgmac100";
compatible = "aspeed,ast2400-mac", "faraday,ftgmac100";
reg = <0x1e680000 0x180>;
interrupts = <3>;
no-hw-checksum;
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/boot/dts/aspeed-g5.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@
};

mac0: ethernet@1e660000 {
compatible = "faraday,ftgmac100";
compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
reg = <0x1e660000 0x180>;
interrupts = <2>;
no-hw-checksum;
status = "disabled";
};

mac1: ethernet@1e680000 {
compatible = "faraday,ftgmac100";
compatible = "aspeed,ast2500-mac", "faraday,ftgmac100";
reg = <0x1e680000 0x180>;
interrupts = <3>;
no-hw-checksum;
Expand Down
16 changes: 9 additions & 7 deletions drivers/net/ethernet/faraday/ftgmac100.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand All @@ -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 */
Expand Down

0 comments on commit 78d2854

Please sign in to comment.