Skip to content

Commit 2bd229d

Browse files
hkallweitdavem330
authored andcommitted
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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent fe3475a commit 2bd229d

File tree

2 files changed

+2
-35
lines changed

2 files changed

+2
-35
lines changed

drivers/net/phy/phy.c

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ static const char *phy_state_to_str(enum phy_state st)
4343
PHY_STATE_STR(UP)
4444
PHY_STATE_STR(RUNNING)
4545
PHY_STATE_STR(NOLINK)
46-
PHY_STATE_STR(FORCING)
4746
PHY_STATE_STR(HALTED)
4847
}
4948

@@ -577,15 +576,8 @@ int phy_start_aneg(struct phy_device *phydev)
577576
if (err < 0)
578577
goto out_unlock;
579578

580-
if (phy_is_started(phydev)) {
581-
if (phydev->autoneg == AUTONEG_ENABLE) {
582-
err = phy_check_link_status(phydev);
583-
} else {
584-
phydev->state = PHY_FORCING;
585-
phydev->link_timeout = PHY_FORCE_TIMEOUT;
586-
}
587-
}
588-
579+
if (phy_is_started(phydev))
580+
err = phy_check_link_status(phydev);
589581
out_unlock:
590582
mutex_unlock(&phydev->lock);
591583

@@ -951,20 +943,6 @@ void phy_state_machine(struct work_struct *work)
951943
case PHY_RUNNING:
952944
err = phy_check_link_status(phydev);
953945
break;
954-
case PHY_FORCING:
955-
err = genphy_update_link(phydev);
956-
if (err)
957-
break;
958-
959-
if (phydev->link) {
960-
phydev->state = PHY_RUNNING;
961-
phy_link_up(phydev);
962-
} else {
963-
if (0 == phydev->link_timeout--)
964-
needs_aneg = true;
965-
phy_link_down(phydev, false);
966-
}
967-
break;
968946
case PHY_HALTED:
969947
if (phydev->link) {
970948
phydev->link = 0;

include/linux/phy.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -297,12 +297,6 @@ struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr);
297297
* - irq or timer will set RUNNING if link comes back
298298
* - phy_stop moves to HALTED
299299
*
300-
* FORCING: PHY is being configured with forced settings
301-
* - if link is up, move to RUNNING
302-
* - If link is down, we drop to the next highest setting, and
303-
* retry (FORCING) after a timeout
304-
* - phy_stop moves to HALTED
305-
*
306300
* RUNNING: PHY is currently up, running, and possibly sending
307301
* and/or receiving packets
308302
* - irq or timer will set NOLINK if link goes down
@@ -319,7 +313,6 @@ enum phy_state {
319313
PHY_UP,
320314
PHY_RUNNING,
321315
PHY_NOLINK,
322-
PHY_FORCING,
323316
};
324317

325318
/**
@@ -347,8 +340,6 @@ struct phy_c45_device_ids {
347340
* loopback_enabled: Set true if this phy has been loopbacked successfully.
348341
* state: state of the PHY for management purposes
349342
* dev_flags: Device-specific flags used by the PHY driver.
350-
* link_timeout: The number of timer firings to wait before the
351-
* giving up on the current attempt at acquiring a link
352343
* irq: IRQ number of the PHY's interrupt (-1 if none)
353344
* phy_timer: The timer for handling the state machine
354345
* attached_dev: The attached enet driver's device instance ptr
@@ -416,8 +407,6 @@ struct phy_device {
416407
/* Energy efficient ethernet modes which should be prohibited */
417408
u32 eee_broken_modes;
418409

419-
int link_timeout;
420-
421410
#ifdef CONFIG_LED_TRIGGER_PHY
422411
struct phy_led_trigger *phy_led_triggers;
423412
unsigned int phy_num_led_triggers;

0 commit comments

Comments
 (0)