[PATCH] net/ftgmac100: Expose pause frames support and add comment about RGMII
Joel Stanley
joel at jms.id.au
Wed Mar 29 16:06:37 AEDT 2017
On Wed, Mar 29, 2017 at 2:18 PM, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> Expose to the phydev that we support Pause frame and add a comment
> mentioning how we handle RGMII clock delays via u-boot.
>
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
I made a small fix to the comment about phy.txt and applied to dev-4.10.
Cheers,
Joel
> ---
>
> This is the diff between v3 that was merged and v4 that I posted
> shortly afterward.
>
> drivers/net/ethernet/faraday/ftgmac100.c | 25 +++++++++++++++++++++++--
> 1 file changed, 23 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
> index d42489c..5fe2827 100644
> --- a/drivers/net/ethernet/faraday/ftgmac100.c
> +++ b/drivers/net/ethernet/faraday/ftgmac100.c
> @@ -111,8 +111,8 @@ struct ftgmac100 {
> bool rx_pause;
> bool aneg_pause;
>
> - uint32_t rxdes0_edorr_mask;
> - uint32_t txdes0_edotr_mask;
> + u32 rxdes0_edorr_mask;
> + u32 txdes0_edotr_mask;
> };
>
> static int ftgmac100_alloc_rx_buf(struct ftgmac100 *priv,
> @@ -1390,6 +1390,12 @@ static int ftgmac100_mii_probe(struct ftgmac100 *priv, phy_interface_t intf)
> return PTR_ERR(phydev);
> }
>
> + /*
> + * Indicate that we support PAUSE frames (see comment in
> + * Documentation/networking/phy.txt as of v4.10
> + */
> + phydev->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;
> +
> phydev->advertising = phydev->supported;
> phy_attached_info(phydev);
>
> @@ -1490,6 +1496,21 @@ static int ftgmac100_setup_mdio(struct net_device *ndev)
> iowrite32(reg, priv->base + FTGMAC100_OFFSET_REVR);
> }
>
> + /*
> + * Note: When using RGMII mode, we simply pass "RGMII" to the
> + * PHY and assume that u-boot will have configured the
> + * clock delays appropriately for the system.
> + *
> + * The implementation of the MAC in the Aspeed chips
> + * supports sub-ns programable delays that need to be
> + * configured in the SCU while the MAC IP block is in
> + * reset.
> + *
> + * If needed in the future, we can support configuring this
> + * here based on device-tree properties but unless absolutely
> + * needed I'd rather avoid poking at the SCU registers from
> + * this driver.
> + */
> if (np)
> intf_prop = of_get_property(np, "phy-interface", NULL);
> if (intf_prop) {
> --
> 2.9.
>
More information about the openbmc
mailing list