Re: [RFC PATCH 15/17] phy_device: Add "port" and "transciever"fields

From: Ben Hutchings
Date: Thu Oct 20 2011 - 19:28:17 EST


On Thu, 2011-10-20 at 17:00 -0400, Kyle Moffett wrote:
> Some PHYs have multiple software-selectable inputs and outputs,
> including RGMII, SGMII, SerDes, etc. New fields are added to the
> "struct phy_device" for "port" and "transciever" to allow "ethtool" to
> switch outputs at runtime. The defaults for the new fields are
> identical to the hardcoded values used previously.
>
> This should make no functional changes to the PHY layer behavior, but
> it will allow later PHY/ethernet drivers to override those fields.
>
> Signed-off-by: Kyle Moffett <Kyle.D.Moffett@xxxxxxxxxx>
> ---
> drivers/net/phy/phy.c | 4 ++--
> drivers/net/phy/phy_device.c | 2 ++
> include/linux/phy.h | 4 ++++
> 3 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> index c378f91..5f72055 100644
> --- a/drivers/net/phy/phy.c
> +++ b/drivers/net/phy/phy.c
> @@ -290,9 +290,9 @@ int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd)
>
> ethtool_cmd_speed_set(cmd, phydev->speed);
> cmd->duplex = phydev->duplex;
> - cmd->port = PORT_MII;
> + cmd->port = phydev->port;
> cmd->phy_address = phydev->addr;
> - cmd->transceiver = XCVR_EXTERNAL;
> + cmd->transceiver = phydev->transciever;

'transceiver' is spelt thus.

[...]
> --- a/include/linux/phy.h
> +++ b/include/linux/phy.h
> @@ -308,6 +308,10 @@ struct phy_device {
> u32 supported;
> u32 advertising;
>
> + /* The current port/xcvr info (Copper, Fibre, MII, Direct-Attach) */
> + u8 port;
> + u8 transceiver;
> +

And yet you got it right here.

Ben.

> int autoneg;
>
> int link_timeout;

--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/