@@ -99,8 +99,9 @@ static int sr_share_read_word(struct usbnet *dev, int phy, u8 reg,
mutex_lock(&dev->phy_mutex);
+ // FIXME: the mistery 0x40 appears in sr_share_write_word as well.
sr_write_reg(dev, EPAR, phy ? (reg | 0x40) : reg);
- sr_write_reg(dev, EPCR, phy ? 0xc : 0x4);
+ sr_write_reg(dev, EPCR, phy ? (EPCR_EPOS | EPCR_ERPRR) : EPCR_ERPRR);
ret = wait_phy_eeprom_ready(dev, phy);
if (ret < 0)
@@ -128,7 +129,10 @@ static int sr_share_write_word(struct usbnet *dev, int phy, u8 reg,
if (ret < 0)
goto out_unlock;
+ // FIXME: see sr_share_read_word above.
sr_write_reg(dev, EPAR, phy ? (reg | 0x40) : reg);
+ // 0x1a -> EPCR_WEP | EPCR_EPOS | EPCR_ERPRW ?
+ // 0x12 -> EPCR_WEP | EPCR_ERPRW ?
sr_write_reg(dev, EPCR, phy ? 0x1a : 0x12);
ret = wait_phy_eeprom_ready(dev, phy);