Commit 9e573cfc authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller
Browse files

net: phy: start interrupts in phy_start



Interrupts don't have to be enabled before calling phy_start().
Therefore let's enable them in phy_start(). In a subsequent step
we'll remove enabling interrupts from phy_connect_direct().

Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 21796261
Loading
Loading
Loading
Loading
+14 −20
Original line number Diff line number Diff line
@@ -852,7 +852,7 @@ EXPORT_SYMBOL(phy_stop);
 */
void phy_start(struct phy_device *phydev)
{
	int err = 0;
	int err;

	mutex_lock(&phydev->lock);

@@ -862,28 +862,22 @@ void phy_start(struct phy_device *phydev)
		goto out;
	}

	switch (phydev->state) {
	case PHY_READY:
		phydev->state = PHY_UP;
		phy_start_machine(phydev);
		break;
	case PHY_HALTED:
	/* if phy was suspended, bring the physical link up again */
	__phy_resume(phydev);

		/* make sure interrupts are re-enabled for the PHY */
	/* make sure interrupts are enabled for the PHY */
	if (phy_interrupt_is_valid(phydev)) {
		err = phy_enable_interrupts(phydev);
		if (err < 0)
				break;
			goto out;
	}

	if (phydev->state == PHY_READY)
		phydev->state = PHY_UP;
	else
		phydev->state = PHY_RESUMING;

	phy_start_machine(phydev);
		break;
	default:
		break;
	}
out:
	mutex_unlock(&phydev->lock);
}