On 06/14/2012 09:49 AM, Namhyung Kim wrote: > Hi, > > On Fri, 8 Jun 2012 18:02:42 +0200, Daniel Lezcano wrote: >> We have the state index passed as parameter to the 'enter' function. >> Most of the drivers assign their 'enter' functions several times in >> the cpuidle_state structure, as we have the index, we can delegate >> to the driver to handle their own callback array. >> >> That will have the benefit of removing multiple lines of code in the >> different drivers. >> >> In order to smoothly modify the driver, the 'enter' function are in >> the driver structure and in the cpuidle state structure. That will >> let the time to modify the different drivers one by one. >> So the 'cpuidle_enter' function checks if the 'enter' callback is >> assigned in the driver structure and use it, otherwise it invokes >> the 'enter' assigned to the cpuidle_state. >> >> Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> >> --- >> drivers/cpuidle/cpuidle.c | 4 +++- >> include/linux/cpuidle.h | 1 + >> 2 files changed, 4 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c >> index d90519c..155dee7 100644 >> --- a/drivers/cpuidle/cpuidle.c >> +++ b/drivers/cpuidle/cpuidle.c >> @@ -46,7 +46,9 @@ static inline int cpuidle_enter(struct cpuidle_device *dev, >> struct cpuidle_driver *drv, int index) >> { >> struct cpuidle_state *target_state = &drv->states[index]; >> - return target_state->enter(dev, drv, index); >> + >> + return drv->enter(dev, drv, index) ? drv->enter(dev, drv, index) : > > Do you mean: > drv->enter ? drv->enter(dev, drv, index) : > ? > > Thanks, > Namhyung Right :) -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog