diff options
Diffstat (limited to 'include/linux/clockchips.h')
| -rw-r--r-- | include/linux/clockchips.h | 44 | 
1 files changed, 28 insertions, 16 deletions
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h index 66346521cb6..963d7143138 100644 --- a/include/linux/clockchips.h +++ b/include/linux/clockchips.h @@ -8,6 +8,20 @@  #ifndef _LINUX_CLOCKCHIPS_H  #define _LINUX_CLOCKCHIPS_H +/* Clock event notification values */ +enum clock_event_nofitiers { +	CLOCK_EVT_NOTIFY_ADD, +	CLOCK_EVT_NOTIFY_BROADCAST_ON, +	CLOCK_EVT_NOTIFY_BROADCAST_OFF, +	CLOCK_EVT_NOTIFY_BROADCAST_FORCE, +	CLOCK_EVT_NOTIFY_BROADCAST_ENTER, +	CLOCK_EVT_NOTIFY_BROADCAST_EXIT, +	CLOCK_EVT_NOTIFY_SUSPEND, +	CLOCK_EVT_NOTIFY_RESUME, +	CLOCK_EVT_NOTIFY_CPU_DYING, +	CLOCK_EVT_NOTIFY_CPU_DEAD, +}; +  #ifdef CONFIG_GENERIC_CLOCKEVENTS_BUILD  #include <linux/clocksource.h> @@ -26,20 +40,6 @@ enum clock_event_mode {  	CLOCK_EVT_MODE_RESUME,  }; -/* Clock event notification values */ -enum clock_event_nofitiers { -	CLOCK_EVT_NOTIFY_ADD, -	CLOCK_EVT_NOTIFY_BROADCAST_ON, -	CLOCK_EVT_NOTIFY_BROADCAST_OFF, -	CLOCK_EVT_NOTIFY_BROADCAST_FORCE, -	CLOCK_EVT_NOTIFY_BROADCAST_ENTER, -	CLOCK_EVT_NOTIFY_BROADCAST_EXIT, -	CLOCK_EVT_NOTIFY_SUSPEND, -	CLOCK_EVT_NOTIFY_RESUME, -	CLOCK_EVT_NOTIFY_CPU_DYING, -	CLOCK_EVT_NOTIFY_CPU_DEAD, -}; -  /*   * Clock event features   */ @@ -55,6 +55,11 @@ enum clock_event_nofitiers {  #define CLOCK_EVT_FEAT_C3STOP		0x000008  #define CLOCK_EVT_FEAT_DUMMY		0x000010 +/* + * Core shall set the interrupt affinity dynamically in broadcast mode + */ +#define CLOCK_EVT_FEAT_DYNIRQ		0x000020 +  /**   * struct clock_event_device - clock event device descriptor   * @event_handler:	Assigned by the framework to be called by the low @@ -170,10 +175,16 @@ extern void tick_broadcast(const struct cpumask *mask);  extern int tick_receive_broadcast(void);  #endif +#if defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) && defined(CONFIG_TICK_ONESHOT) +extern int tick_check_broadcast_expired(void); +#else +static inline int tick_check_broadcast_expired(void) { return 0; } +#endif +  #ifdef CONFIG_GENERIC_CLOCKEVENTS  extern void clockevents_notify(unsigned long reason, void *arg);  #else -# define clockevents_notify(reason, arg) do { } while (0) +static inline void clockevents_notify(unsigned long reason, void *arg) {}  #endif  #else /* CONFIG_GENERIC_CLOCKEVENTS_BUILD */ @@ -181,7 +192,8 @@ extern void clockevents_notify(unsigned long reason, void *arg);  static inline void clockevents_suspend(void) {}  static inline void clockevents_resume(void) {} -#define clockevents_notify(reason, arg) do { } while (0) +static inline void clockevents_notify(unsigned long reason, void *arg) {} +static inline int tick_check_broadcast_expired(void) { return 0; }  #endif  |