|
@@ -56,46 +56,47 @@ enum clock_event_nofitiers {
|
|
|
|
|
|
/**
|
|
|
* struct clock_event_device - clock event device descriptor
|
|
|
- * @name: ptr to clock event name
|
|
|
- * @features: features
|
|
|
+ * @event_handler: Assigned by the framework to be called by the low
|
|
|
+ * level handler of the event source
|
|
|
+ * @set_next_event: set next event function
|
|
|
+ * @next_event: local storage for the next event in oneshot mode
|
|
|
* @max_delta_ns: maximum delta value in ns
|
|
|
* @min_delta_ns: minimum delta value in ns
|
|
|
* @mult: nanosecond to cycles multiplier
|
|
|
* @shift: nanoseconds to cycles divisor (power of two)
|
|
|
+ * @mode: operating mode assigned by the management code
|
|
|
+ * @features: features
|
|
|
+ * @retries: number of forced programming retries
|
|
|
+ * @set_mode: set mode function
|
|
|
+ * @broadcast: function to broadcast events
|
|
|
+ * @name: ptr to clock event name
|
|
|
* @rating: variable to rate clock event devices
|
|
|
* @irq: IRQ number (only for non CPU local devices)
|
|
|
* @cpumask: cpumask to indicate for which CPUs this device works
|
|
|
- * @set_next_event: set next event function
|
|
|
- * @set_mode: set mode function
|
|
|
- * @event_handler: Assigned by the framework to be called by the low
|
|
|
- * level handler of the event source
|
|
|
- * @broadcast: function to broadcast events
|
|
|
* @list: list head for the management code
|
|
|
- * @mode: operating mode assigned by the management code
|
|
|
- * @next_event: local storage for the next event in oneshot mode
|
|
|
- * @retries: number of forced programming retries
|
|
|
*/
|
|
|
struct clock_event_device {
|
|
|
- const char *name;
|
|
|
- unsigned int features;
|
|
|
+ void (*event_handler)(struct clock_event_device *);
|
|
|
+ int (*set_next_event)(unsigned long evt,
|
|
|
+ struct clock_event_device *);
|
|
|
+ ktime_t next_event;
|
|
|
u64 max_delta_ns;
|
|
|
u64 min_delta_ns;
|
|
|
u32 mult;
|
|
|
u32 shift;
|
|
|
+ enum clock_event_mode mode;
|
|
|
+ unsigned int features;
|
|
|
+ unsigned long retries;
|
|
|
+
|
|
|
+ void (*broadcast)(const struct cpumask *mask);
|
|
|
+ void (*set_mode)(enum clock_event_mode mode,
|
|
|
+ struct clock_event_device *);
|
|
|
+ const char *name;
|
|
|
int rating;
|
|
|
int irq;
|
|
|
const struct cpumask *cpumask;
|
|
|
- int (*set_next_event)(unsigned long evt,
|
|
|
- struct clock_event_device *);
|
|
|
- void (*set_mode)(enum clock_event_mode mode,
|
|
|
- struct clock_event_device *);
|
|
|
- void (*event_handler)(struct clock_event_device *);
|
|
|
- void (*broadcast)(const struct cpumask *mask);
|
|
|
struct list_head list;
|
|
|
- enum clock_event_mode mode;
|
|
|
- ktime_t next_event;
|
|
|
- unsigned long retries;
|
|
|
-};
|
|
|
+} ____cacheline_aligned;
|
|
|
|
|
|
/*
|
|
|
* Calculate a multiplication factor for scaled math, which is used to convert
|