Re: [PATCH v8 net-next 09/11] net: ethernet: ti: am65-cpsw-qos: Add Frame Preemption MAC Merge support

From: Vladimir Oltean
Date: Thu Dec 14 2023 - 06:05:07 EST


On Wed, Dec 13, 2023 at 01:07:19PM +0200, Roger Quadros wrote:
> - Fix am65_cpsw_iet_get_verify_timeout_ms() to default to timeout for
> 1G link if link is inactive.
> +
> +static int am65_cpsw_set_mm(struct net_device *ndev, struct ethtool_mm_cfg *cfg,
> + struct netlink_ext_ack *extack)
> +{
> + val = readl(port->port_base + AM65_CPSW_PN_REG_IET_CTRL);
> + if (cfg->verify_enabled) {
> + val &= ~AM65_CPSW_PN_IET_MAC_DISABLEVERIFY;
> + /* Reset Verify state machine. Verification won't start here.
> + * Verification will be done once link-up.
> + */
> + val |= AM65_CPSW_PN_IET_MAC_LINKFAIL;
> + } else {
> + val |= AM65_CPSW_PN_IET_MAC_DISABLEVERIFY;
> + /* Clear LINKFAIL to allow verify/response packets */
> + val &= ~AM65_CPSW_PN_IET_MAC_LINKFAIL;
> + }
> +
> + val &= ~AM65_CPSW_PN_IET_MAC_MAC_ADDFRAGSIZE_MASK;
> + val |= AM65_CPSW_PN_IET_MAC_SET_ADDFRAGSIZE(add_frag_size);
> + writel(val, port->port_base + AM65_CPSW_PN_REG_IET_CTRL);
> +
> + /* verify_timeout_count can only be set at valid link */
> + if (cfg->verify_time > 0)
> + port->qos.iet.verify_time_ms = cfg->verify_time;
> + else
> + port->qos.iet.verify_time_ms = 10;

I don't think I understand what the check is for? The netlink policy for
ETHTOOL_A_MM_VERIFY_TIME limits the range between 1 ms and 128 ms.
How can it be 0?

> +
> + /* enable/disable preemption based on link status */
> + am65_cpsw_iet_commit_preemptible_tcs(port);
> +
> + return 0;
> +}