]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: fec: fix the PTP periodic output sysfs interface
authorBuday Csaba <buday.csaba@prolan.hu>
Tue, 24 Mar 2026 13:32:30 +0000 (14:32 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 27 Mar 2026 03:10:15 +0000 (20:10 -0700)
When the PPS channel configuration was implemented, the channel
index for the periodic outputs was configured as the hardware
channel number.

The sysfs interface uses a logical channel index, and rejects numbers
greater than `n_per_out` (see period_store() in ptp_sysfs.c).
That property was left at 1, since the driver implements channel
selection, not simultaneous operation of multiple PTP hardware timer
channels.

A second check in fec_ptp_enable() returns -EOPNOTSUPP when the two
channel numbers disagree, making channels 1..3 unusable from sysfs.

Fix by removing this redundant check in the FEC PTP driver.

Fixes: 566c2d83887f ("net: fec: make PPS channel configurable")
Signed-off-by: Buday Csaba <buday.csaba@prolan.hu>
Link: https://patch.msgid.link/8ec2afe88423c2231f9cf8044d212ce57846670e.1774359059.git.buday.csaba@prolan.hu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/fec_ptp.c

index 4b7bad9a485df2a8056de6ee1155c4eede4f3ff6..56801c2009d59a9ee23546b85be3dd5d2eec3c45 100644 (file)
@@ -545,9 +545,6 @@ static int fec_ptp_enable(struct ptp_clock_info *ptp,
                if (rq->perout.flags)
                        return -EOPNOTSUPP;
 
-               if (rq->perout.index != fep->pps_channel)
-                       return -EOPNOTSUPP;
-
                period.tv_sec = rq->perout.period.sec;
                period.tv_nsec = rq->perout.period.nsec;
                period_ns = timespec64_to_ns(&period);