[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <228e871e-a5c7-4570-b672-a97ac3db90c5@linux.dev>
Date: Wed, 27 Aug 2025 13:43:31 +0100
From: Vadim Fedorenko <vadim.fedorenko@...ux.dev>
To: weishangjuan@...incomputing.com, devicetree@...r.kernel.org,
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, linux-arm-kernel@...ts.infradead.org,
mcoquelin.stm32@...il.com, alexandre.torgue@...s.st.com,
yong.liang.choong@...ux.intel.com, vladimir.oltean@....com,
rmk+kernel@...linux.org.uk, faizal.abdul.rahim@...ux.intel.com,
prabhakar.mahadev-lad.rj@...renesas.com, inochiama@...il.com,
jan.petrous@....nxp.com, jszhang@...nel.org, p.zabel@...gutronix.de,
boon.khai.ng@...era.com, 0x1207@...il.com, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-stm32@...md-mailman.stormreply.com
Cc: ningyu@...incomputing.com, linmin@...incomputing.com,
lizhi2@...incomputing.com
Subject: Re: [PATCH v4 2/2] ethernet: eswin: Add eic7700 ethernet driver
On 27/08/2025 09:14, weishangjuan@...incomputing.com wrote:
> From: Shangjuan Wei <weishangjuan@...incomputing.com>
>
> Add Ethernet controller support for Eswin's eic7700 SoC. The driver
> provides management and control of Ethernet signals for the eiC7700
> series chips.
>
> Signed-off-by: Zhi Li <lizhi2@...incomputing.com>
> Signed-off-by: Shangjuan Wei <weishangjuan@...incomputing.com>
> ---
[...]
> +/**
> + * eic7700_apply_delay - Update TX or RX delay bits in delay parameter value.
> + * @delay_ps: Delay in picoseconds (capped at 12.7ns).
> + * @reg: Pointer to register value to modify.
> + * @is_rx: True for RX delay (bits 30:24), false for TX delay (bits 14:8).
> + *
> + * Converts delay to 0.1ns units, caps at 0x7F, and sets appropriate bits.
> + * Only RX or TX bits are updated; other bits remain unchanged.
> + */
> +static inline void eic7700_apply_delay(u32 delay_ps, u32 *reg, bool is_rx)
inlining functions in .c files is discouraged in netdev, let the
compiler decide inlining
> +{
> + if (!reg)
> + return;
please, avoid defensive programming. with this check you also mixing
code and variables..
> +
> + u32 val = min(delay_ps / 100, EIC7700_MAX_DELAY_UNIT);
> +> + if (is_rx) {
> + *reg &= ~EIC7700_ETH_RX_ADJ_DELAY;
> + *reg |= (val << 24) & EIC7700_ETH_RX_ADJ_DELAY;
> + } else {
> + *reg &= ~EIC7700_ETH_TX_ADJ_DELAY;
> + *reg |= (val << 8) & EIC7700_ETH_TX_ADJ_DELAY;
these 2 assignments should be converted to FIELD_PREP()
> + }
> +}
> +
Powered by blists - more mailing lists