Commit 9a060d0f authored by Wei Fang's avatar Wei Fang Committed by Paolo Abeni
Browse files

net: fec: do not register PPS event for PEROUT



There are currently two situations that can trigger the PTP interrupt,
one is the PPS event, the other is the PEROUT event. However, the irq
handler fec_pps_interrupt() does not check the irq event type and
directly registers a PPS event into the system, but the event may be
a PEROUT event. This is incorrect because PEROUT is an output signal,
while PPS is the input of the kernel PPS system. Therefore, add a check
for the event type, if pps_enable is true, it means that the current
event is a PPS event, and then the PPS event is registered.

Fixes: 350749b9 ("net: fec: Add support for periodic output signal of PPS")
Signed-off-by: default avatarWei Fang <wei.fang@nxp.com>
Link: https://patch.msgid.link/20251125085210.1094306-5-wei.fang@nxp.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent c0a1f3d7
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -718,8 +718,11 @@ static irqreturn_t fec_pps_interrupt(int irq, void *dev_id)
		fep->next_counter = (fep->next_counter + fep->reload_period) &
				fep->cc.mask;

		if (fep->pps_enable) {
			event.type = PTP_CLOCK_PPS;
			ptp_clock_event(fep->ptp_clock, &event);
		}

		return IRQ_HANDLED;
	}