summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-03-27 22:33:13 +0000
committerDavid S. Miller <davem@davemloft.net>2011-03-28 22:26:34 -0700
commit72f49050ba18959472aac723cd9d094bc3547e89 (patch)
tree8f11b32ae0e306668bc0663b765477fb63f698f5 /drivers/net
parentbc8d7da3f19191f86dcc8274cf1a3f2d6aeb0aaa (diff)
netdev: bfin_mac: document TE setting in RMII modes
The current code sometimes generates build warnings due to how it checks the silicon revision, so clean it up and properly document things. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/bfin_mac.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 22abfb39d81..68d45ba2d9b 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -1237,8 +1237,17 @@ static int bfin_mac_enable(struct phy_device *phydev)
if (phydev->interface == PHY_INTERFACE_MODE_RMII) {
opmode |= RMII; /* For Now only 100MBit are supported */
-#if (defined(CONFIG_BF537) || defined(CONFIG_BF536)) && CONFIG_BF_REV_0_2
- opmode |= TE;
+#if defined(CONFIG_BF537) || defined(CONFIG_BF536)
+ if (__SILICON_REVISION__ < 3) {
+ /*
+ * This isn't publicly documented (fun times!), but in
+ * silicon <=0.2, the RX and TX pins are clocked together.
+ * So in order to recv, we must enable the transmit side
+ * as well. This will cause a spurious TX interrupt too,
+ * but we can easily consume that.
+ */
+ opmode |= TE;
+ }
#endif
}