net: stmmac: stmmac_platform: use correct setup function for gmac4
authorNiklas Cassel <niklas.cassel@axis.com>
Wed, 7 Dec 2016 12:41:08 +0000 (13:41 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Dec 2016 16:35:37 +0000 (11:35 -0500)
commit7cc99fd29b982964e63afa92a7e29db49b69c90e
tree47a4398659543cd0c6a3ceaf1d6a33be1aa09462
parent4966a692d055c97f83a17da6035e93806b407473
net: stmmac: stmmac_platform: use correct setup function for gmac4

devicetree binding for stmmac states:
- compatible: Should be "snps,dwmac-<ip_version>", "snps,dwmac"
For backwards compatibility: "st,spear600-gmac" is also supported.

Previously, when specifying "snps,dwmac-4.10a", "snps,dwmac" as your
compatible string, plat_stmmacenet_data would have both has_gmac and
has_gmac4 set.

This would lead to stmmac_hw_init calling dwmac1000_setup rather than
dwmac4_setup, resulting in a non-functional driver.
This happened since the check for has_gmac is done before the check for
has_gmac4. However, the order should not matter, so it does not make sense
to have both set.

If something is valid for both, you should do as the stmmac_interrupt does:
if (priv->plat->has_gmac || priv->plat->has_gmac4) ...

The places where it was obvious that the author actually meant
if (has_gmac || has_gmac4) rather than if (has_gmac) has been updated.

Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
Acked-by: Alexandre TORGUE <alexandre.torgue@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c