[PATCH v3 15/23] net: ravb: Allocate bb_miiphy using bb_miiphy_alloc() and fill in callbacks
Paul Barker
paul.barker.ct at bp.renesas.com
Fri Feb 28 14:28:54 CET 2025
On 22/02/2025 20:33, Marek Vasut wrote:
> Allocate bb_miiphy using bb_miiphy_alloc() and fill in callbacks
> currently listed in bb_miiphy_buses[] array. This is a temporary
> duplication of assignment to avoid breakage, which will be removed
> in follow up patches. At this point, the bb_miiphy callbacks can
> reach these accessors by doing container_of() on struct mii_dev.
>
> Reviewed-by: Paul Barker <paul.barker.ct at bp.renesas.com>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
> ---
> Cc: Christian Marangi <ansuelsmth at gmail.com>
> Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> Cc: Jerome Forissier <jerome.forissier at linaro.org>
> Cc: Jim Liu <JJLIU0 at nuvoton.com>
> Cc: Joe Hershberger <joe.hershberger at ni.com>
> Cc: Mario Six <mario.six at gdsys.cc>
> Cc: Michal Simek <michal.simek at amd.com>
> Cc: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
> Cc: Paul Barker <paul.barker.ct at bp.renesas.com>
> Cc: Ramon Fried <rfried.dev at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: u-boot at lists.denx.de
> ---
> V2: No change
> V3: Add RB from Paul
> ---
> drivers/net/ravb.c | 19 ++++++++++++++++---
> 1 file changed, 16 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
> index 381cf250ea2..0018b694ec1 100644
> --- a/drivers/net/ravb.c
> +++ b/drivers/net/ravb.c
> @@ -553,6 +553,7 @@ static int ravb_probe(struct udevice *dev)
> {
> struct eth_pdata *pdata = dev_get_plat(dev);
> struct ravb_priv *eth = dev_get_priv(dev);
> + struct bb_miiphy_bus *bb_miiphy;
> struct mii_dev *mdiodev;
> void __iomem *iobase;
> int ret;
> @@ -564,17 +565,29 @@ static int ravb_probe(struct udevice *dev)
> if (ret < 0)
> goto err_mdio_alloc;
>
> - mdiodev = mdio_alloc();
> - if (!mdiodev) {
> + bb_miiphy = bb_miiphy_alloc();
> + if (!bb_miiphy) {
> ret = -ENOMEM;
> goto err_mdio_alloc;
> }
>
> + mdiodev = &bb_miiphy->mii;
> +
> mdiodev->read = bb_miiphy_read;
> mdiodev->write = bb_miiphy_write;
> bb_miiphy_buses[0].priv = eth;
> snprintf(mdiodev->name, sizeof(mdiodev->name), dev->name);
>
> + /* Copy the bus accessors, name and private data */
> + bb_miiphy->mdio_active = ravb_bb_mdio_active;
> + bb_miiphy->mdio_tristate = ravb_bb_mdio_tristate;
> + bb_miiphy->set_mdio = ravb_bb_set_mdio;
> + bb_miiphy->get_mdio = ravb_bb_get_mdio;
> + bb_miiphy->set_mdc = ravb_bb_set_mdc;
> + bb_miiphy->delay = ravb_bb_delay;
> + strlcpy(bb_miiphy->name, "ravb", MDIO_NAME_LEN);
> + bb_miiphy->priv = eth;
> +
> ret = mdio_register(mdiodev);
> if (ret < 0)
> goto err_mdio_register;
> @@ -599,7 +612,7 @@ static int ravb_probe(struct udevice *dev)
> err_mdio_reset:
> clk_release_bulk(ð->clks);
> err_mdio_register:
> - mdio_free(mdiodev);
> + bb_miiphy_free(bb_miiphy);
> err_mdio_alloc:
> unmap_physmem(eth->iobase, MAP_NOCACHE);
> return ret;
Marek,
I've rebased my RZ/G2L Ethernet patches on top of this series and as
part of tidying things up I spotted an issue that I'd missed -
ravb_remove() still calls mdio_free(eth->bus). The error paths in the
probe functions have been converted but the remove functions were
missed. It should instead use something like:
struct bb_miiphy_bus *bus = container_of(eth->bus, struct bb_miiphy_bus, mii);
bb_miiphy_free(bus);
The same applies to the following two patches (sh_eth.c & designware.c).
Thanks,
--
Paul Barker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x27F4B3459F002257.asc
Type: application/pgp-keys
Size: 3520 bytes
Desc: OpenPGP public key
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250228/0c98f8f3/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250228/0c98f8f3/attachment.sig>
More information about the U-Boot
mailing list