Commit 31ab09b4 authored by Dipen Patel's avatar Dipen Patel Committed by Thierry Reding
Browse files

drivers: Add hardware timestamp engine (HTE) subsystem



Some devices can timestamp system lines/signals/Buses in real-time
using the hardware counter or other hardware means which can give
finer granularity and help avoid jitter introduced by software
timestamping. To utilize such functionality, this patchset creates
HTE subsystem where devices can register themselves as providers so
that the consumers devices can request specific line from the
providers. The patch also adds compilation support in Makefile and
menu options in Kconfig.

The provider does following:
- Registers chip with the framework.
- Provides translation hook to convert logical line id.
- Provides enable/disable, request/release callbacks.
- Pushes timestamp data to HTE subsystem.

The consumer does following:
- Initializes line attribute.
- Gets HTE timestamp descriptor.
- Requests timestamp functionality.
- Puts HTE timestamp descriptor.

Signed-off-by: default avatarDipen Patel <dipenp@nvidia.com>
Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 6406ac63
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -239,4 +239,6 @@ source "drivers/most/Kconfig"

source "drivers/peci/Kconfig"

source "drivers/hte/Kconfig"

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -188,3 +188,4 @@ obj-$(CONFIG_INTERCONNECT) += interconnect/
obj-$(CONFIG_COUNTER)		+= counter/
obj-$(CONFIG_MOST)		+= most/
obj-$(CONFIG_PECI)		+= peci/
obj-$(CONFIG_HTE)		+= hte/

drivers/hte/Kconfig

0 → 100644
+14 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
menuconfig HTE
	bool "Hardware Timestamping Engine (HTE) Support"
	help
	  Hardware Timestamping Engine (HTE) Support.

	  Some devices provide a hardware timestamping engine which can
	  timestamp certain device lines/signals in realtime. It comes with a
	  benefit for the applications needing accurate timestamping event with
	  less jitter. This framework provides a generic interface to such HTE
	  providers and consumer devices.

	  If unsure, say no.

drivers/hte/Makefile

0 → 100644
+2 −0
Original line number Diff line number Diff line
obj-$(CONFIG_HTE)		+= hte.o

drivers/hte/hte.c

0 → 100644
+947 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading