phy: make phy_connect_fixed work with a null mdio bus

It is utterly pointless to require an MDIO bus pointer for a fixed PHY
device. The fixed.c implementation does not require it, only
phy_device_create. Fix that.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
Vladimir Oltean 2020-07-16 18:09:08 +08:00 committed by Tom Rini
parent f51ce945d0
commit 15c49df8d4

View file

@ -664,7 +664,7 @@ static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
dev = malloc(sizeof(*dev)); dev = malloc(sizeof(*dev));
if (!dev) { if (!dev) {
printf("Failed to allocate PHY device for %s:%d\n", printf("Failed to allocate PHY device for %s:%d\n",
bus->name, addr); bus ? bus->name : "(null bus)", addr);
return NULL; return NULL;
} }
@ -692,7 +692,7 @@ static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
return NULL; return NULL;
} }
if (addr >= 0 && addr < PHY_MAX_ADDR) if (addr >= 0 && addr < PHY_MAX_ADDR && phy_id != PHY_FIXED_ID)
bus->phymap[addr] = dev; bus->phymap[addr] = dev;
return dev; return dev;