From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Date: Thu, 10 Apr 2008 13:44:43 +0000 Subject: Re: [kvm-ppc-devel] [PATCH] [v5] Add idle wait support for 44x Message-Id: <200804101544.44457.arnd@arndb.de> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linuxppc-dev@ozlabs.org Cc: kvm-ppc-devel@lists.sourceforge.net On Tuesday 08 April 2008, Jerone Young wrote: > +static struct sleep_mode modes[] =3D { > +=A0=A0=A0=A0=A0=A0=A0{ .name =3D "wait", .entry =3D &ppc44x_idle }, > +=A0=A0=A0=A0=A0=A0=A0{ .name =3D "spin", .entry =3D NULL }, > +}; > + > +int __init ppc44x_idle_init(void) > +{ > +=A0=A0=A0=A0=A0=A0=A0void *func =3D modes[current_mode].entry; > +=A0=A0=A0=A0=A0=A0=A0ppc_md.power_save =3D func; > +=A0=A0=A0=A0=A0=A0=A0return 0; > +} > + > +arch_initcall(ppc44x_idle_init); > + > +static int __init idle_param(char *p) > +{=20 > +=A0=A0=A0=A0=A0=A0=A0int i; > + > +=A0=A0=A0=A0=A0=A0=A0for (i =3D 0; i < ARRAY_SIZE(modes); i++) { > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!strcmp(modes[i].name, = p)) { > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0cur= rent_mode =3D i; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0bre= ak; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0} > +=A0=A0=A0=A0=A0=A0=A0} > + > +=A0=A0=A0=A0=A0=A0=A0return 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 =3D 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 <>< ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference=20 Don't miss this year's exciting event. There's still time to save $100.=20 Use priority code J8TL2D2.=20 http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/java= one _______________________________________________ kvm-ppc-devel mailing list kvm-ppc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-ppc-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.179]) by ozlabs.org (Postfix) with ESMTP id 386A3DE62B for ; Thu, 10 Apr 2008 23:50:25 +1000 (EST) From: Arnd Bergmann To: linuxppc-dev@ozlabs.org Subject: Re: [PATCH] [v5] Add idle wait support for 44x platforms Date: Thu, 10 Apr 2008 15:44:43 +0200 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Message-Id: <200804101544.44457.arnd@arndb.de> Cc: kvm-ppc-devel@lists.sourceforge.net List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Tuesday 08 April 2008, Jerone Young wrote: > +static struct sleep_mode modes[] =3D { > +=A0=A0=A0=A0=A0=A0=A0{ .name =3D "wait", .entry =3D &ppc44x_idle }, > +=A0=A0=A0=A0=A0=A0=A0{ .name =3D "spin", .entry =3D NULL }, > +}; > + > +int __init ppc44x_idle_init(void) > +{ > +=A0=A0=A0=A0=A0=A0=A0void *func =3D modes[current_mode].entry; > +=A0=A0=A0=A0=A0=A0=A0ppc_md.power_save =3D func; > +=A0=A0=A0=A0=A0=A0=A0return 0; > +} > + > +arch_initcall(ppc44x_idle_init); > + > +static int __init idle_param(char *p) > +{=20 > +=A0=A0=A0=A0=A0=A0=A0int i; > + > +=A0=A0=A0=A0=A0=A0=A0for (i =3D 0; i < ARRAY_SIZE(modes); i++) { > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!strcmp(modes[i].name, = p)) { > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0cur= rent_mode =3D i; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0bre= ak; > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0} > +=A0=A0=A0=A0=A0=A0=A0} > + > +=A0=A0=A0=A0=A0=A0=A0return 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 =3D 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 <><