e1000: Fix mii-tool access to setting speed and duplex
Paul Rolland reported that e1000 was having a hard time using mii-tool to set speed and duplex. This patch fixes the issue on both newer hardware as well as fixing the code issue that originally caused the problem. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
74f5ec29ae
commit
cb764326df
1 changed files with 3 additions and 3 deletions
|
@ -4171,7 +4171,7 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
|
||||||
spin_unlock_irqrestore(&adapter->stats_lock, flags);
|
spin_unlock_irqrestore(&adapter->stats_lock, flags);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
if (adapter->hw.phy_type == e1000_phy_m88) {
|
if (adapter->hw.phy_type == e1000_media_type_copper) {
|
||||||
switch (data->reg_num) {
|
switch (data->reg_num) {
|
||||||
case PHY_CTRL:
|
case PHY_CTRL:
|
||||||
if (mii_reg & MII_CR_POWER_DOWN)
|
if (mii_reg & MII_CR_POWER_DOWN)
|
||||||
|
@ -4187,8 +4187,8 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
|
||||||
else
|
else
|
||||||
spddplx = SPEED_10;
|
spddplx = SPEED_10;
|
||||||
spddplx += (mii_reg & 0x100)
|
spddplx += (mii_reg & 0x100)
|
||||||
? FULL_DUPLEX :
|
? DUPLEX_FULL :
|
||||||
HALF_DUPLEX;
|
DUPLEX_HALF;
|
||||||
retval = e1000_set_spd_dplx(adapter,
|
retval = e1000_set_spd_dplx(adapter,
|
||||||
spddplx);
|
spddplx);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
|
|
Reference in a new issue