diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2007-06-28 14:26:06 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2007-06-28 14:26:06 -0400 |
commit | 5f708dd91d15876e26d7a57f97a255cedffca463 (patch) | |
tree | 5492646ee87a183a3c96446738bbe70cdb19b613 /drivers | |
parent | b75ae8603568ae18f270213693758c78fb8a29ff (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.c | 3 | ||||
-rw-r--r-- | drivers/net/phy/vitesse.c | 2 |
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 */ |
86 | static struct phy_driver vsc8244_driver = { | 86 | static 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, |