Wolfgang Denk wrote: > Dear Ben Warren, > > In message <4a6565d4.7050...@gmail.com> you wrote: > >> Thomas Dörfler wrote: >> >>> The mpc512x FEC network driver resets the FEC before transferring >>> packets. With this reset, the FEC clears the previous setting of MII >>> transfer speed. This patch ensures, that it is set again to a reasonable >>> value after a FEC reset. >>> >>> Signed-off-by: Thomas Doerfler <thomas.doerf...@embedded-brains.de> >>> -- >>> diff --git a/drivers/net/mpc512x_fec.c b/drivers/net/mpc512x_fec.c >>> index fb2c19a..f3d76ba 100644 >>> --- a/drivers/net/mpc512x_fec.c >>> +++ b/drivers/net/mpc512x_fec.c >>> @@ -446,6 +446,19 @@ static void mpc512x_fec_halt (struct eth_device *dev) >>> * wait at least 16 clock cycles >>> */ >>> udelay (10); >>> + /* >>> + * NOTE: reset will also clear the MII speed register >>> + * we should reinitialize it ASAP >>> + */ >>> + if (fec->xcv_type != SEVENWIRE) { >>> + /* >>> + * Set MII_SPEED = (1/(mii_speed * 2)) * System Clock >>> + * and do not drop the Preamble. >>> + */ >>> + fec->eth->mii_speed = ((((gd->ips_clk / 1000000) / 5) >>> + + 1) >>> + << 1); >>> + } >>> #if (DEBUG & 0x3) >>> printf ("Ethernet task stopped\n"); >>> #endif >>> >>> >> Applied to net repo (after some tweaking) >> > > Sorry Ben, but I am not convinced that this is a good way to address > the problem. Please see the previous discussion of this patch. > > I think it is perfectly reasonable that mpc512x_fec_halt() also > disables the MII clock. After all, when the network intrface is > stopped, there is no need that the clocks keep running and drawing > current on battery powered devices. > > I'd rather see that the MII clock gets only started when needed, i. e. > before running any MII commands. > > Best regards, > > Wolfgang Denk > > Yikes, sorry again. I saw the one where you said 'thanks for the explanation, I can reproduce...'
Better hold off on my pull request :) Ben _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot