Hello Joe,
Am 24.07.2013 00:17, schrieb Joe Hershberger:
On Tue, Jul 23, 2013 at 8:32 AM, Heiko Schocher<[email protected]> wrote:
accessing a lan9303 switch with the cpsw driver results in wrong
speed detection, as the switch sets the BMSR_ERCAP in BMSR
register, and follow read of the MII_STAT1000 register fails, as
the switch does not support it. Current code did not check,
if a phy_read() fails ... fix this.
Signed-off-by: Heiko Schocher<[email protected]>
Cc: Joe Hershberger<[email protected]>
---
drivers/net/cpsw.c | 2 +-
drivers/net/phy/phy.c | 6 +++++-
2 Dateien geändert, 6 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-)
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 379b679..52c08ed 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -489,7 +489,7 @@ static inline void wait_for_idle(void)
static int cpsw_mdio_read(struct mii_dev *bus, int phy_id,
int dev_addr, int phy_reg)
{
- unsigned short data;
+ int data;
How is this change related to the substance of the patch?
data is returned, and the code do:
data = (reg & USERACCESS_ACK) ? (reg & USERACCESS_DATA) : -1;
return data;
So if data is short only, the return value is in case, the phy
read fails, 0xffff instead 0xffffffff ...
u32 reg;
if (phy_reg& ~PHY_REG_MASK || phy_id& ~PHY_ID_MASK)
Seems OK otherwise.
Thanks!
bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot