Re: [PATCH v8 net-next 09/11] net: ethernet: ti: am65-cpsw-qos: Add Frame Preemption MAC Merge support
From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: 2023-12-14 11:05:07
Also in:
lkml
From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: 2023-12-14 11:05:07
Also in:
lkml
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; +}