On Thu, 2008-04-10 at 15:44 +0200, Arnd Bergmann wrote: > On Tuesday 08 April 2008, Jerone Young wrote: > > +static struct sleep_mode modes[] = { > > + { .name = "wait", .entry = &ppc44x_idle }, > > + { .name = "spin", .entry = NULL }, > > +}; > > + > > +int __init ppc44x_idle_init(void) > > +{ > > + void *func = modes[current_mode].entry; > > + ppc_md.power_save = func; > > + return 0; > > +} > > + > > +arch_initcall(ppc44x_idle_init); > > + > > +static int __init idle_param(char *p) > > +{ > > + int i; > > + > > + for (i = 0; i < ARRAY_SIZE(modes); i++) { > > + if (!strcmp(modes[i].name, p)) { > > + current_mode = i; > > + break; > > + } > > + } > > + > > + return 0; > > +} > > + > > +early_param("idle", idle_param); > > ok, sorry to steal the show again, now that everyone seems to be happy > with the current code, but isn't this equivalent to the simple
Well it could be this simple. But the current code leaves a lot more room to add different type waits or spins if need be (if they are ever needed ... though none off the top of my head at the moment)...but it does allow you to create another wait state for whatever reason a lot easier. So I really don't think this needs to change. Unless everyone really feels that it just has to be. > > static int __init idle_param(char *p) > { > if (!strcmp(modes[i].name, "spin")) > ppc_md.power_save = NULL; > } > early_param("idle", idle_param); > > if you statically initialize the ppc_md.power_save function to ppc44x_idle > in the platform setup files? The idea is to not statically initialize ppc_md.power_save to ppc44x_idle in each platform setup file. > > Arnd <>< _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev