> -----Original Message----- > From: U-Boot <u-boot-boun...@lists.denx.de> On Behalf Of Florin Chiculita > Sent: Wednesday, April 29, 2020 2:26 PM > To: u-boot@lists.denx.de > Cc: Florin Laurentiu Chiculita <florinlaurentiu.chicul...@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.chicul...@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.bu...@oss.nxp.com>