diff options
Diffstat (limited to 'drivers/net/mdio/mdio-i2c.c')
| -rw-r--r-- | drivers/net/mdio/mdio-i2c.c | 15 | 
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/net/mdio/mdio-i2c.c b/drivers/net/mdio/mdio-i2c.c index 1e0c206d0f2e..da2001ea1f99 100644 --- a/drivers/net/mdio/mdio-i2c.c +++ b/drivers/net/mdio/mdio-i2c.c @@ -291,7 +291,8 @@ static int i2c_rollball_mii_cmd(struct mii_bus *bus, int bus_addr, u8 cmd,  	return i2c_transfer_rollball(i2c, msgs, ARRAY_SIZE(msgs));  } -static int i2c_mii_read_rollball(struct mii_bus *bus, int phy_id, int reg) +static int i2c_mii_read_rollball(struct mii_bus *bus, int phy_id, int devad, +				 int reg)  {  	u8 buf[4], res[6];  	int bus_addr, ret; @@ -302,7 +303,7 @@ static int i2c_mii_read_rollball(struct mii_bus *bus, int phy_id, int reg)  		return 0xffff;  	buf[0] = ROLLBALL_DATA_ADDR; -	buf[1] = (reg >> 16) & 0x1f; +	buf[1] = devad;  	buf[2] = (reg >> 8) & 0xff;  	buf[3] = reg & 0xff; @@ -322,8 +323,8 @@ static int i2c_mii_read_rollball(struct mii_bus *bus, int phy_id, int reg)  	return val;  } -static int i2c_mii_write_rollball(struct mii_bus *bus, int phy_id, int reg, -				  u16 val) +static int i2c_mii_write_rollball(struct mii_bus *bus, int phy_id, int devad, +				  int reg, u16 val)  {  	int bus_addr, ret;  	u8 buf[6]; @@ -333,7 +334,7 @@ static int i2c_mii_write_rollball(struct mii_bus *bus, int phy_id, int reg,  		return 0;  	buf[0] = ROLLBALL_DATA_ADDR; -	buf[1] = (reg >> 16) & 0x1f; +	buf[1] = devad;  	buf[2] = (reg >> 8) & 0xff;  	buf[3] = reg & 0xff;  	buf[4] = val >> 8; @@ -405,8 +406,8 @@ struct mii_bus *mdio_i2c_alloc(struct device *parent, struct i2c_adapter *i2c,  			return ERR_PTR(ret);  		} -		mii->read = i2c_mii_read_rollball; -		mii->write = i2c_mii_write_rollball; +		mii->read_c45 = i2c_mii_read_rollball; +		mii->write_c45 = i2c_mii_write_rollball;  		break;  	default:  		mii->read = i2c_mii_read_default_c22;  | 
