diff options
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmgenet.h | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/genet/bcmmii.c | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h index b773bc07edf7..14b49612aa86 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h | |||
@@ -186,6 +186,9 @@ struct bcmgenet_mib_counters { | |||
186 | #define UMAC_MAC1 0x010 | 186 | #define UMAC_MAC1 0x010 |
187 | #define UMAC_MAX_FRAME_LEN 0x014 | 187 | #define UMAC_MAX_FRAME_LEN 0x014 |
188 | 188 | ||
189 | #define UMAC_MODE 0x44 | ||
190 | #define MODE_LINK_STATUS (1 << 5) | ||
191 | |||
189 | #define UMAC_EEE_CTRL 0x064 | 192 | #define UMAC_EEE_CTRL 0x064 |
190 | #define EN_LPI_RX_PAUSE (1 << 0) | 193 | #define EN_LPI_RX_PAUSE (1 << 0) |
191 | #define EN_LPI_TX_PFC (1 << 1) | 194 | #define EN_LPI_TX_PFC (1 << 1) |
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c index 5333274a283c..4241ae928d4a 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c | |||
@@ -115,8 +115,14 @@ void bcmgenet_mii_setup(struct net_device *dev) | |||
115 | static int bcmgenet_fixed_phy_link_update(struct net_device *dev, | 115 | static int bcmgenet_fixed_phy_link_update(struct net_device *dev, |
116 | struct fixed_phy_status *status) | 116 | struct fixed_phy_status *status) |
117 | { | 117 | { |
118 | if (dev && dev->phydev && status) | 118 | struct bcmgenet_priv *priv; |
119 | status->link = dev->phydev->link; | 119 | u32 reg; |
120 | |||
121 | if (dev && dev->phydev && status) { | ||
122 | priv = netdev_priv(dev); | ||
123 | reg = bcmgenet_umac_readl(priv, UMAC_MODE); | ||
124 | status->link = !!(reg & MODE_LINK_STATUS); | ||
125 | } | ||
120 | 126 | ||
121 | return 0; | 127 | return 0; |
122 | } | 128 | } |