Commit 4c09a4ce authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Paolo Abeni
Browse files

ptp: Use ktime_get_clock_ts64() for timestamping



The inlined ptp_read_system_[pre|post]ts() switch cases expand to a copious
amount of text in drivers, e.g. ~500 bytes in e1000e. Adding auxiliary
clock support to the inlines would increase it further.

Replace the inline switch case with a call to ktime_get_clock_ts64(), which
reduces the code size in drivers and allows to access auxiliary clocks once
they are enabled in the IOCTL parameter filter.

No functional change.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarVadim Fedorenko <vadim.fedorenko@linux.dev>
Acked-by: default avatarJohn Stultz <jstultz@google.com>
Link: https://patch.msgid.link/20250701132628.426168092@linutronix.de


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 4f38a6db
Loading
Loading
Loading
Loading
+4 −30
Original line number Diff line number Diff line
@@ -477,40 +477,14 @@ static inline ktime_t ptp_convert_timestamp(const ktime_t *hwtstamp,

static inline void ptp_read_system_prets(struct ptp_system_timestamp *sts)
{
	if (sts) {
		switch (sts->clockid) {
		case CLOCK_REALTIME:
			ktime_get_real_ts64(&sts->pre_ts);
			break;
		case CLOCK_MONOTONIC:
			ktime_get_ts64(&sts->pre_ts);
			break;
		case CLOCK_MONOTONIC_RAW:
			ktime_get_raw_ts64(&sts->pre_ts);
			break;
		default:
			break;
		}
	}
	if (sts)
		ktime_get_clock_ts64(sts->clockid, &sts->pre_ts);
}

static inline void ptp_read_system_postts(struct ptp_system_timestamp *sts)
{
	if (sts) {
		switch (sts->clockid) {
		case CLOCK_REALTIME:
			ktime_get_real_ts64(&sts->post_ts);
			break;
		case CLOCK_MONOTONIC:
			ktime_get_ts64(&sts->post_ts);
			break;
		case CLOCK_MONOTONIC_RAW:
			ktime_get_raw_ts64(&sts->post_ts);
			break;
		default:
			break;
		}
	}
	if (sts)
		ktime_get_clock_ts64(sts->clockid, &sts->post_ts);
}

#endif