Commit 5f708dd9 authored by Kumar Gala's avatar Kumar Gala

phy: Fix phy_id for Vitesse 824x PHY

The phy_id specified for the Vitesse 824x PHY would never match because
it was expecting bits to be set that would be masked by the phy_id_mask.
Fix the phy_id so it will match properly, and changed the mdio_bus_match
to mask both the driver and devices phy_id with the mask so we dont have
this issue in the future.
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent b75ae860
...@@ -131,7 +131,8 @@ static int mdio_bus_match(struct device *dev, struct device_driver *drv) ...@@ -131,7 +131,8 @@ static int mdio_bus_match(struct device *dev, struct device_driver *drv)
struct phy_device *phydev = to_phy_device(dev); struct phy_device *phydev = to_phy_device(dev);
struct phy_driver *phydrv = to_phy_driver(drv); struct phy_driver *phydrv = to_phy_driver(drv);
return (phydrv->phy_id == (phydev->phy_id & phydrv->phy_id_mask)); return ((phydrv->phy_id & phydrv->phy_id_mask) ==
(phydev->phy_id & phydrv->phy_id_mask));
} }
/* Suspend and resume. Copied from platform_suspend and /* Suspend and resume. Copied from platform_suspend and
......
...@@ -84,7 +84,7 @@ static int vsc824x_config_intr(struct phy_device *phydev) ...@@ -84,7 +84,7 @@ static int vsc824x_config_intr(struct phy_device *phydev)
/* Vitesse 824x */ /* Vitesse 824x */
static struct phy_driver vsc8244_driver = { static struct phy_driver vsc8244_driver = {
.phy_id = 0x000fc6c2, .phy_id = 0x000fc6c0,
.name = "Vitesse VSC8244", .name = "Vitesse VSC8244",
.phy_id_mask = 0x000fffc0, .phy_id_mask = 0x000fffc0,
.features = PHY_GBIT_FEATURES, .features = PHY_GBIT_FEATURES,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment