summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Retanubun <RichardRetanubun@RuggedCom.com>2009-07-02 13:21:22 -0400
committerBen Warren <biggerbadderben@gmail.com>2009-07-22 22:53:44 -0700
commit3f6b18ffd94621625de961bc566022b0266790f5 (patch)
tree94ae090c1353ce752edc731c1a7e9d4d08c35e4f
parent736fead8fdbf8a8407048bebc373cd551d01ec98 (diff)
downloadu-boot-imx-3f6b18ffd94621625de961bc566022b0266790f5.zip
u-boot-imx-3f6b18ffd94621625de961bc566022b0266790f5.tar.gz
u-boot-imx-3f6b18ffd94621625de961bc566022b0266790f5.tar.bz2
MIIPHYBB: Return 0xFFFF if the PHY is not asserting TA.
This patch sets the returned value to 0xFFFF if the PHY does not exist and does not assert Transfer Acknowledge. A NULL check for the value pointer is also added for buffer overflow protection. Without this patch 'mii info' will show 'phantom' devices because the value will be not be initialized and return with some random value. Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
-rw-r--r--drivers/net/phy/miiphybb.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/phy/miiphybb.c b/drivers/net/phy/miiphybb.c
index e3c163a..b77c917 100644
--- a/drivers/net/phy/miiphybb.c
+++ b/drivers/net/phy/miiphybb.c
@@ -127,6 +127,11 @@ int bb_miiphy_read (char *devname, unsigned char addr,
volatile ioport_t *iop = ioport_addr ((immap_t *) CONFIG_SYS_IMMR, MDIO_PORT);
#endif
+ if (value == NULL) {
+ puts("NULL value pointer\n");
+ return (-1);
+ }
+
miiphy_pre (1, addr, reg);
/* tri-state our MDIO I/O pin so we can read */
@@ -145,6 +150,8 @@ int bb_miiphy_read (char *devname, unsigned char addr,
MDC (1);
MIIDELAY;
}
+ /* There is no PHY, set value to 0xFFFF and return */
+ *value = 0xFFFF;
return (-1);
}