Patch "net: stmmac: Assign configured channel value to EXTTS event" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: stmmac: Assign configured channel value to EXTTS event

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-stmmac-assign-configured-channel-value-to-extts-.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 4b7c95037db2f85b81287a7e8a693ed7f2d35d0b
Author: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
Date:   Tue Jun 18 09:38:21 2024 +0200

    net: stmmac: Assign configured channel value to EXTTS event
    
    [ Upstream commit 8851346912a1fa33e7a5966fe51f07313b274627 ]
    
    Assign the configured channel value to the EXTTS event in the timestamp
    interrupt handler. Without assigning the correct channel, applications
    like ts2phc will refuse to accept the event, resulting in errors such
    as:
    ...
    ts2phc[656.834]: config item end1.ts2phc.pin_index is 0
    ts2phc[656.834]: config item end1.ts2phc.channel is 3
    ts2phc[656.834]: config item end1.ts2phc.extts_polarity is 2
    ts2phc[656.834]: config item end1.ts2phc.extts_correction is 0
    ...
    ts2phc[656.862]: extts on unexpected channel
    ts2phc[658.141]: extts on unexpected channel
    ts2phc[659.140]: extts on unexpected channel
    
    Fixes: f4da56529da60 ("net: stmmac: Add support for external trigger timestamping")
    Cc: stable@xxxxxxxxxxxxxxx
    Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20240618073821.619751-1-o.rempel@xxxxxxxxxxxxxx
    Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c
index 2c6245b2281ca..0d3d7874f0fc6 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c
@@ -176,6 +176,7 @@ static void timestamp_interrupt(struct stmmac_priv *priv)
 {
 	u32 num_snapshot, ts_status, tsync_int;
 	struct ptp_clock_event event;
+	u32 acr_value, channel;
 	unsigned long flags;
 	u64 ptp_time;
 	int i;
@@ -201,12 +202,15 @@ static void timestamp_interrupt(struct stmmac_priv *priv)
 	num_snapshot = (ts_status & GMAC_TIMESTAMP_ATSNS_MASK) >>
 		       GMAC_TIMESTAMP_ATSNS_SHIFT;
 
+	acr_value = readl(priv->ptpaddr + PTP_ACR);
+	channel = ilog2(FIELD_GET(PTP_ACR_MASK, acr_value));
+
 	for (i = 0; i < num_snapshot; i++) {
 		spin_lock_irqsave(&priv->ptp_lock, flags);
 		get_ptptime(priv->ptpaddr, &ptp_time);
 		spin_unlock_irqrestore(&priv->ptp_lock, flags);
 		event.type = PTP_CLOCK_EXTTS;
-		event.index = 0;
+		event.index = channel;
 		event.timestamp = ptp_time;
 		ptp_clock_event(priv->ptp_clock, &event);
 	}




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux