> +static void sophgo_dwmac_fix_mac_speed(void *priv, unsigned int speed, unsigned int mode) > +{ > + struct sophgo_dwmac *dwmac = priv; > + unsigned long rate; > + int ret; > + > + switch (speed) { > + case SPEED_1000: > + rate = 125000000; > + break; > + case SPEED_100: > + rate = 25000000; > + break; > + case SPEED_10: > + rate = 2500000; > + break; > + default: > + dev_err(dwmac->dev, "invalid speed %u\n", speed); > + break; > + } There was a helper added recently for this, since it appears repeatedly in drivers. > + ret = regmap_set_bits(regmap, args[0], DWMAC_SG2044_FLAG_USE_RX_DELAY); > + if (ret) > + return dev_err_probe(&pdev->dev, ret, > + "failed to set the phy rx delay\n"); Please could you explain what this delay is for. Is it the 2ns RGMII delay? Andrew