aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2007-06-28 14:26:06 -0400
committerKumar Gala <galak@kernel.crashing.org>2007-06-28 14:26:06 -0400
commit5f708dd91d15876e26d7a57f97a255cedffca463 (patch)
tree5492646ee87a183a3c96446738bbe70cdb19b613 /drivers
parentb75ae8603568ae18f270213693758c78fb8a29ff (diff)
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: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/phy/mdio_bus.c3
-rw-r--r--drivers/net/phy/vitesse.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index fc4aee96cdfd..fc2f0e695a13 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -131,7 +131,8 @@ static int mdio_bus_match(struct device *dev, struct device_driver *drv)
131 struct phy_device *phydev = to_phy_device(dev); 131 struct phy_device *phydev = to_phy_device(dev);
132 struct phy_driver *phydrv = to_phy_driver(drv); 132 struct phy_driver *phydrv = to_phy_driver(drv);
133 133
134 return (phydrv->phy_id == (phydev->phy_id & phydrv->phy_id_mask)); 134 return ((phydrv->phy_id & phydrv->phy_id_mask) ==
135 (phydev->phy_id & phydrv->phy_id_mask));
135} 136}
136 137
137/* Suspend and resume. Copied from platform_suspend and 138/* Suspend and resume. Copied from platform_suspend and
diff --git a/drivers/net/phy/vitesse.c b/drivers/net/phy/vitesse.c
index 792716beb052..596222b260d6 100644
--- a/drivers/net/phy/vitesse.c
+++ b/drivers/net/phy/vitesse.c
@@ -84,7 +84,7 @@ static int vsc824x_config_intr(struct phy_device *phydev)
84 84
85/* Vitesse 824x */ 85/* Vitesse 824x */
86static struct phy_driver vsc8244_driver = { 86static struct phy_driver vsc8244_driver = {
87 .phy_id = 0x000fc6c2, 87 .phy_id = 0x000fc6c0,
88 .name = "Vitesse VSC8244", 88 .name = "Vitesse VSC8244",
89 .phy_id_mask = 0x000fffc0, 89 .phy_id_mask = 0x000fffc0,
90 .features = PHY_GBIT_FEATURES, 90 .features = PHY_GBIT_FEATURES,