From: Christian Marangi <ansuelsmth@gmail.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: Lee Jones <lee@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
upstream@airoha.com
Subject: Re: [net-next PATCH v11 5/9] mfd: an8855: Add support for Airoha AN8855 Switch MFD
Date: Tue, 10 Dec 2024 23:32:17 +0100 [thread overview]
Message-ID: <6758c174.050a0220.52a35.06bc@mx.google.com> (raw)
In-Reply-To: <20241210211529.osgzd54flq646bcr@skbuf>
On Tue, Dec 10, 2024 at 11:15:29PM +0200, Vladimir Oltean wrote:
> On Mon, Dec 09, 2024 at 02:44:22PM +0100, Christian Marangi wrote:
> > +int an8855_mii_set_page(struct an8855_mfd_priv *priv, u8 phy_id,
> > + u8 page) __must_hold(&priv->bus->mdio_lock)
> > +{
> > + struct mii_bus *bus = priv->bus;
> > + int ret;
> > +
> > + ret = __mdiobus_write(bus, phy_id, AN8855_PHY_SELECT_PAGE, page);
> > + if (ret < 0)
> > + dev_err_ratelimited(&bus->dev,
> > + "failed to set an8855 mii page\n");
> > +
> > + /* Cache current page if next mii read/write is for switch */
> > + priv->current_page = page;
> > + return ret < 0 ? ret : 0;
> > +}
> > +EXPORT_SYMBOL_GPL(an8855_mii_set_page);
>
> You could keep the implementation more contained, and you could avoid
> exporting an8855_mii_set_page() and an8855_mfd_priv to the MDIO
> passthrough driver, if you implement a virtual regmap and give it to the
> MDIO passthrough child MFD device.
>
> If this bus supports only clause 22 accesses (and it looks like it does),
> you could expose a 16-bit regmap with a linear address space of 32 MDIO
> addresses x 65536 registers. The bus->read() of the MDIO bus passthrough
> just performs regmap_read(), and bus->write() just performs regmap_write().
> The MFD driver decodes the regmap address into a PHY address and a regnum,
> and performs the page switching locally, if needed.
Doesn't regmap add lots of overhead tho? Maybe I should really change
the switch regmap to apply a save/restore logic?
With an implementation like that current_page is not needed anymore.
And I feel additional read/write are ok for switch OP.
On mdio I can use the parent-mdio-bus property to get the bus directly
without using MFD priv.
What do you think?
--
Ansuel
next prev parent reply other threads:[~2024-12-10 22:33 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 13:44 [net-next PATCH v11 0/9] net: dsa: Add Airoha AN8855 support Christian Marangi
2024-12-09 13:44 ` [net-next PATCH v11 1/9] dt-bindings: nvmem: Document support for Airoha AN8855 Switch EFUSE Christian Marangi
2024-12-17 13:18 ` Rob Herring (Arm)
2024-12-09 13:44 ` [net-next PATCH v11 2/9] dt-bindings: net: Document support for Airoha AN8855 Switch Virtual MDIO Christian Marangi
2024-12-17 13:28 ` Rob Herring (Arm)
2024-12-09 13:44 ` [net-next PATCH v11 3/9] dt-bindings: net: dsa: Document support for Airoha AN8855 DSA Switch Christian Marangi
2024-12-10 20:48 ` Vladimir Oltean
2024-12-10 20:59 ` Christian Marangi
2024-12-10 22:16 ` Vladimir Oltean
2024-12-10 22:26 ` Christian Marangi
2024-12-09 13:44 ` [net-next PATCH v11 4/9] dt-bindings: mfd: Document support for Airoha AN8855 Switch SoC Christian Marangi
2024-12-10 20:55 ` Vladimir Oltean
2024-12-10 21:03 ` Christian Marangi
2024-12-09 13:44 ` [net-next PATCH v11 5/9] mfd: an8855: Add support for Airoha AN8855 Switch MFD Christian Marangi
2024-12-09 23:18 ` Jakub Kicinski
2024-12-09 23:22 ` Christian Marangi
2024-12-09 23:40 ` Jakub Kicinski
2024-12-09 23:48 ` Christian Marangi
2024-12-10 21:05 ` Vladimir Oltean
2024-12-10 21:15 ` Vladimir Oltean
2024-12-10 22:32 ` Christian Marangi [this message]
2024-12-10 23:11 ` Andrew Lunn
2024-12-10 23:48 ` Vladimir Oltean
2024-12-14 15:11 ` Christian Marangi
2024-12-17 15:13 ` Vladimir Oltean
2024-12-17 15:18 ` Vladimir Oltean
2024-12-09 13:44 ` [net-next PATCH v11 6/9] net: mdio: Add Airoha AN8855 Switch MDIO Passtrough Christian Marangi
2024-12-10 1:53 ` Andrew Lunn
2024-12-10 12:06 ` Christian Marangi
2024-12-10 13:38 ` Andrew Lunn
2024-12-09 13:44 ` [net-next PATCH v11 7/9] nvmem: an8855: Add support for Airoha AN8855 Switch EFUSE Christian Marangi
2024-12-09 13:44 ` [net-next PATCH v11 8/9] net: dsa: Add Airoha AN8855 5-Port Gigabit DSA Switch driver Christian Marangi
2024-12-10 22:12 ` Vladimir Oltean
2024-12-09 13:44 ` [net-next PATCH v11 9/9] net: phy: Add Airoha AN8855 Internal Switch Gigabit PHY Christian Marangi
2024-12-10 1:36 ` Andrew Lunn
2024-12-10 12:10 ` Christian Marangi
2024-12-10 13:39 ` Andrew Lunn
2024-12-10 20:20 ` [net-next PATCH v11 0/9] net: dsa: Add Airoha AN8855 support Vladimir Oltean
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=6758c174.050a0220.52a35.06bc@mx.google.com \
--to=ansuelsmth@gmail.com \
--cc=andrew+netdev@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=upstream@airoha.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.