From mboxrd@z Thu Jan 1 00:00:00 1970 From: Troy Kisky Date: Fri, 13 Jan 2012 14:22:53 -0700 Subject: [U-Boot] [PATCH 4/5] net: fec_mxc: Nove autonegoatiate restart after mii_postcall In-Reply-To: <4F103790.1010406@denx.de> References: <1326456604-25137-1-git-send-email-dirk.behme@de.bosch.com> <1326456604-25137-4-git-send-email-dirk.behme@de.bosch.com> <4F103790.1010406@denx.de> Message-ID: <4F10A0AD.1060502@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 1/13/2012 6:54 AM, Stefano Babic wrote: > On 13/01/2012 13:10, Dirk Behme wrote: >> From: Troy Kisky >> >> Allow boards to change what is advertised before an autoneg >> restart happens. >> >> Signed-off-by: Troy Kisky >> CC: Troy Kisky >> CC: Stefano Babic >> CC: Marek Vasut >> --- >> drivers/net/fec_mxc.c | 6 +++--- >> 1 files changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c >> index b50e01c..6271df5 100644 >> --- a/drivers/net/fec_mxc.c >> +++ b/drivers/net/fec_mxc.c >> @@ -206,12 +206,12 @@ static int miiphy_restart_aneg(struct eth_device *dev) >> miiphy_write(dev->name, fec->phy_id, MII_ADVERTISE, >> LPA_100FULL | LPA_100HALF | LPA_10FULL | >> LPA_10HALF | PHY_ANLPAR_PSB_802_3); >> - miiphy_write(dev->name, fec->phy_id, MII_BMCR, >> - BMCR_ANENABLE | BMCR_ANRESTART); >> - >> if (fec->mii_postcall) >> ret = fec->mii_postcall(fec->phy_id); >> >> + miiphy_write(dev->name, fec->phy_id, MII_BMCR, >> + BMCR_ANENABLE | BMCR_ANRESTART); >> + > ...but you change the postcall into a precall... I assumed mii_postcall meant mii_post_init_call not mii_post_aneg_call. A rename of the function may be desired. Perhaps we should let the mii_postcall function do the miiphy_write(dev->name, fec->phy_id, MII_BMCR, BMCR_ANENABLE | BMCR_ANRESTART); as well. > > The current implementation is correct. Something is set / written , and > after that a specific supplied function (if any) is called, then the > name postcall. > > Changing the order is not correct if the fec->mii_postcall thinks (as it > should be) that the MII_BMCR register was already written. > > But you missed to mention why you need such as change : which is the > failure / bug you discovered ? I wanted the sabrelite board to be able to remove 1000BaseT advertisement before aneg starts. I think it works either way, but is clearer this way and doesn't rely on luck. > > Best regards, > Stefano Babic >