[U-Boot] [PATCH] phy/marvell: Rewrite the MV88E1111 phy config function based on kernel code
Wolfgang Denk
wd at denx.de
Sun Oct 23 21:41:36 CEST 2011
Dear Roy Zang,
In message <1319178713-12472-2-git-send-email-tie-fei.zang at freescale.com> you wrote:
> The original m88e1111s_config() does not do the SGMII mode
> initialization and is buggy. Rewrite the function according to
> 3.0.6 kernel function m88e1111_config_init() in drivers/net/phy/marvell.c
>
> Signed-off-by: Roy Zang <tie-fei.zang at freescale.com>
> Acked-by: Andy Fleming <afleming at freescale.com>
> Cc: Kumar Gala <galak at kernel.crashing.org>
...
> + /* soft reset */
> + phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, BMCR_RESET);
> + do
> + reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
> + while (reg & BMCR_RESET);
...
> + /* soft reset */
> + phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, BMCR_RESET);
> + do
> + reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);
> + while (reg & BMCR_RESET);
Do we really need this double reset?
Also, I dislike the potentially infinite loop here - please add a
timeout and an error exit.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
A supercomputer is a machine that runs an endless loop in 2 seconds.
More information about the U-Boot
mailing list