net: stmmac: use correct PPS capture input index
authorJohannes Zink <j.zink@pengutronix.de>
Wed, 18 Oct 2023 07:09:54 +0000 (09:09 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 19 Oct 2023 11:01:33 +0000 (13:01 +0200)
The stmmac supports up to 4 auxiliary snapshots that can be enabled by
setting the appropriate bits in the PTP_ACR bitfield.

Previously as of commit f4da56529da6 ("net: stmmac: Add support for
external trigger timestamping") instead of setting the bits, a fixed
value was written to this bitfield instead of passing the appropriate
bitmask.

Now the correct bit is set according to the ptp_clock_request.extts_index
passed as a parameter to stmmac_enable().

Signed-off-by: Johannes Zink <j.zink@pengutronix.de>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h

index f110b91af9bd6060e20abd4c3ec78b183d8cd59b..300e673d2a36fd31eacc6bbbf7f8c9853fba689c 100644 (file)
@@ -201,12 +201,11 @@ static int stmmac_enable(struct ptp_clock_info *ptp,
                acr_value &= ~PTP_ACR_MASK;
                if (on) {
                        /* Enable External snapshot trigger */
-                       acr_value |= priv->plat->ext_snapshot_num;
+                       acr_value |= PTP_ACR_ATSEN(rq->extts.index);
                        acr_value |= PTP_ACR_ATSFC;
                }
                netdev_dbg(priv->dev, "Auxiliary Snapshot %d %s.\n",
-                          priv->plat->ext_snapshot_num >> PTP_ACR_ATSEN_SHIFT,
-                          on ? "enabled" : "disabled");
+                          rq->extts.index, on ? "enabled" : "disabled");
                writel(acr_value, ptpaddr + PTP_ACR);
                mutex_unlock(&priv->aux_ts_lock);
                /* wait for auxts fifo clear to finish */
index d1fe4b46f162954ea7ee19d78222392f5b6fe7da..fce3fba2ffd240db3864bf19bafff932397c79d0 100644 (file)
@@ -79,7 +79,7 @@
 #define        PTP_ACR_ATSEN1          BIT(5)  /* Auxiliary Snapshot 1 Enable */
 #define        PTP_ACR_ATSEN2          BIT(6)  /* Auxiliary Snapshot 2 Enable */
 #define        PTP_ACR_ATSEN3          BIT(7)  /* Auxiliary Snapshot 3 Enable */
-#define        PTP_ACR_ATSEN_SHIFT     5       /* Auxiliary Snapshot shift */
+#define        PTP_ACR_ATSEN(index)    (PTP_ACR_ATSEN0 << (index))
 #define        PTP_ACR_MASK            GENMASK(7, 4)   /* Aux Snapshot Mask */
 #define        PMC_ART_VALUE0          0x01    /* PMC_ART[15:0] timer value */
 #define        PMC_ART_VALUE1          0x02    /* PMC_ART[31:16] timer value */