[U-Boot] [PATCH 4/5] net: fec_mxc: Nove autonegoatiate restart after mii_postcall
Troy Kisky
troy.kisky at boundarydevices.com
Fri Jan 13 22:22:53 CET 2012
On 1/13/2012 6:54 AM, Stefano Babic wrote:
> On 13/01/2012 13:10, Dirk Behme wrote:
>> From: Troy Kisky<troy.kisky at boundarydevices.com>
>>
>> Allow boards to change what is advertised before an autoneg
>> restart happens.
>>
>> Signed-off-by: Troy Kisky<troy.kisky at boundarydevices.com>
>> CC: Troy Kisky<troy.kisky at boundarydevices.com>
>> CC: Stefano Babic<sbabic at denx.de>
>> CC: Marek Vasut<marek.vasut at gmail.com>
>> ---
>> 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
>
More information about the U-Boot
mailing list