diff options
Diffstat (limited to 'drivers/net/phy/phy.c')
| -rw-r--r-- | drivers/net/phy/phy.c | 50 | 
1 files changed, 1 insertions, 49 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 298b4c20173..c14f14741b3 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -463,33 +463,6 @@ void phy_stop_machine(struct phy_device *phydev)  }  /** - * phy_force_reduction - reduce PHY speed/duplex settings by one step - * @phydev: target phy_device struct - * - * Description: Reduces the speed/duplex settings by one notch, - *   in this order-- - *   1000/FULL, 1000/HALF, 100/FULL, 100/HALF, 10/FULL, 10/HALF. - *   The function bottoms out at 10/HALF. - */ -static void phy_force_reduction(struct phy_device *phydev) -{ -	int idx; - -	idx = phy_find_setting(phydev->speed, phydev->duplex); -	 -	idx++; - -	idx = phy_find_valid(idx, phydev->supported); - -	phydev->speed = settings[idx].speed; -	phydev->duplex = settings[idx].duplex; - -	pr_info("Trying %d/%s\n", -		phydev->speed, DUPLEX_FULL == phydev->duplex ? "FULL" : "HALF"); -} - - -/**   * phy_error - enter HALTED state for this PHY device   * @phydev: target phy_device struct   * @@ -818,30 +791,11 @@ void phy_state_machine(struct work_struct *work)  				phydev->adjust_link(phydev->attached_dev);  			} else if (0 == phydev->link_timeout--) { -				int idx; -  				needs_aneg = 1;  				/* If we have the magic_aneg bit,  				 * we try again */  				if (phydev->drv->flags & PHY_HAS_MAGICANEG)  					break; - -				/* The timer expired, and we still -				 * don't have a setting, so we try -				 * forcing it until we find one that -				 * works, starting from the fastest speed, -				 * and working our way down */ -				idx = phy_find_valid(0, phydev->supported); - -				phydev->speed = settings[idx].speed; -				phydev->duplex = settings[idx].duplex; - -				phydev->autoneg = AUTONEG_DISABLE; - -				pr_info("Trying %d/%s\n", -					phydev->speed, -					DUPLEX_FULL == phydev->duplex ? -					"FULL" : "HALF");  			}  			break;  		case PHY_NOLINK: @@ -866,10 +820,8 @@ void phy_state_machine(struct work_struct *work)  				phydev->state = PHY_RUNNING;  				netif_carrier_on(phydev->attached_dev);  			} else { -				if (0 == phydev->link_timeout--) { -					phy_force_reduction(phydev); +				if (0 == phydev->link_timeout--)  					needs_aneg = 1; -				}  			}  			phydev->adjust_link(phydev->attached_dev);  |