On Sun, Feb 26, 2012 at 8:47 PM, Robert Lee rob.lee@linaro.org wrote:
+/**
- cpuidle_enter_wrap - performing timekeeping and irq around enter function
- @dev: pointer to a valid cpuidle_device object
- @drv: pointer to a valid cpuidle_driver object
- @index: index of the target cpuidle state.
- */
+static inline int cpuidle_wrap_enter(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index,
- int (*enter)(struct cpuidle_device *dev,
- struct cpuidle_driver *drv, int index))
+{
- ktime_t time_start, time_end;
- s64 diff;
- time_start = ktime_get();
- index = enter(dev, drv, index);
- time_end = ktime_get();
- local_irq_enable();
- diff = ktime_to_us(ktime_sub(time_end, time_start));
- if (diff > INT_MAX)
- diff = INT_MAX;
- dev->last_residency = (int) diff;
- return index;
+}
Any reason that this code is in the header? Why not in cpuidle.c?
Regards, Mike