[PATCH v3 4/8] net: stmmac: dwmac-meson8b: apply the RGMII delays the T7 way

Martin Blumenstingl martin.blumenstingl at googlemail.com
Sat Oct 10 14:49:15 PDT 2026


Hi Lucas,

$subject caught my eye because I didn't understand why there's a "T7
way" for adding RGMII delays since we should be following a standard.
Patch 8/8 in this series documents the standard. Can you please find a
more suitable $subject for this patch?

On Sat, Oct 10, 2026 at 12:59 PM Lucas Tanure <tanure at linux.com> wrote:
[...]
>  static int meson8b_init_rgmii_delays(struct meson8b_dwmac *dwmac)
>  {
>         u32 tx_dly_config, rx_adj_config, cfg_rxclk_dly, delay_config;
> @@ -411,32 +455,34 @@ static int meson8b_dwmac_probe(struct platform_device *pdev)
>         dwmac->dev = &pdev->dev;
>         dwmac->phy_mode = plat_dat->phy_interface;
>
> -       /* use 2ns as fallback since this value was previously hardcoded */
> -       if (of_property_read_u32(pdev->dev.of_node, "amlogic,tx-delay-ns",
> -                                &dwmac->tx_delay_ns))
> -               dwmac->tx_delay_ns = 2;
The 2ns default value in case "amlogic,tx-delay-ns" is absent hasn't
been necessary since commit 093d23db4fff ("ARM64: dts: amlogic: add
the ethernet TX delay configuration").
That commit is part of v4.12. So boards using RGMII and a .dtb without
that property haven't been updated in more than 9 years.

[...]
> -       ret = meson8b_init_rgmii_delays(dwmac);
> +       if (dwmac->data->mac_applies_dt_delays)
> +               ret = meson_dwmac_init_dt_delays(dwmac, plat_dat);
> +       else
> +               ret = meson8b_init_rgmii_delays(dwmac);
>From the discussion in v2 I couldn't understand the overall way forward.
I get that new compatible strings should not rely on old, incorrect
behavior. But what's the path forward for the other SoCs?

[...]
>  static const struct meson8b_dwmac_data meson_t7_dwmac_data = {
>         .set_phy_mode = meson_axg_set_phy_mode,
> -       .has_prg_eth1_rgmii_rx_delay = true,
>         .has_pipeline_clk = true,
> +       .mac_applies_dt_delays = true,
This should be a callback function pointer (apply_delays or similar,
to match set_phy_mode) unless there's a way to make older SoCs also
follow the "correct" RGMII delay specification.


Best regards,
Martin



More information about the linux-amlogic mailing list