Skip to content

Commit 163d744

Browse files
Gerhard EnglederPaolo Abeni
authored andcommitted
tsnep: Select speed for loopback
Use 100 Mbps only if the PHY is configured to this speed. Otherwise use always the maximum speed of 1000 Mbps. Also remove explicit setting of carrier on and link mode after loopback. This is not needed anymore, because phy_loopback() with selected speed signals the link and the speed to the MAC. Signed-off-by: Gerhard Engleder <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
1 parent 1a0df6c commit 163d744

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

drivers/net/ethernet/engleder/tsnep_main.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -221,20 +221,19 @@ static void tsnep_phy_link_status_change(struct net_device *netdev)
221221

222222
static int tsnep_phy_loopback(struct tsnep_adapter *adapter, bool enable)
223223
{
224-
int retval;
225-
226-
retval = phy_loopback(adapter->phydev, enable, 0);
224+
int speed;
227225

228-
/* PHY link state change is not signaled if loopback is enabled, it
229-
* would delay a working loopback anyway, let's ensure that loopback
230-
* is working immediately by setting link mode directly
231-
*/
232-
if (!retval && enable) {
233-
netif_carrier_on(adapter->netdev);
234-
tsnep_set_link_mode(adapter);
226+
if (enable) {
227+
if (adapter->phydev->autoneg == AUTONEG_DISABLE &&
228+
adapter->phydev->speed == SPEED_100)
229+
speed = SPEED_100;
230+
else
231+
speed = SPEED_1000;
232+
} else {
233+
speed = 0;
235234
}
236235

237-
return retval;
236+
return phy_loopback(adapter->phydev, enable, speed);
238237
}
239238

240239
static int tsnep_phy_open(struct tsnep_adapter *adapter)

0 commit comments

Comments
 (0)