[U-Boot] [PATCH] arm:kirkwood Wait for the link to come up on kirkwood network init
Ben Warren
biggerbadderben at gmail.com
Wed Aug 19 19:08:02 CEST 2009
Simon,
Simon Kagstrom wrote:
> Wait for the link to come up on kirkwood network init
>
> This patch makes the device wait for up to 5 seconds for the link to
> come up, similar to what many of the other network drivers do. This
> avoids confusing situations where, e.g., a tftp fails when initiated
> early after U-boot has started (before the link has come up).
>
> Signed-off-by: Simon Kagstrom <simon.kagstrom at netinsight.net>
> ---
> drivers/net/kirkwood_egiga.c | 17 ++++++++++++-----
> 1 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c
> index f31fefc..9ac9c1f 100644
> --- a/drivers/net/kirkwood_egiga.c
> +++ b/drivers/net/kirkwood_egiga.c
> @@ -396,6 +396,7 @@ static int kwgbe_init(struct eth_device *dev)
> {
> struct kwgbe_device *dkwgbe = to_dkwgbe(dev);
> struct kwgbe_registers *regs = dkwgbe->regs;
> + int i;
>
> /* setup RX rings */
> kwgbe_init_rx_desc_ring(dkwgbe);
> @@ -443,12 +444,18 @@ static int kwgbe_init(struct eth_device *dev)
>
> #if (defined (CONFIG_MII) || defined (CONFIG_CMD_MII)) \
> && defined (CONFIG_SYS_FAULT_ECHO_LINK_DOWN)
> - u16 phyadr;
> - miiphy_read(dev->name, 0xEE, 0xEE, &phyadr);
> - if (!miiphy_link(dev->name, phyadr)) {
> - printf("%s: No link on %s\n", __FUNCTION__, dev->name);
>
Please use __func__ instead. It's defined in C99, while __FUNCTION__
isn't (or so I've read)
> - return -1;
> + /* Wait up to 5s for the link status */
> + for (i = 0; i < 5; i++) {
> + u16 phyadr;
>
Please put this variable declaration outside of the 'for' loop
> + miiphy_read(dev->name, 0xEE, 0xEE, &phyadr);
>
What does '0xEE' mean? I know you didn't write it, but magic numbers
are bad.
> + /* Return if we get link up */
> + if (miiphy_link(dev->name, phyadr))
>
> + return 0;
> + udelay(1000000);
> }
> +
> + printf("%s: No link on %s\n", __FUNCTION__, dev->name);
> + return -1;
> #endif
> return 0;
> }
>
regards,
Ben
More information about the U-Boot
mailing list