From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Wed, 24 Jul 2013 06:02:47 +0200 Subject: [U-Boot] [PATCH] net, phy, cpsw: fix gigabit register access In-Reply-To: References: <1374586356-16412-1-git-send-email-hs@denx.de> Message-ID: <51EF51E7.4050307@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Joe, Am 24.07.2013 00:17, schrieb Joe Hershberger: > On Tue, Jul 23, 2013 at 8:32 AM, Heiko Schocher 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 >> Cc: Joe Hershberger >> --- >> 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