Message ID | 4F57178C.7010407@st.com |
---|---|
State | Deferred, archived |
Delegated to: | David Miller |
Headers | show |
Hi, Le 03/07/12 09:08, Srinivas KANDAGATLA a écrit : > David Miller wrote: >> From: Giuseppe CAVALLARO<peppe.cavallaro@st.com> >> Date: Tue, 6 Mar 2012 06:42:00 +0100 >> >> >>> After commit "db8857b stmmac: use an unique MDIO bus name" and "90b9a54 >>> stmmac: fix phy naming inconsistency" stmmac cant work with other MDIO >>> buses, because mdio_bus name is fixed in the dirver. >>> >> >> This sounds inaccurate, you're making it sound like these commits >> introduced this limitation, as far as I can tell they did not. >> >> > Thanks for your comments, > > Commit comment is true to some extent, before "db8857b stmmac: use an > unique MDIO bus name" and "a77e929 mdio-gpio: use an unique MDIO bus > name" we managed to get stmmac use mdio bus by specifying same id in > platform data of both the drivers. You could get it working with your platform supplied MDIO bus name more by accident than on purpose. > However after these commits this method was no more possible because > stmmac can connect to phys on stmmac-x mdio buses Only. > > I think, originally the problem was in stmmac to some extent which > became worse after adding prefix mdio bus. > Here is the new patch removing the misleading comments. Your new explanation makes much more sense to me now. Feel free to add my: Acked-by: Florian Fainelli <florian@openwrt.org> > > >> Before the MDIO bus name was just plain "%x" and the bus_id number >> was placed there. Then it became the same thing, except with some >> (potentially fixed) prefix. >> >> Nothing about that change makes any difference whatsoever about >> what you're modifications are trying to allow. >> >> BTW, also, commit "90b9a54" is ambiguous. >> >> > Actual commit was : 90b9a5454fd2e626aa1614fe9ece6b63a0dc37af > > Thanks, > srini >> [davem@bql net]$ git show 90b9a54 >> error: short SHA1 90b9a54 is ambiguous. >> error: short SHA1 90b9a54 is ambiguous. >> fatal: ambiguous argument '90b9a54': unknown revision or path not in the working tree. >> > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 3/7/2012 9:08 AM, Srinivas KANDAGATLA wrote: > David Miller wrote: >> From: Giuseppe CAVALLARO <peppe.cavallaro@st.com> >> Date: Tue, 6 Mar 2012 06:42:00 +0100 >> >> >>> After commit "db8857b stmmac: use an unique MDIO bus name" and "90b9a54 >>> stmmac: fix phy naming inconsistency" stmmac cant work with other MDIO >>> buses, because mdio_bus name is fixed in the dirver. >>> >> >> This sounds inaccurate, you're making it sound like these commits >> introduced this limitation, as far as I can tell they did not. >> >> > Thanks for your comments, > > Commit comment is true to some extent, before "db8857b stmmac: use an > unique MDIO bus name" and "a77e929 mdio-gpio: use an unique MDIO bus > name" we managed to get stmmac use mdio bus by specifying same id in > platform data of both the drivers. > However after these commits this method was no more possible because > stmmac can connect to phys on stmmac-x mdio buses Only. > > I think, originally the problem was in stmmac to some extent which > became worse after adding prefix mdio bus. > Here is the new patch removing the misleading comments. Thx Srini to have resent the patch peppe > > >> Before the MDIO bus name was just plain "%x" and the bus_id number >> was placed there. Then it became the same thing, except with some >> (potentially fixed) prefix. >> >> Nothing about that change makes any difference whatsoever about >> what you're modifications are trying to allow. >> >> BTW, also, commit "90b9a54" is ambiguous. >> >> > Actual commit was : 90b9a5454fd2e626aa1614fe9ece6b63a0dc37af > > Thanks, > srini >> [davem@bql net]$ git show 90b9a54 >> error: short SHA1 90b9a54 is ambiguous. >> error: short SHA1 90b9a54 is ambiguous. >> fatal: ambiguous argument '90b9a54': unknown revision or path not in the working tree. >> > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From 1f10d82e8d2df8d5b86595954dcb4e3c2cab9011 Mon Sep 17 00:00:00 2001 From: Srinivas Kandagatla <srinivas.kandagatla@st.com> Date: Thu, 1 Mar 2012 09:40:12 +0000 Subject: [PATCH 3.3.0-rc4] stmmac: Allow stmmac to work with other PHY buses(v3). As stmmac mdio bus name prefix is hardcoded in the driver, this allows only phys on stmmac mdio buses to connect, however stmmac should allow phys on other mdio buses too. This patch adds new variable phy_bus_name to plat_stmmacenet_data struct to let the BSP decide which phy bus to be used by stmmac driver. A typical use-case is to have generic MDIO buses like mdio-gpio on top of stmmac. Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +++++++- include/linux/stmmac.h | 1 + 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 6ee593a..da891ef 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -307,7 +307,13 @@ static int stmmac_init_phy(struct net_device *dev) priv->speed = 0; priv->oldduplex = -1; - snprintf(bus_id, MII_BUS_ID_SIZE, "stmmac-%x", priv->plat->bus_id); + if (priv->plat->phy_bus_name) + snprintf(bus_id, MII_BUS_ID_SIZE, "%s-%x", + priv->plat->phy_bus_name, priv->plat->bus_id); + else + snprintf(bus_id, MII_BUS_ID_SIZE, "stmmac-%x", + priv->plat->bus_id); + snprintf(phy_id, MII_BUS_ID_SIZE + 3, PHY_ID_FMT, bus_id, priv->plat->phy_addr); pr_debug("stmmac_init_phy: trying to attach to %s\n", phy_id); diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 0dddc9e..172b5e1 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -39,6 +39,7 @@ struct stmmac_mdio_bus_data { }; struct plat_stmmacenet_data { + char *phy_bus_name; int bus_id; int phy_addr; int interface; -- 1.6.3.3