>>      /* mask with MAC supported features */
>> -    if (macb_is_gem(bp) && bp->caps &
>MACB_CAPS_GIGABIT_MODE_AVAILABLE)
>> -            phy_set_max_speed(phydev, SPEED_1000);
>> -    else
>> -            phy_set_max_speed(phydev, SPEED_100);
>> +    if (macb_is_gem(bp)) {
>> +            linkmode_copy(phydev->supported, PHY_GBIT_FEATURES);
>> +            if (bp->caps & MACB_CAPS_TWO_PT_FIVE_GIG_SPEED)
>> +
>       linkmode_set_bit(ETHTOOL_LINK_MODE_2500baseT_Full_BIT,
>> +                                     phydev->supported);
>> +    } else {
>> +            linkmode_copy(phydev->supported, PHY_BASIC_FEATURES);
>> +    }
>> +
>> +    linkmode_copy(phydev->advertising, phydev->supported);
>
>This is not correct. Just because the MAC can do 2.5G does not mean the PHY
>can. So you should not be adding links modes. Also, somebody might be using a
>PHY that can do 2.5G with a MAC which can only do 1G.
>
>The correct thing to do is call phy_set_max_speed() with the maximum speed the
>MAC can do.
Hi Andrew,

Ok, I think this should have been logical AND. I will modify to use 
phy_set_max_speed() 
instead of directly copying linkmodes.

Regards,
Parshuram Thombare

Reply via email to