|
@@ -890,15 +890,11 @@ static void bcm_sf2_sw_fixed_link_update(struct dsa_switch *ds, int port,
|
|
|
struct fixed_phy_status *status)
|
|
struct fixed_phy_status *status)
|
|
|
{
|
|
{
|
|
|
struct bcm_sf2_priv *priv = ds_to_priv(ds);
|
|
struct bcm_sf2_priv *priv = ds_to_priv(ds);
|
|
|
- u32 duplex, pause, speed;
|
|
|
|
|
|
|
+ u32 duplex, pause;
|
|
|
u32 reg;
|
|
u32 reg;
|
|
|
|
|
|
|
|
duplex = core_readl(priv, CORE_DUPSTS);
|
|
duplex = core_readl(priv, CORE_DUPSTS);
|
|
|
pause = core_readl(priv, CORE_PAUSESTS);
|
|
pause = core_readl(priv, CORE_PAUSESTS);
|
|
|
- speed = core_readl(priv, CORE_SPDSTS);
|
|
|
|
|
-
|
|
|
|
|
- speed >>= (port * SPDSTS_SHIFT);
|
|
|
|
|
- speed &= SPDSTS_MASK;
|
|
|
|
|
|
|
|
|
|
status->link = 0;
|
|
status->link = 0;
|
|
|
|
|
|
|
@@ -933,18 +929,6 @@ static void bcm_sf2_sw_fixed_link_update(struct dsa_switch *ds, int port,
|
|
|
reg &= ~LINK_STS;
|
|
reg &= ~LINK_STS;
|
|
|
core_writel(priv, reg, CORE_STS_OVERRIDE_GMIIP_PORT(port));
|
|
core_writel(priv, reg, CORE_STS_OVERRIDE_GMIIP_PORT(port));
|
|
|
|
|
|
|
|
- switch (speed) {
|
|
|
|
|
- case SPDSTS_10:
|
|
|
|
|
- status->speed = SPEED_10;
|
|
|
|
|
- break;
|
|
|
|
|
- case SPDSTS_100:
|
|
|
|
|
- status->speed = SPEED_100;
|
|
|
|
|
- break;
|
|
|
|
|
- case SPDSTS_1000:
|
|
|
|
|
- status->speed = SPEED_1000;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
if ((pause & (1 << port)) &&
|
|
if ((pause & (1 << port)) &&
|
|
|
(pause & (1 << (port + PAUSESTS_TX_PAUSE_SHIFT)))) {
|
|
(pause & (1 << (port + PAUSESTS_TX_PAUSE_SHIFT)))) {
|
|
|
status->asym_pause = 1;
|
|
status->asym_pause = 1;
|