Re: [RESEND PATCH 3/3] net: stmmac: stmmac_platform: use correct setup function for gmac4

From: David Miller
Date: Thu Dec 08 2016 - 11:36:56 EST

From: Niklas Cassel <niklas.cassel@xxxxxxxx>
Date: Wed, 7 Dec 2016 13:41:08 +0100

> From: Niklas Cassel <niklas.cassel@xxxxxxxx>
> 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@xxxxxxxx>
> Acked-by: Alexandre TORGUE <alexandre.torgue@xxxxxx>