Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer updates from Thomas Gleixner:
"The timer department delivers this time:
- Support for cross clock domain timestamps in the core code plus a
first user. That allows more precise timestamping for PTP and
later for audio and other peripherals.
The ptp/e1000e patches have been acked by the relevant maintainers
and are carried in the timer tree to avoid merge ordering issues.
- Support for unregistering the current clocksource watchdog. That
lifts a limitation for switching clocksources which has been there
from day 1
- The usual pile of fixes and updates to the core and the drivers.
Nothing outstanding and exciting"
* 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
time/timekeeping: Work around false positive GCC warning
e1000e: Adds hardware supported cross timestamp on e1000e nic
ptp: Add PTP_SYS_OFFSET_PRECISE for driver crosstimestamping
x86/tsc: Always Running Timer (ART) correlated clocksource
hrtimer: Revert CLOCK_MONOTONIC_RAW support
time: Add history to cross timestamp interface supporting slower devices
time: Add driver cross timestamp interface for higher precision time synchronization
time: Remove duplicated code in ktime_get_raw_and_real()
time: Add timekeeping snapshot code capturing system time and counter
time: Add cycles to nanoseconds translation
jiffies: Use CLOCKSOURCE_MASK instead of constant
clocksource: Introduce clocksource_freq2mult()
clockevents/drivers/exynos_mct: Implement ->set_state_oneshot_stopped()
clockevents/drivers/arm_global_timer: Implement ->set_state_oneshot_stopped()
clockevents/drivers/arm_arch_timer: Implement ->set_state_oneshot_stopped()
clocksource/drivers/arm_global_timer: Register delay timer
clocksource/drivers/lpc32xx: Support timer-based ARM delay
clocksource/drivers/lpc32xx: Support periodic mode
clocksource/drivers/lpc32xx: Don't use the prescaler counter for clockevents
clocksource/drivers/rockchip: Add err handle for rk_timer_init
...
This commit is contained in:
@@ -51,7 +51,9 @@ struct ptp_clock_caps {
|
||||
int n_per_out; /* Number of programmable periodic signals. */
|
||||
int pps; /* Whether the clock supports a PPS callback. */
|
||||
int n_pins; /* Number of input/output pins. */
|
||||
int rsv[14]; /* Reserved for future use. */
|
||||
/* Whether the clock supports precise system-device cross timestamps */
|
||||
int cross_timestamping;
|
||||
int rsv[13]; /* Reserved for future use. */
|
||||
};
|
||||
|
||||
struct ptp_extts_request {
|
||||
@@ -81,6 +83,13 @@ struct ptp_sys_offset {
|
||||
struct ptp_clock_time ts[2 * PTP_MAX_SAMPLES + 1];
|
||||
};
|
||||
|
||||
struct ptp_sys_offset_precise {
|
||||
struct ptp_clock_time device;
|
||||
struct ptp_clock_time sys_realtime;
|
||||
struct ptp_clock_time sys_monoraw;
|
||||
unsigned int rsv[4]; /* Reserved for future use. */
|
||||
};
|
||||
|
||||
enum ptp_pin_function {
|
||||
PTP_PF_NONE,
|
||||
PTP_PF_EXTTS,
|
||||
@@ -124,6 +133,8 @@ struct ptp_pin_desc {
|
||||
#define PTP_SYS_OFFSET _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset)
|
||||
#define PTP_PIN_GETFUNC _IOWR(PTP_CLK_MAGIC, 6, struct ptp_pin_desc)
|
||||
#define PTP_PIN_SETFUNC _IOW(PTP_CLK_MAGIC, 7, struct ptp_pin_desc)
|
||||
#define PTP_SYS_OFFSET_PRECISE \
|
||||
_IOWR(PTP_CLK_MAGIC, 8, struct ptp_sys_offset_precise)
|
||||
|
||||
struct ptp_extts_event {
|
||||
struct ptp_clock_time t; /* Time event occured. */
|
||||
|
||||
Reference in New Issue
Block a user