[PATCH net-next v2 3/3] net: stmmac: Add glue layer for Spacemit K3 SoC
Inochi Amaoto
inochiama at gmail.com
Wed Jan 21 14:37:12 PST 2026
On Wed, Jan 21, 2026 at 02:45:24PM +0100, Andrew Lunn wrote:
> On Wed, Jan 21, 2026 at 12:05:30PM +0000, Russell King (Oracle) wrote:
> > On Wed, Jan 21, 2026 at 03:13:11PM +0800, Inochi Amaoto wrote:
> > > + mask = RGMII_RX_DLINE_STEP | RGMII_TX_DLINE_CODE | RGMII_TX_DLINE_EN |
> > > + RGMII_TX_DLINE_STEP | RGMII_RX_DLINE_CODE | RGMII_RX_DLINE_EN;
> > > + val = FIELD_PREP(RGMII_TX_DLINE_STEP, tx_config) |
> > > + FIELD_PREP(RGMII_TX_DLINE_CODE, tx_code) | RGMII_TX_DLINE_EN |
> > > + FIELD_PREP(RGMII_RX_DLINE_STEP, rx_config) |
> > > + FIELD_PREP(RGMII_RX_DLINE_CODE, rx_code) | RGMII_RX_DLINE_EN;
> >
> > So your reply where you basically stated that all the RGMII.*DLINE.*
> > constants here should be the same was nonsense. How can we trust your
> > replies?
> >
> > > +static int spacemit_dwmac_fix_delay(struct plat_stmmacenet_data *plat_dat,
> > > + struct regmap *apmu,
> > > + unsigned int dline_offset,
> > > + unsigned int tx_delay, unsigned int rx_delay)
> > > +{
> > > + bool mac_rxid = rx_delay != 0;
> > > + bool mac_txid = tx_delay != 0;
> > > + unsigned int rx_config = 0;
> > > + unsigned int tx_config = 0;
> > > + int rx_code;
> > > + int tx_code;
> > > +
> > > + plat_dat->phy_interface = phy_fix_phy_mode_for_mac_delays(plat_dat->phy_interface,
> > > + mac_txid,
> > > + mac_rxid);
> >
> > Maybe Andrew can confirm, but this function was to fix up existing
> > broken DT, and shouldn't be used by brand new drivers.
>
> Hi Russell, thanks for pointing this out.
>
> This function should not be used in this case. MAC drivers in general
> only add small delays, in order to do fine tuning. The PHY adds the
> 2ns delay. There are however some MACs who cannot disable their 2ns
> delay, or have historically been broken, and add 2ns delay. In such
> cases, the phy_interface passed to the PHY needs masking, to indicate
> the PHY should not add the 2ns delays. That is what this function
> does.
>
> Please don't call it. Pass phy_interface as is to the PHY.
>
Great, I will remove this call and pass the phy_interface.
Regards,
Inochi
More information about the linux-riscv
mailing list