diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 679c291107f563d88ddd2a8ca30258807e4f8078..7c38f6129b55a343b3a50c94a171177dede2bf07 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -473,7 +473,14 @@ static int dm9000_nway_reset(struct net_device *dev)
 static u32 dm9000_get_link(struct net_device *dev)
 {
 	board_info_t *dm = to_dm9000_board(dev);
-	return mii_link_ok(&dm->mii);
+	u32 ret;
+
+	if (dm->flags & DM9000_PLATF_EXT_PHY)
+		ret = mii_link_ok(&dm->mii);
+	else
+		ret = dm9000_read_locked(dm, DM9000_NSR) & NSR_LINKST ? 1 : 0;
+
+	return ret;
 }
 
 #define DM_EEPROM_MAGIC		(0x444D394B)