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@nxp.com> Reviewed-by: Madalin Bucur <madalin.bucur@oss.nxp.com>
This commit is contained in:
parent
a7a435e7d4
commit
9c6de508a6
@ -786,17 +786,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)
|
||||
|
Loading…
Reference in New Issue
Block a user