diff options
Diffstat (limited to 'include/linux/clocksource.h')
| -rw-r--r-- | include/linux/clocksource.h | 27 | 
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 0ad8b550bb4b..d35b677b08fe 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h @@ -21,6 +21,7 @@  #include <asm/div64.h>  #include <asm/io.h> +struct clocksource_base;  struct clocksource;  struct module; @@ -50,6 +51,7 @@ struct module;   *			multiplication   * @name:		Pointer to clocksource name   * @list:		List head for registration (internal) + * @freq_khz:		Clocksource frequency in khz.   * @rating:		Rating value for selection (higher is better)   *			To avoid rating inflation the following   *			list should give you a guide as to how @@ -70,6 +72,8 @@ struct module;   *			validate the clocksource from which the snapshot was   *			taken.   * @flags:		Flags describing special properties + * @base:		Hardware abstraction for clock on which a clocksource + *			is based   * @enable:		Optional function to enable the clocksource   * @disable:		Optional function to disable the clocksource   * @suspend:		Optional suspend function for the clocksource @@ -107,10 +111,12 @@ struct clocksource {  	u64			max_cycles;  	const char		*name;  	struct list_head	list; +	u32			freq_khz;  	int			rating;  	enum clocksource_ids	id;  	enum vdso_clock_mode	vdso_clock_mode;  	unsigned long		flags; +	struct clocksource_base *base;  	int			(*enable)(struct clocksource *cs);  	void			(*disable)(struct clocksource *cs); @@ -306,4 +312,25 @@ static inline unsigned int clocksource_get_max_watchdog_retry(void)  void clocksource_verify_percpu(struct clocksource *cs); +/** + * struct clocksource_base - hardware abstraction for clock on which a clocksource + *			is based + * @id:			Defaults to CSID_GENERIC. The id value is used for conversion + *			functions which require that the current clocksource is based + *			on a clocksource_base with a particular ID in certain snapshot + *			functions to allow callers to validate the clocksource from + *			which the snapshot was taken. + * @freq_khz:		Nominal frequency of the base clock in kHz + * @offset:		Offset between the base clock and the clocksource + * @numerator:		Numerator of the clock ratio between base clock and the clocksource + * @denominator:	Denominator of the clock ratio between base clock and the clocksource + */ +struct clocksource_base { +	enum clocksource_ids	id; +	u32			freq_khz; +	u64			offset; +	u32			numerator; +	u32			denominator; +}; +  #endif /* _LINUX_CLOCKSOURCE_H */  |