lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFXsbZodix-2VMgVb-oir7bpzt+OTV8xEkNhwj+Kpe-yp7Hs3A@mail.gmail.com>
Date:   Thu, 14 Dec 2017 18:00:16 -0800
From:   Chris Healy <cphealy@...il.com>
To:     Florian Fainelli <f.fainelli@...il.com>
Cc:     netdev@...r.kernel.org, Andrew Lunn <andrew@...n.ch>
Subject: Re: [PATCH net-next] net: phy: broadcom: Add entry for 5395 switch PHYs

Tested-by: Chris Healy <cphealy@...il.com>

Successfully tested on a machine with a Broadcom BCM5395 switch.

On Thu, Dec 14, 2017 at 5:48 PM, Florian Fainelli <f.fainelli@...il.com> wrote:
> Add an entry for the builtin PHYs present in the Broadcom BCM5395 switch. This
> allows us to retrieve the PHY statistics among other things.
>
> Signed-off-by: Florian Fainelli <f.fainelli@...il.com>
> ---
>  drivers/net/phy/broadcom.c | 42 ++++++++++++++++++++++++++++++++++++++++++
>  include/linux/brcmphy.h    |  1 +
>  2 files changed, 43 insertions(+)
>
> diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c
> index a8f69c5777bc..3bb6b66dc7bf 100644
> --- a/drivers/net/phy/broadcom.c
> +++ b/drivers/net/phy/broadcom.c
> @@ -540,6 +540,37 @@ static int brcm_fet_config_intr(struct phy_device *phydev)
>         return err;
>  }
>
> +struct bcm53xx_phy_priv {
> +       u64     *stats;
> +};
> +
> +static int bcm53xx_phy_probe(struct phy_device *phydev)
> +{
> +       struct bcm53xx_phy_priv *priv;
> +
> +       priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL);
> +       if (!priv)
> +               return -ENOMEM;
> +
> +       phydev->priv = priv;
> +
> +       priv->stats = devm_kcalloc(&phydev->mdio.dev,
> +                                  bcm_phy_get_sset_count(phydev), sizeof(u64),
> +                                  GFP_KERNEL);
> +       if (!priv->stats)
> +               return -ENOMEM;
> +
> +       return 0;
> +}
> +
> +static void bcm53xx_phy_get_stats(struct phy_device *phydev,
> +                                 struct ethtool_stats *stats, u64 *data)
> +{
> +       struct bcm53xx_phy_priv *priv = phydev->priv;
> +
> +       bcm_phy_get_stats(phydev, priv->stats, stats, data);
> +}
> +
>  static struct phy_driver broadcom_drivers[] = {
>  {
>         .phy_id         = PHY_ID_BCM5411,
> @@ -679,6 +710,16 @@ static struct phy_driver broadcom_drivers[] = {
>         .config_init    = brcm_fet_config_init,
>         .ack_interrupt  = brcm_fet_ack_interrupt,
>         .config_intr    = brcm_fet_config_intr,
> +}, {
> +       .phy_id         = PHY_ID_BCM5395,
> +       .phy_id_mask    = 0xfffffff0,
> +       .name           = "Broadcom BCM5395",
> +       .flags          = PHY_IS_INTERNAL,
> +       .features       = PHY_GBIT_FEATURES,
> +       .get_sset_count = bcm_phy_get_sset_count,
> +       .get_strings    = bcm_phy_get_strings,
> +       .get_stats      = bcm53xx_phy_get_stats,
> +       .probe          = bcm53xx_phy_probe,
>  } };
>
>  module_phy_driver(broadcom_drivers);
> @@ -699,6 +740,7 @@ static struct mdio_device_id __maybe_unused broadcom_tbl[] = {
>         { PHY_ID_BCM57780, 0xfffffff0 },
>         { PHY_ID_BCMAC131, 0xfffffff0 },
>         { PHY_ID_BCM5241, 0xfffffff0 },
> +       { PHY_ID_BCM5395, 0xfffffff0 },
>         { }
>  };
>
> diff --git a/include/linux/brcmphy.h b/include/linux/brcmphy.h
> index 8ff86b4c1b8a..d3339dd48b1a 100644
> --- a/include/linux/brcmphy.h
> +++ b/include/linux/brcmphy.h
> @@ -14,6 +14,7 @@
>  #define PHY_ID_BCM5241                 0x0143bc30
>  #define PHY_ID_BCMAC131                        0x0143bc70
>  #define PHY_ID_BCM5481                 0x0143bca0
> +#define PHY_ID_BCM5395                 0x0143bcf0
>  #define PHY_ID_BCM54810                        0x03625d00
>  #define PHY_ID_BCM5482                 0x0143bcb0
>  #define PHY_ID_BCM5411                 0x00206070
> --
> 2.7.4
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ