From: karl beldan Date: Sat, 20 Aug 2016 08:56:53 +0000 (+0000) Subject: net: davinci_emac: Restore the internal MDIO accessors return values X-Git-Tag: v2016.09~76^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=05237f735e5f325e03db8ff153cb5266e337a2fe;p=u-boot net: davinci_emac: Restore the internal MDIO accessors return values The spatch series converting legacy drivers from miiphy_register to mdio_register changed the return convention of the davinci_emac internal MDIO accessors, making the internal code relying on it misbehaving: no mdiodev get registered and U-Boot crashes when using net cmds in the context of the old legacy net API. ATM davinci_emac_initialize and cpu_eth_init don't return a proper value in that case but fixing them would not avoid the crash. This change is just a follow-up to the spatch pass, the MDIO accessors of the mdiodev introduced by the spatch pass retain their proper values. Signed-off-by: Karl Beldan Acked-by: Joe Hershberger --- diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 6283487708..5e7ebc8a99 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c @@ -223,10 +223,10 @@ int davinci_eth_phy_read(u_int8_t phy_addr, u_int8_t reg_num, u_int16_t *data) if (tmp & MDIO_USERACCESS0_ACK) { *data = tmp & 0xffff; - return 0; + return 1; } - return -EIO; + return 0; } /* Write to a PHY register via MDIO inteface. Blocks until operation is complete. */ @@ -247,7 +247,7 @@ int davinci_eth_phy_write(u_int8_t phy_addr, u_int8_t reg_num, u_int16_t data) while (readl(&adap_mdio->USERACCESS0) & MDIO_USERACCESS0_GO) ; - return 0; + return 1; } /* PHY functions for a generic PHY */ @@ -374,15 +374,14 @@ static int davinci_mii_phy_read(struct mii_dev *bus, int addr, int devad, { unsigned short value = 0; int retval = davinci_eth_phy_read(addr, reg, &value); - if (retval < 0) - return retval; - return value; + + return retval ? value : -EIO; } static int davinci_mii_phy_write(struct mii_dev *bus, int addr, int devad, int reg, u16 value) { - return davinci_eth_phy_write(addr, reg, value); + return davinci_eth_phy_write(addr, reg, value) ? 0 : 1; } #endif