forked from mirrors/linux
		
	net: phy: remove state PHY_FORCING
In the early days of phylib we had a functionality that changed to the next lower speed in fixed mode if no link was established after a certain period of time. This functionality has been removed years ago, and state PHY_FORCING isn't needed any longer. Instead we can go from UP to RUNNING or NOLINK directly (same as in autoneg mode). Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									fe3475af3b
								
							
						
					
					
						commit
						2bd229df5e
					
				
					 2 changed files with 2 additions and 35 deletions
				
			
		|  | @ -43,7 +43,6 @@ static const char *phy_state_to_str(enum phy_state st) | |||
| 	PHY_STATE_STR(UP) | ||||
| 	PHY_STATE_STR(RUNNING) | ||||
| 	PHY_STATE_STR(NOLINK) | ||||
| 	PHY_STATE_STR(FORCING) | ||||
| 	PHY_STATE_STR(HALTED) | ||||
| 	} | ||||
| 
 | ||||
|  | @ -577,15 +576,8 @@ int phy_start_aneg(struct phy_device *phydev) | |||
| 	if (err < 0) | ||||
| 		goto out_unlock; | ||||
| 
 | ||||
| 	if (phy_is_started(phydev)) { | ||||
| 		if (phydev->autoneg == AUTONEG_ENABLE) { | ||||
| 			err = phy_check_link_status(phydev); | ||||
| 		} else { | ||||
| 			phydev->state = PHY_FORCING; | ||||
| 			phydev->link_timeout = PHY_FORCE_TIMEOUT; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if (phy_is_started(phydev)) | ||||
| 		err = phy_check_link_status(phydev); | ||||
| out_unlock: | ||||
| 	mutex_unlock(&phydev->lock); | ||||
| 
 | ||||
|  | @ -951,20 +943,6 @@ void phy_state_machine(struct work_struct *work) | |||
| 	case PHY_RUNNING: | ||||
| 		err = phy_check_link_status(phydev); | ||||
| 		break; | ||||
| 	case PHY_FORCING: | ||||
| 		err = genphy_update_link(phydev); | ||||
| 		if (err) | ||||
| 			break; | ||||
| 
 | ||||
| 		if (phydev->link) { | ||||
| 			phydev->state = PHY_RUNNING; | ||||
| 			phy_link_up(phydev); | ||||
| 		} else { | ||||
| 			if (0 == phydev->link_timeout--) | ||||
| 				needs_aneg = true; | ||||
| 			phy_link_down(phydev, false); | ||||
| 		} | ||||
| 		break; | ||||
| 	case PHY_HALTED: | ||||
| 		if (phydev->link) { | ||||
| 			phydev->link = 0; | ||||
|  |  | |||
|  | @ -297,12 +297,6 @@ struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr); | |||
|  * - irq or timer will set RUNNING if link comes back | ||||
|  * - phy_stop moves to HALTED | ||||
|  * | ||||
|  * FORCING: PHY is being configured with forced settings | ||||
|  * - if link is up, move to RUNNING | ||||
|  * - If link is down, we drop to the next highest setting, and | ||||
|  *   retry (FORCING) after a timeout | ||||
|  * - phy_stop moves to HALTED | ||||
|  * | ||||
|  * RUNNING: PHY is currently up, running, and possibly sending | ||||
|  * and/or receiving packets | ||||
|  * - irq or timer will set NOLINK if link goes down | ||||
|  | @ -319,7 +313,6 @@ enum phy_state { | |||
| 	PHY_UP, | ||||
| 	PHY_RUNNING, | ||||
| 	PHY_NOLINK, | ||||
| 	PHY_FORCING, | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  | @ -347,8 +340,6 @@ struct phy_c45_device_ids { | |||
|  * loopback_enabled: Set true if this phy has been loopbacked successfully. | ||||
|  * state: state of the PHY for management purposes | ||||
|  * dev_flags: Device-specific flags used by the PHY driver. | ||||
|  * link_timeout: The number of timer firings to wait before the | ||||
|  * giving up on the current attempt at acquiring a link | ||||
|  * irq: IRQ number of the PHY's interrupt (-1 if none) | ||||
|  * phy_timer: The timer for handling the state machine | ||||
|  * attached_dev: The attached enet driver's device instance ptr | ||||
|  | @ -416,8 +407,6 @@ struct phy_device { | |||
| 	/* Energy efficient ethernet modes which should be prohibited */ | ||||
| 	u32 eee_broken_modes; | ||||
| 
 | ||||
| 	int link_timeout; | ||||
| 
 | ||||
| #ifdef CONFIG_LED_TRIGGER_PHY | ||||
| 	struct phy_led_trigger *phy_led_triggers; | ||||
| 	unsigned int phy_num_led_triggers; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Heiner Kallweit
						Heiner Kallweit