
23 Oct
2011
23 Oct
'11
9:41 p.m.
Dear Roy Zang,
In message 1319178713-12472-2-git-send-email-tie-fei.zang@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@freescale.com Acked-by: Andy Fleming afleming@freescale.com Cc: Kumar Gala galak@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@denx.de
A supercomputer is a machine that runs an endless loop in 2 seconds.