[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <dc7296b2-e7aa-4cc3-9aa7-44e97ec50fc3@lunn.ch>
Date: Mon, 17 Mar 2025 14:03:58 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Jacky Chou <jacky_chou@...eedtech.com>
Cc: andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, robh@...nel.org,
krzk+dt@...nel.org, conor+dt@...nel.org, joel@....id.au,
andrew@...econstruct.com.au, ratbert@...aday-tech.com,
netdev@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-aspeed@...ts.ozlabs.org, BMC-SW@...eedtech.com
Subject: Re: [net-next 4/4] net: ftgmac100: add RGMII delay for AST2600
> + u32 rgmii_tx_delay, rgmii_rx_delay;
> + u32 dly_reg, tx_dly_mask, rx_dly_mask;
> + int tx, rx;
> +
> + netdev = platform_get_drvdata(pdev);
> + priv = netdev_priv(netdev);
> +
> + tx = of_property_read_u32(np, "tx-internal-delay-ps", &rgmii_tx_delay);
> + rx = of_property_read_u32(np, "rx-internal-delay-ps", &rgmii_rx_delay);
> + if (!tx) {
The documentation for of_property_read_u32() says:
* Return: 0 on success, -EINVAL if the property does not exist,
* -ENODATA if property does not have a value, and -EOVERFLOW if the
* property data isn't large enough.
You need to handle EINVAL different to the other errors, which are
real errors and should fail the probe.
The commit message, and probably the binding needs to document what
happens when the properties are not in the DT blob. This needs to be
part of the bigger picture of how you are going to sort out the mess
with existing .dts files listing 'rgmii' when in fact they should be
'rgmii-id'.
> + /* Use tx-internal-delay-ps as index to configure tx delay
> + * into scu register.
> + */
> + if (rgmii_tx_delay > 64)
> + dev_warn(&pdev->dev, "Get invalid tx delay value");
Return EINVAL and fail the probe.
Andrew
Powered by blists - more mailing lists