On July 2, 2017 3:19:14 AM PDT, Alvaro Gamez Machado <alvaro.ga...@hazent.com> 
wrote:
>On Fri, Jun 30, 2017 at 10:30:38AM -0700, Florian Fainelli wrote:
>> On 06/30/2017 02:25 AM, Alvaro Gamez Machado wrote:
>> >    if (lp->phy_node) {
>> > -          if (lp->phy_type == XAE_PHY_TYPE_GMII) {
>> > +          if (lp->phy_type == XAE_PHY_TYPE_MII) {
>> > +                  phydev = of_phy_connect(lp->ndev, lp->phy_node,
>> > +                                          axienet_adjust_link, 0,
>> > +                                          PHY_INTERFACE_MODE_MII);
>> > +          } else if (lp->phy_type == XAE_PHY_TYPE_GMII) {
>> >                    phydev = of_phy_connect(lp->ndev, lp->phy_node,
>> >                                            axienet_adjust_link, 0,
>> >                                            PHY_INTERFACE_MODE_GMII);
>> 
>> Seems like this could be simplified even further if the values of
>> lp->phy_type directly mapped to those of phy_interface_t.
>
>Sadly, that's not the case. PHY_INTERFACE_MODE_* belong to a enum of
>twenty
>different values, of which only _MII and _GMII overlap with XAW_PHY_*
>values, but XAE_PHY_TYPE_RGMII_2_0 doesn't match
>PHY_INTERFACE_MODE_RGMII_ID.

There are four different rgmii types to account for rx or tx delay, is not 
there one that really matches? If the driver is using of_get_phy_mode() to 
retrieve the standard 'phy-mode' / 'phy-connection-type' values then this 
internal representation is not needed anymore.

-- 
Florian

Reply via email to