From: sashiko-bot@kernel.org
To: "Nicolai Buchwitz" <nb@tipi-net.de>
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH 3/3] ARM: dts: bcm2711: give the GENET MDIO controller its clock
Date: Wed, 21 Oct 2026 14:58:29 +0000 [thread overview]
Message-ID: <sashiko-outbox-180405@kernel.org> (raw)
In-Reply-To: <20261020-devel-bcm2711-gisb-clk-v1-3-a1728724d0f8@tipi-net.de>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] ARM: dts: bcm2711: genet_mdio clocks property ignored in unimac_mdio_probe()
--
commit abe7b1908b1ca3d642c93b8cea72ce17c73c4c14
Author: Nicolai Buchwitz <nb@tipi-net.de>
ARM: dts: bcm2711: give the GENET MDIO controller its clock
This commit adds the BCM2711_CLOCK_GISB clock phandle to the genet_mdio
device tree node in bcm2711.dtsi so the mdio-bcm-unimac driver can query
the 200 MHz clock rate.
> diff --git a/arch/arm/boot/dts/broadcom/bcm2711.dtsi b/arch/arm/boot/dts/broadcom/bcm2711.dtsi
> index 5e3b4bb393967..82b38551d55cf 100644
> --- a/arch/arm/boot/dts/broadcom/bcm2711.dtsi
> +++ b/arch/arm/boot/dts/broadcom/bcm2711.dtsi
> @@ -597,6 +597,7 @@ genet_mdio: mdio@e14 {
> compatible = "brcm,genet-mdio-v5";
> reg = <0xe14 0x8>;
> reg-names = "mdio";
> + clocks = <&clocks BCM2711_CLOCK_GISB>;
> #address-cells = <0x1>;
> #size-cells = <0x0>;
> };
[Severity: Medium]
Will mdio-bcm-unimac actually read the clocks property added to the
genet_mdio child node here?
When bcmgenet_probe() initializes the controller, it requests the parent
genet node's "enet" clock via devm_clk_get_optional(&priv->pdev->dev,
"enet"), which evaluates to NULL on BCM2711 because the parent
ethernet@7d580000 node has no clocks property.
Then bcmgenet_probe() -> bcmgenet_mii_init() -> bcmgenet_mii_register()
registers the unimac-mdio platform device with platform_data attached:
drivers/net/ethernet/broadcom/genet/bcmmii.c:bcmgenet_mii_register() {
...
ppd.clk = priv->clk;
...
if (dn)
platform_device_set_of_node(ppdev, bcmgenet_mii_of_find_mdio(priv));
else
ppd.phy_mask = ~0;
ret = platform_device_add_resources(ppdev, &res, 1);
if (ret)
goto out;
ret = platform_device_add_data(ppdev, &ppd, sizeof(ppd));
...
}
When unimac_mdio_probe() runs for that device, pdata is non-NULL, so it
takes the if (pdata) branch and never calls devm_clk_get_optional() on the
genet_mdio OF node:
drivers/net/mdio/mdio-bcm-unimac.c:unimac_mdio_probe() {
...
if (pdata) {
bus->name = pdata->bus_name;
priv->wait_func = pdata->wait_func;
priv->wait_func_data = pdata->wait_func_data;
bus->phy_mask = ~pdata->phy_mask;
priv->clk = pdata->clk;
} else {
bus->name = "unimac MII bus";
priv->wait_func_data = priv;
priv->wait_func = unimac_mdio_poll;
priv->clk = devm_clk_get_optional(&pdev->dev, NULL);
}
...
}
As a result, priv->clk remains NULL and clk_get_rate(priv->clk) in
unimac_mdio_clk_set() still returns 0 (and unimac_mdio_clk_set() also
returns early unless clock-frequency is set).
Should unimac_mdio_probe() fall back to devm_clk_get_optional() when
pdata->clk is NULL, or should the clock be wired up through the parent
genet node?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261020-devel-bcm2711-gisb-clk-v1-0-a1728724d0f8@tipi-net.de?part=3
next prev parent reply other threads:[~2026-10-21 14:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-20 14:58 [PATCH 0/3] clk: bcm2835: describe the BCM2711 GISB clock for the GENET MDIO controller Nicolai Buchwitz
2026-10-20 14:58 ` [PATCH 1/3] dt-bindings: clock: bcm2835: add the BCM2711 GISB clock Nicolai Buchwitz
2026-10-20 15:38 ` Florian Fainelli
2026-10-22 10:52 ` Krzysztof Kozlowski
2026-10-20 14:58 ` [PATCH 2/3] clk: bcm2835: register " Nicolai Buchwitz
2026-10-20 15:40 ` Florian Fainelli
2026-10-20 14:58 ` [PATCH 3/3] ARM: dts: bcm2711: give the GENET MDIO controller its clock Nicolai Buchwitz
2026-10-20 15:40 ` Florian Fainelli
2026-10-21 14:58 ` sashiko-bot [this message]
2026-10-21 15:10 ` Nicolai Buchwitz
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=sashiko-outbox-180405@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=nb@tipi-net.de \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.