diff mbox

phylib: SIOCGMIIREG/SIOCSMIIREG: allow access to all mdio addresses

Message ID 1299775933-26981-1-git-send-email-jacmet@sunsite.dk
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Peter Korsgaard March 10, 2011, 4:52 p.m. UTC
phylib would silently ignore the phy_id argument to these ioctls and
perform the read/write with the active phydev address, whereas most
non-phylib drivers seem to allow access to all mdio addresses
(E.G. pcnet_cs).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 drivers/net/phy/phy.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

Comments

David Miller March 14, 2011, 10:02 p.m. UTC | #1
From: Peter Korsgaard <jacmet@sunsite.dk>
Date: Thu, 10 Mar 2011 17:52:13 +0100

> phylib would silently ignore the phy_id argument to these ioctls and
> perform the read/write with the active phydev address, whereas most
> non-phylib drivers seem to allow access to all mdio addresses
> (E.G. pcnet_cs).
> 
> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index a8445c7..f767033 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -319,7 +319,8 @@  int phy_mii_ioctl(struct phy_device *phydev,
 		/* fall through */
 
 	case SIOCGMIIREG:
-		mii_data->val_out = phy_read(phydev, mii_data->reg_num);
+		mii_data->val_out = mdiobus_read(phydev->bus, mii_data->phy_id,
+						 mii_data->reg_num);
 		break;
 
 	case SIOCSMIIREG:
@@ -350,8 +351,9 @@  int phy_mii_ioctl(struct phy_device *phydev,
 			}
 		}
 
-		phy_write(phydev, mii_data->reg_num, val);
-		
+		mdiobus_write(phydev->bus, mii_data->phy_id,
+			      mii_data->reg_num, val);
+
 		if (mii_data->reg_num == MII_BMCR &&
 		    val & BMCR_RESET &&
 		    phydev->drv->config_init) {