From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: Florian Fainelli <florian.fainelli@broadcom.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Vladimir Oltean <olteanv@gmail.com>,
David Epping <david.epping@missinglinkelectronics.com>,
Harini Katakam <harini.katakam@amd.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [net-next PATCH v7 4/4] net: phy: add support for PHY package MMD read/write
Date: Thu, 14 Dec 2023 17:06:55 +0000 [thread overview]
Message-ID: <ZXs2L0zfMaXTf+Ls@shell.armlinux.org.uk> (raw)
In-Reply-To: <20231214121026.4340-5-ansuelsmth@gmail.com>
On Thu, Dec 14, 2023 at 01:10:26PM +0100, Christian Marangi wrote:
> Some PHY in PHY package may require to read/write MMD regs to correctly
> configure the PHY package.
>
> Add support for these additional required function in both lock and no
> lock variant.
>
> It's assumed that the entire PHY package is either C22 or C45. We use
> C22 or C45 way of writing/reading to mmd regs based on the passed phydev
> whether it's C22 or C45.
>
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
> Changes v7:
> - Change addr to u8
> Changes v6:
> - Fix copy paste error for kdoc
> Changes v5:
> - Improve function description
> Changes v4:
> - Drop function comments in header file
> Changes v3:
> - Move in phy-core.c from phy.h
> - Base c45 from phydev
> Changes v2:
> - Rework to use newly introduced helper
> - Add common check for regnum and devad
>
> drivers/net/phy/phy-core.c | 144 +++++++++++++++++++++++++++++++++++++
> include/linux/phy.h | 16 +++++
> 2 files changed, 160 insertions(+)
>
> diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
> index b729ac8b2640..7af935c6abe5 100644
> --- a/drivers/net/phy/phy-core.c
> +++ b/drivers/net/phy/phy-core.c
> @@ -650,6 +650,150 @@ int phy_write_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val)
> }
> EXPORT_SYMBOL(phy_write_mmd);
>
> +/**
> + * __phy_package_read_mmd - read MMD reg relative to PHY package base addr
> + * @phydev: The phy_device struct
> + * @addr_offset: The offset to be added to PHY package base_addr
> + * @devad: The MMD to read from
> + * @regnum: The register on the MMD to read
> + *
> + * Convenience helper for reading a register of an MMD on a given PHY
> + * using the PHY package base address. The base address is added to
> + * the addr_offset value.
> + *
> + * Same calling rules as for __phy_read();
> + *
> + * NOTE: It's assumed that the entire PHY package is either C22 or C45.
> + */
> +int __phy_package_read_mmd(struct phy_device *phydev,
> + unsigned int addr_offset, int devad,
> + u32 regnum)
> +{
> + struct phy_package_shared *shared = phydev->shared;
> + u8 addr = shared->base_addr + addr_offset;
> +
> + if (addr >= PHY_MAX_ADDR)
> + return -EIO;
The helper I mentioned in the previous patch (whether or not we do the
rest of the range checks) would probably be a good idea to get away from
the repetitive nature of this logic. This patch adds four more!
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
prev parent reply other threads:[~2023-12-14 17:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-14 12:10 [net-next PATCH v7 0/4] net: phy: add PHY package base addr + mmd APIs Christian Marangi
2023-12-14 12:10 ` [net-next PATCH v7 1/4] net: phy: make addr type u8 in phy_package_shared struct Christian Marangi
2023-12-14 16:56 ` Russell King (Oracle)
2023-12-14 12:10 ` [net-next PATCH v7 2/4] net: phy: extend PHY package API to support multiple global address Christian Marangi
2023-12-14 17:05 ` Russell King (Oracle)
2023-12-14 16:54 ` Christian Marangi
2023-12-14 23:54 ` Russell King (Oracle)
2023-12-14 17:29 ` Christian Marangi
2023-12-15 9:16 ` Russell King (Oracle)
2023-12-14 12:10 ` [net-next PATCH v7 3/4] net: phy: restructure __phy_write/read_mmd to helper and phydev user Christian Marangi
2023-12-14 12:10 ` [net-next PATCH v7 4/4] net: phy: add support for PHY package MMD read/write Christian Marangi
2023-12-14 17:06 ` Russell King (Oracle) [this message]
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=ZXs2L0zfMaXTf+Ls@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrew@lunn.ch \
--cc=ansuelsmth@gmail.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=davem@davemloft.net \
--cc=david.epping@missinglinkelectronics.com \
--cc=edumazet@google.com \
--cc=florian.fainelli@broadcom.com \
--cc=harini.katakam@amd.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.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.