Commit aa05fe67 authored by Vadim Fedorenko's avatar Vadim Fedorenko Committed by Jakub Kicinski
Browse files

ptp: ocp: Improve PCIe delay estimation



The PCIe bus can be pretty busy during boot and probe function can
see excessive delays. Let's find the minimal value out of several
tests and use it as estimated value.

Signed-off-by: default avatarVadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/20240905140028.560454-1-vadim.fedorenko@linux.dev


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9a95eedc
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -1558,22 +1558,24 @@ ptp_ocp_watchdog(struct timer_list *t)
static void
ptp_ocp_estimate_pci_timing(struct ptp_ocp *bp)
{
	ktime_t start, end;
	ktime_t delay;
	ktime_t start, end, delay = U64_MAX;
	u32 ctrl;
	int i;

	for (i = 0; i < 3; i++) {
		ctrl = ioread32(&bp->reg->ctrl);
		ctrl = OCP_CTRL_READ_TIME_REQ | OCP_CTRL_ENABLE;

		iowrite32(ctrl, &bp->reg->ctrl);

	start = ktime_get_ns();
		start = ktime_get_raw_ns();

		ctrl = ioread32(&bp->reg->ctrl);

	end = ktime_get_ns();
		end = ktime_get_raw_ns();

	delay = end - start;
		delay = min(delay, end - start);
	}
	bp->ts_window_adjust = (delay >> 5) * 3;
}