[PATCH] [v5] Add idle wait support for 44x platforms
Arnd Bergmann
arnd at arndb.de
Thu Apr 10 23:44:43 EST 2008
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 simpler
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?
Arnd <><
More information about the Linuxppc-dev
mailing list