Re: [PATCH net-next v2 4/4] net: mvpp2: 2500baseX support
From: Andrew Lunn <andrew@lunn.ch>
Date: 2018-01-03 15:53:22
Also in:
lkml
On Wed, Jan 03, 2018 at 04:32:27PM +0100, Antoine Tenart wrote:
Hi Andrew, On Wed, Jan 03, 2018 at 04:20:36PM +0100, Andrew Lunn wrote:quoted
quoted
@@ -4612,6 +4616,9 @@ static int mvpp22_comphy_init(struct mvpp2_port *port) case PHY_INTERFACE_MODE_1000BASEX: mode = PHY_MODE_SGMII; break; + case PHY_INTERFACE_MODE_2500BASEX: + mode = PHY_MODE_2500SGMII; + break;I think this is the source of confusion with linux/phy.h and linux/phy/phy.h. What would PHY_INTERFACE_MODE_2500SGMII use? Where is this all getting confused? Should the caller to mvpp22_comphy_init() actually be passing PHY_INTERFACE_MODE_2500SGMII? What is the MAC actually doing at this point? 2500BASEX or 2500SGMII?PHY_INTERFACE_MODE_2500BASEX is the PHY mode whereas PHY_MODE_2500SGMII is the mode used by the common PHY driver (i.e. the one configuring the serdes lanes).
There's no PHY_INTERFACE_MODE_2500SGMII mode.
Hi Antoine At the moment there is no PHY_INTERFACE_MODE_2500SGMII. However, there are some devices which can do 2.5G SGMII. So it will appear sometime. This piece of code then looks even stranger.
Sure, I can add a comment to state this function is a translation between the net PHY mode and the generic PHY mode (it's a n-to-1 translation).
I think from an API design point of view, passing PHY_MODE_2500BASEX
to comphy makes more sense. That is what the MAC wants to do. How the
comphy achieves that should be internal to the comphy.
Andrew