Messages in this thread | | | Date | Sun, 10 Oct 2021 17:18:16 +0200 | From | Andrew Lunn <> | Subject | Re: [net-next PATCH v4 06/13] net: dsa: qca8k: move rgmii delay detection to phylink mac_config |
| |
> > -{ > > - struct device_node *port_dn; > > - phy_interface_t mode; > > - struct dsa_port *dp; > > - u32 val; > > - > > - /* CPU port is already checked */ > > - dp = dsa_to_port(priv->ds, 0); > > - > > - port_dn = dp->dn; > > - > > - /* Check if port 0 is set to the correct type */ > > - of_get_phy_mode(port_dn, &mode); > > - if (mode != PHY_INTERFACE_MODE_RGMII_ID && > > - mode != PHY_INTERFACE_MODE_RGMII_RXID && > > - mode != PHY_INTERFACE_MODE_RGMII_TXID) { > > - return 0; > > - } > > - > > - switch (mode) { > > - case PHY_INTERFACE_MODE_RGMII_ID: > > - case PHY_INTERFACE_MODE_RGMII_RXID: > > Also, since you touch this area. > There have been tons of discussions on this topic, but I believe that > your interpretation of the RGMII delays is wrong. > Basically a MAC should not apply delays based on the phy-mode string (so > it should treat "rgmii" same as "rgmii-id"), but based on the value of > "rx-internal-delay-ps" and "tx-internal-delay-ps". > The phy-mode is for a PHY to use.
There is one exception to this, when the MAC is taking the place of a PHY, i.e. CPU port. You need delays added somewhere, and the mv88e6xxx driver will look at the phy-mode in this case. And i think in general, a DSA driver needs this for the CPU port.
Andrew
| |