From: Yanteng Si <si.yanteng@linux.dev>
To: wens@kernel.org
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Jernej Skrabec <jernej@kernel.org>,
Samuel Holland <samuel@sholland.org>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org,
Andre Przywara <andre.przywara@arm.com>
Subject: Re: [PATCH RFT net-next 02/10] net: stmmac: Add support for Allwinner A523 GMAC200
Date: Mon, 7 Jul 2025 11:02:59 +0800 [thread overview]
Message-ID: <ef56c834-0e8c-410c-ada0-dc2b8be34cab@linux.dev> (raw)
In-Reply-To: <CAGb2v646pxuT-nrwtDD-wvrA0eoxaee6sq2-mb0WoqUCPzpRjg@mail.gmail.com>
在 7/2/25 10:09 AM, Chen-Yu Tsai 写道:
>>> +/* EMAC PHY Interface Type */
>>> +#define SYSCON_EPIT BIT(2) /* 1: RGMII, 0: MII */
>>> +#define SYSCON_ETCS_MASK GENMASK(1, 0)
>>> +#define SYSCON_ETCS_MII 0x0
>>> +#define SYSCON_ETCS_EXT_GMII 0x1
>>> +#define SYSCON_ETCS_INT_GMII 0x2
>>> +
>>> +#define MASK_TO_VAL(mask) ((mask) >> (__builtin_ffsll(mask) - 1))
>>> +
>>> +static int sun55i_gmac200_set_syscon(struct device *dev,
>>> + struct plat_stmmacenet_data *plat)
>>> +{
>>> + struct device_node *node = dev->of_node;
>>> + struct regmap *regmap;
>>> + u32 val, reg = 0;
>>> +
>>> + regmap = syscon_regmap_lookup_by_phandle(node, "syscon");
>>> + if (IS_ERR(regmap))
>>> + return dev_err_probe(dev, PTR_ERR(regmap), "Unable to map syscon\n");
>>> +
>> -----------
>>> + if (!of_property_read_u32(node, "allwinner,tx-delay-ps", &val)) {
>>> + if (val % 100) {
>>> + dev_err(dev, "tx-delay must be a multiple of 100\n");
>>> + return -EINVAL;
>>> + }
>>> + val /= 100;
>>> + dev_dbg(dev, "set tx-delay to %x\n", val);
>>> + if (val > MASK_TO_VAL(SYSCON_ETXDC_MASK))
>>> + return dev_err_probe(dev, -EINVAL,
>>> + "Invalid TX clock delay: %d\n",
>>> + val);
>>> +
>>> + reg |= FIELD_PREP(SYSCON_ETXDC_MASK, val);
>>> + }
>>> +
>>> + if (!of_property_read_u32(node, "allwinner,rx-delay-ps", &val)) {
>>> + if (val % 100) {
>>> + dev_err(dev, "rx-delay must be a multiple of 100\n");
>>> + return -EINVAL;
>>> + }
>>> + val /= 100;
>>> + dev_dbg(dev, "set rx-delay to %x\n", val);
>>> + if (val > MASK_TO_VAL(SYSCON_ERXDC_MASK))
>>> + return dev_err_probe(dev, -EINVAL,
>>> + "Invalid RX clock delay: %d\n",
>>> + val);
>>> +
>>> + reg |= FIELD_PREP(SYSCON_ERXDC_MASK, val);
>>> + }
>> ------------
>> These two parts of the code are highly similar.
>> Can you construct a separate function?
> As in, have a function that sets up either TX or RX delay based on
> a parameter? That also means constructing the property name on the
> fly or using ternary ops. And chopping up the log messages.
>
> I don't think this makes it easier to read. And chopping up the log
> message makes it harder to grep.
I've looked through other driver codes, and it seems they
are all written this way, so let's keep it as it is for now.
Thanks,
Yanteng
next prev parent reply other threads:[~2025-07-07 3:03 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-01 16:57 [PATCH RFT net-next 0/10] net: stmmac: Add support for Allwinner A523 GMAC200 Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 01/10] dt-bindings: net: sun8i-emac: Add A523 GMAC200 compatible Chen-Yu Tsai
2025-07-08 16:16 ` Rob Herring (Arm)
2025-07-01 16:57 ` [PATCH RFT net-next 02/10] net: stmmac: Add support for Allwinner A523 GMAC200 Chen-Yu Tsai
2025-07-02 1:59 ` Yanteng Si
2025-07-02 2:09 ` Chen-Yu Tsai
2025-07-07 3:02 ` Yanteng Si [this message]
2025-07-03 8:19 ` Andrew Lunn
2025-07-07 3:06 ` Chen-Yu Tsai
2025-07-07 5:59 ` Andrew Lunn
2025-07-01 16:57 ` [PATCH RFT net-next 03/10] soc: sunxi: sram: add entry for a523 Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 04/10] soc: sunxi: sram: register regmap as syscon Chen-Yu Tsai
2025-07-02 5:01 ` Chen-Yu Tsai
2025-07-05 9:45 ` Per Larsson
2025-07-01 16:57 ` [PATCH RFT net-next 05/10] arm64: dts: allwinner: a523: Add GMAC200 ethernet controller Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 06/10] arm64: dts: allwinner: a527: cubie-a5e: Add ethernet PHY reset setting Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 07/10] arm64: dts: allwinner: a527: cubie-a5e: Enable second Ethernet port Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 08/10] arm64: dts: allwinner: t527: avaota-a1: Add ethernet PHY reset setting Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 09/10] arm64: dts: allwinner: t527: avaota-a1: enable second Ethernet port Chen-Yu Tsai
2025-07-01 16:57 ` [PATCH RFT net-next 10/10] arm64: dts: allwinner: t527: orangepi-4a: Enable " Chen-Yu Tsai
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=ef56c834-0e8c-410c-ada0-dc2b8be34cab@linux.dev \
--to=si.yanteng@linux.dev \
--cc=andre.przywara@arm.com \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=jernej@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=samuel@sholland.org \
--cc=wens@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).