All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Ioana Ciornei <ioana.ciornei@nxp.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
	vladimir.oltean@nxp.com, claudiu.manoil@nxp.com,
	alexandru.marginean@nxp.com, andrew@lunn.ch,
	f.fainelli@gmail.com, olteanv@gmail.com
Subject: Re: [PATCH net-next v4 1/5] net: phylink: add helper function to decode USXGMII word
Date: Tue, 28 Jul 2020 16:06:11 +0100	[thread overview]
Message-ID: <20200728150611.GO1551@shell.armlinux.org.uk> (raw)
In-Reply-To: <20200724080143.12909-2-ioana.ciornei@nxp.com>

On Fri, Jul 24, 2020 at 11:01:39AM +0300, Ioana Ciornei wrote:
> With the new addition of the USXGMII link partner ability constants we
> can now introduce a phylink helper that decodes the USXGMII word and
> populates the appropriate fields in the phylink_link_state structure
> based on them.
> 
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>

Looks good, thanks.

Reviewed-by: Russell King <rmk+kernel@armlinux.org.uk>

> ---
> Changes in v4:
>  - patch added
> 
>  drivers/net/phy/phylink.c | 43 +++++++++++++++++++++++++++++++++++++++
>  include/linux/phylink.h   |  3 +++
>  2 files changed, 46 insertions(+)
> 
> diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
> index 32b4bd6a5b55..d7810c908bb3 100644
> --- a/drivers/net/phy/phylink.c
> +++ b/drivers/net/phy/phylink.c
> @@ -2318,6 +2318,49 @@ static void phylink_decode_sgmii_word(struct phylink_link_state *state,
>  		state->duplex = DUPLEX_HALF;
>  }
>  
> +/**
> + * phylink_decode_usxgmii_word() - decode the USXGMII word from a MAC PCS
> + * @state: a pointer to a struct phylink_link_state.
> + * @lpa: a 16 bit value which stores the USXGMII auto-negotiation word
> + *
> + * Helper for MAC PCS supporting the USXGMII protocol and the auto-negotiation
> + * code word.  Decode the USXGMII code word and populate the corresponding fields
> + * (speed, duplex) into the phylink_link_state structure.
> + */
> +void phylink_decode_usxgmii_word(struct phylink_link_state *state,
> +				 uint16_t lpa)
> +{
> +	switch (lpa & MDIO_USXGMII_SPD_MASK) {
> +	case MDIO_USXGMII_10:
> +		state->speed = SPEED_10;
> +		break;
> +	case MDIO_USXGMII_100:
> +		state->speed = SPEED_100;
> +		break;
> +	case MDIO_USXGMII_1000:
> +		state->speed = SPEED_1000;
> +		break;
> +	case MDIO_USXGMII_2500:
> +		state->speed = SPEED_2500;
> +		break;
> +	case MDIO_USXGMII_5000:
> +		state->speed = SPEED_5000;
> +		break;
> +	case MDIO_USXGMII_10G:
> +		state->speed = SPEED_10000;
> +		break;
> +	default:
> +		state->link = false;
> +		return;
> +	}
> +
> +	if (lpa & MDIO_USXGMII_FULL_DUPLEX)
> +		state->duplex = DUPLEX_FULL;
> +	else
> +		state->duplex = DUPLEX_HALF;
> +}
> +EXPORT_SYMBOL_GPL(phylink_decode_usxgmii_word);
> +
>  /**
>   * phylink_mii_c22_pcs_get_state() - read the MAC PCS state
>   * @pcs: a pointer to a &struct mdio_device.
> diff --git a/include/linux/phylink.h b/include/linux/phylink.h
> index 1aad2aea4610..83fc149a7bd7 100644
> --- a/include/linux/phylink.h
> +++ b/include/linux/phylink.h
> @@ -485,4 +485,7 @@ void phylink_mii_c22_pcs_an_restart(struct mdio_device *pcs);
>  
>  void phylink_mii_c45_pcs_get_state(struct mdio_device *pcs,
>  				   struct phylink_link_state *state);
> +
> +void phylink_decode_usxgmii_word(struct phylink_link_state *state,
> +				 uint16_t lpa);
>  #endif
> -- 
> 2.25.1
> 
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2020-07-28 15:06 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-24  8:01 [PATCH net-next v4 0/5] net: phy: add Lynx PCS MDIO module Ioana Ciornei
2020-07-24  8:01 ` [PATCH net-next v4 1/5] net: phylink: add helper function to decode USXGMII word Ioana Ciornei
2020-07-28 15:06   ` Russell King - ARM Linux admin [this message]
2020-07-24  8:01 ` [PATCH net-next v4 2/5] net: phylink: consider QSGMII interface mode in phylink_mii_c22_pcs_get_state Ioana Ciornei
2020-07-28 15:06   ` Russell King - ARM Linux admin
2020-07-24  8:01 ` [PATCH net-next v4 3/5] net: mdiobus: add clause 45 mdiobus write accessor Ioana Ciornei
2020-07-28 15:07   ` Russell King - ARM Linux admin
2020-07-24  8:01 ` [PATCH net-next v4 4/5] net: phy: add Lynx PCS module Ioana Ciornei
2020-07-28 15:46   ` Russell King - ARM Linux admin
2020-07-24  8:01 ` [PATCH net-next v4 5/5] net: dsa: ocelot: use the Lynx PCS helpers in Felix and Seville Ioana Ciornei
2020-07-24 21:47 ` [PATCH net-next v4 0/5] net: phy: add Lynx PCS MDIO module Vladimir Oltean
2020-07-27 18:27 ` Ioana Ciornei
2020-07-27 18:29 ` Florian Fainelli
2020-07-27 18:48   ` Ioana Ciornei
2020-07-27 19:47     ` Florian Fainelli
2020-07-27 20:28       ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200728150611.GO1551@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=alexandru.marginean@nxp.com \
    --cc=andrew@lunn.ch \
    --cc=claudiu.manoil@nxp.com \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=ioana.ciornei@nxp.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=vladimir.oltean@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.