[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<SEYPR06MB513471FBFDEAFAA3308000699DDE2@SEYPR06MB5134.apcprd06.prod.outlook.com>
Date: Tue, 18 Mar 2025 10:46:58 +0000
From: Jacky Chou <jacky_chou@...eedtech.com>
To: Andrew Lunn <andrew@...n.ch>
CC: "andrew+netdev@...n.ch" <andrew+netdev@...n.ch>, "davem@...emloft.net"
<davem@...emloft.net>, "edumazet@...gle.com" <edumazet@...gle.com>,
"kuba@...nel.org" <kuba@...nel.org>, "pabeni@...hat.com" <pabeni@...hat.com>,
"robh@...nel.org" <robh@...nel.org>, "krzk+dt@...nel.org"
<krzk+dt@...nel.org>, "conor+dt@...nel.org" <conor+dt@...nel.org>,
"joel@....id.au" <joel@....id.au>, "andrew@...econstruct.com.au"
<andrew@...econstruct.com.au>, "ratbert@...aday-tech.com"
<ratbert@...aday-tech.com>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, "devicetree@...r.kernel.org"
<devicetree@...r.kernel.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, "linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, "linux-aspeed@...ts.ozlabs.org"
<linux-aspeed@...ts.ozlabs.org>, BMC-SW <BMC-SW@...eedtech.com>
Subject:
回覆: [net-next 4/4] net: ftgmac100: add RGMII delay for AST2600
Hi Andrew,
Thank you for your reply.
> > + 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'.
Why can't the MAC add internal delay to RGMII? Is it necessary to add on PHY side?
>
> > + /* 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.
Agreed.
I just show warning here, because sometimes the RGMII delay value will configure at bootloader.
Therefore, it shows message and ignore the delay value when it got wrong.
I will add check for this in next version.
Thanks,
Jacky
Powered by blists - more mailing lists