| .. | .. | 
|---|
| 62 | 62 |  /* Broadcasting support */ | 
|---|
| 63 | 63 |  # ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST | 
|---|
| 64 | 64 |  extern int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu); | 
|---|
| 65 |  | -extern void tick_install_broadcast_device(struct clock_event_device *dev);  | 
|---|
 | 65 | +extern void tick_install_broadcast_device(struct clock_event_device *dev, int cpu);  | 
|---|
| 66 | 66 |  extern int tick_is_broadcast_device(struct clock_event_device *dev); | 
|---|
| 67 |  | -extern void tick_shutdown_broadcast(unsigned int cpu);  | 
|---|
| 68 | 67 |  extern void tick_suspend_broadcast(void); | 
|---|
| 69 | 68 |  extern void tick_resume_broadcast(void); | 
|---|
| 70 | 69 |  extern bool tick_resume_check_broadcast(void); | 
|---|
| .. | .. | 
|---|
| 73 | 72 |  extern int tick_broadcast_update_freq(struct clock_event_device *dev, u32 freq); | 
|---|
| 74 | 73 |  extern struct tick_device *tick_get_broadcast_device(void); | 
|---|
| 75 | 74 |  extern struct cpumask *tick_get_broadcast_mask(void); | 
|---|
 | 75 | +extern const struct clock_event_device *tick_get_wakeup_device(int cpu);  | 
|---|
| 76 | 76 |  # else /* !CONFIG_GENERIC_CLOCKEVENTS_BROADCAST: */ | 
|---|
| 77 |  | -static inline void tick_install_broadcast_device(struct clock_event_device *dev) { }  | 
|---|
 | 77 | +static inline void tick_install_broadcast_device(struct clock_event_device *dev, int cpu) { }  | 
|---|
| 78 | 78 |  static inline int tick_is_broadcast_device(struct clock_event_device *dev) { return 0; } | 
|---|
| 79 | 79 |  static inline int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu) { return 0; } | 
|---|
| 80 | 80 |  static inline void tick_do_periodic_broadcast(struct clock_event_device *d) { } | 
|---|
| 81 |  | -static inline void tick_shutdown_broadcast(unsigned int cpu) { }  | 
|---|
| 82 | 81 |  static inline void tick_suspend_broadcast(void) { } | 
|---|
| 83 | 82 |  static inline void tick_resume_broadcast(void) { } | 
|---|
| 84 | 83 |  static inline bool tick_resume_check_broadcast(void) { return false; } | 
|---|
| .. | .. | 
|---|
| 128 | 127 |  /* Functions related to oneshot broadcasting */ | 
|---|
| 129 | 128 |  #if defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) && defined(CONFIG_TICK_ONESHOT) | 
|---|
| 130 | 129 |  extern void tick_broadcast_switch_to_oneshot(void); | 
|---|
| 131 |  | -extern void tick_shutdown_broadcast_oneshot(unsigned int cpu);  | 
|---|
| 132 | 130 |  extern int tick_broadcast_oneshot_active(void); | 
|---|
| 133 | 131 |  extern void tick_check_oneshot_broadcast_this_cpu(void); | 
|---|
| 134 | 132 |  bool tick_broadcast_oneshot_available(void); | 
|---|
| 135 | 133 |  extern struct cpumask *tick_get_broadcast_oneshot_mask(void); | 
|---|
| 136 | 134 |  #else /* !(BROADCAST && ONESHOT): */ | 
|---|
| 137 | 135 |  static inline void tick_broadcast_switch_to_oneshot(void) { } | 
|---|
| 138 |  | -static inline void tick_shutdown_broadcast_oneshot(unsigned int cpu) { }  | 
|---|
| 139 | 136 |  static inline int tick_broadcast_oneshot_active(void) { return 0; } | 
|---|
| 140 | 137 |  static inline void tick_check_oneshot_broadcast_this_cpu(void) { } | 
|---|
| 141 | 138 |  static inline bool tick_broadcast_oneshot_available(void) { return tick_oneshot_possible(); } | 
|---|
| 142 | 139 |  #endif /* !(BROADCAST && ONESHOT) */ | 
|---|
 | 140 | +  | 
|---|
 | 141 | +#if defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) && defined(CONFIG_HOTPLUG_CPU)  | 
|---|
 | 142 | +extern void tick_broadcast_offline(unsigned int cpu);  | 
|---|
 | 143 | +#else  | 
|---|
 | 144 | +static inline void tick_broadcast_offline(unsigned int cpu) { }  | 
|---|
 | 145 | +#endif  | 
|---|
| 143 | 146 |   | 
|---|
| 144 | 147 |  /* NO_HZ_FULL internal */ | 
|---|
| 145 | 148 |  #ifdef CONFIG_NO_HZ_FULL | 
|---|
| .. | .. | 
|---|
| 163 | 166 |   | 
|---|
| 164 | 167 |  extern u64 get_next_timer_interrupt(unsigned long basej, u64 basem); | 
|---|
| 165 | 168 |  void timer_clear_idle(void); | 
|---|
 | 169 | +  | 
|---|
 | 170 | +void clock_was_set(void);  | 
|---|
 | 171 | +void clock_was_set_delayed(void);  | 
|---|