Message ID | 1588159548-5297-1-git-send-email-florinlaurentiu.chiculita@nxp.com |
---|---|
State | Accepted |
Commit | 9c6de508a6362a3ddd4067e90f07ae613f312aa4 |
Headers | show |
Series | net: phy: add phyid search in vendor specific space | expand |
> -----Original Message----- > From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Florin Chiculita > Sent: Wednesday, April 29, 2020 2:26 PM > To: u-boot at lists.denx.de > Cc: Florin Laurentiu Chiculita <florinlaurentiu.chiculita at nxp.com> > Subject: [PATCH] net: phy: add phyid search in vendor specific space > > There are devices accesible through mdio clause-45, such as > retimers, that do not have PMA or PCS blocks. > This patch adds MDIO_MMD_VEND1 on the list of device addresses > where phyid is searched. Previous order of devices was kept. > > Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita at nxp.com> > --- > drivers/net/phy/phy.c | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c > index 505d3ab..d2edf9e 100644 > --- a/drivers/net/phy/phy.c > +++ b/drivers/net/phy/phy.c > @@ -783,17 +783,27 @@ static struct phy_device > *get_phy_device_by_mask(struct mii_dev *bus, > uint phy_mask, > phy_interface_t interface) > { > - int i; > struct phy_device *phydev; > - > + int devad[] = { > + /* Clause-22 */ > + MDIO_DEVAD_NONE, > + /* Clause-45 */ > + MDIO_MMD_PMAPMD, > + MDIO_MMD_WIS, > + MDIO_MMD_PCS, > + MDIO_MMD_PHYXS, > + MDIO_MMD_VEND1, > + }; > + int i, devad_cnt; > + > + devad_cnt = sizeof(devad)/sizeof(int); > phydev = search_for_existing_phy(bus, phy_mask, interface); > if (phydev) > return phydev; > - /* Try Standard (ie Clause 22) access */ > - /* Otherwise we have to try Clause 45 */ > - for (i = 0; i < 5; i++) { > + /* try different access clauses */ > + for (i = 0; i < devad_cnt; i++) { > phydev = create_phy_by_mask(bus, phy_mask, > - i ? i : MDIO_DEVAD_NONE, interface); > + devad[i], interface); > if (IS_ERR(phydev)) > return NULL; > if (phydev) > -- > 1.9.3 Nice cleanup too! Reviewed-by: Madalin Bucur <madalin.bucur at oss.nxp.com>
On Wed, Apr 29, 2020 at 02:25:48PM +0300, Florin Chiculita wrote: > There are devices accesible through mdio clause-45, such as > retimers, that do not have PMA or PCS blocks. > This patch adds MDIO_MMD_VEND1 on the list of device addresses > where phyid is searched. Previous order of devices was kept. > > Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita at nxp.com> > Reviewed-by: Madalin Bucur <madalin.bucur at oss.nxp.com> Applied to u-boot/next, thanks!
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 505d3ab..d2edf9e 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -783,17 +783,27 @@ static struct phy_device *get_phy_device_by_mask(struct mii_dev *bus, uint phy_mask, phy_interface_t interface) { - int i; struct phy_device *phydev; - + int devad[] = { + /* Clause-22 */ + MDIO_DEVAD_NONE, + /* Clause-45 */ + MDIO_MMD_PMAPMD, + MDIO_MMD_WIS, + MDIO_MMD_PCS, + MDIO_MMD_PHYXS, + MDIO_MMD_VEND1, + }; + int i, devad_cnt; + + devad_cnt = sizeof(devad)/sizeof(int); phydev = search_for_existing_phy(bus, phy_mask, interface); if (phydev) return phydev; - /* Try Standard (ie Clause 22) access */ - /* Otherwise we have to try Clause 45 */ - for (i = 0; i < 5; i++) { + /* try different access clauses */ + for (i = 0; i < devad_cnt; i++) { phydev = create_phy_by_mask(bus, phy_mask, - i ? i : MDIO_DEVAD_NONE, interface); + devad[i], interface); if (IS_ERR(phydev)) return NULL; if (phydev)
There are devices accesible through mdio clause-45, such as retimers, that do not have PMA or PCS blocks. This patch adds MDIO_MMD_VEND1 on the list of device addresses where phyid is searched. Previous order of devices was kept. Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita at nxp.com> --- drivers/net/phy/phy.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-)