[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <213c3447-6df7-ceb0-ed74-3e71342b7bf5@gmail.com>
Date: Wed, 17 May 2017 14:33:40 -0700
From: Florian Fainelli <f.fainelli@...il.com>
To: Iyappan Subramanian <isubramanian@....com>,
Andrew Lunn <andrew@...n.ch>
Cc: David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, patches <patches@....com>,
Quan Nguyen <qnguyen@....com>
Subject: Re: [PATCH net-next] drivers: net: xgene: Check all RGMII phy mode
variants
On 05/17/2017 02:29 PM, Iyappan Subramanian wrote:
> On Wed, May 17, 2017 at 1:26 PM, Andrew Lunn <andrew@...n.ch> wrote:
>>> +bool is_xgene_enet_phy_mode_rgmii(struct net_device *ndev)
>>> +{
>>> + struct xgene_enet_pdata *pdata = netdev_priv(ndev);
>>> + int phy_mode = pdata->phy_mode;
>>> + bool ret;
>>> +
>>> + ret = phy_mode == PHY_INTERFACE_MODE_RGMII ||
>>> + phy_mode == PHY_INTERFACE_MODE_RGMII_ID ||
>>> + phy_mode == PHY_INTERFACE_MODE_RGMII_RXID ||
>>> + phy_mode == PHY_INTERFACE_MODE_RGMII_TXID;
>>> +
>>> + return ret;
>>> +}
>>
>> include/linux/phy.h:
>>
>> /**
>> * phy_interface_is_rgmii - Convenience function for testing if a PHY interface
>> * is RGMII (all variants)
>> * @phydev: the phy_device struct
>> */
>> static inline bool phy_interface_is_rgmii(struct phy_device *phydev)
>> {
>> return phydev->interface >= PHY_INTERFACE_MODE_RGMII &&
>> phydev->interface <= PHY_INTERFACE_MODE_RGMII_TXID;
>> };
>
> Thanks. I'll use this helper function.
If you can use it, that's great, the reason why I did not recommend
using it before was because it takes a phydev reference and your code
clearly could have run before connecting to the PHY device.
Alternatively, we could introduce a helper function that just checks a
phy_interface_t type, something like:
static inline bool phy_interface_is_rgmii(phy_interface_t mode)
{
...
}
and introduce:
static inline bool phydev_interface_is_rgmii(struct phy_device *phydev)
{
return phy_interface_is_rgmii(phydev->interface);
}
which would use this helper function internally. Or just drop the second
helper, and always pass phydev->interface where needed.
--
Florian
Powered by blists - more mailing lists