History

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).

Heiner Kallweit committed 7 years ago

Commit 2bd229d1 parent fe3475a2 files · +2 −35Browse files

Unified · Split

2 files
  1. drivers/net/phy/phy.c +2 −24
  2. include/linux/phy.h +0 −11
drivers/net/phy/phy.c+2−24
@@ -43,7 +43,6 @@ static const char *phy_state_to_str(enum phy_state st) · 42 unmodified lines
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) · 527 unmodified lines
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) · 359 unmodified lines
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+0−11
@@ -297,12 +297,6 @@ struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr); · 296 unmodified lines
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 { · 10 unmodified lines
319313 PHY_UP,
320314 PHY_RUNNING,
321315 PHY_NOLINK,
322− PHY_FORCING,
323316 };
324317
325318 /**
@@ -347,8 +340,6 @@ struct phy_c45_device_ids { · 21 unmodified lines
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 { · 61 unmodified lines
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;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t