Re: [PATCH] net: axienet: add of_phy_connect call for XAE_PHY_TYPE_MII case

From: Florian Fainelli
Date: Tue Jul 04 2017 - 12:24:25 EST


On July 2, 2017 3:19:14 AM PDT, Alvaro Gamez Machado <alvaro.gamez@xxxxxxxxxx> 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