From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50027) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3uEY-0008QE-2Z for qemu-devel@nongnu.org; Thu, 16 Jan 2014 16:12:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W3uEP-0005xp-2X for qemu-devel@nongnu.org; Thu, 16 Jan 2014 16:12:13 -0500 Received: from e33.co.us.ibm.com ([32.97.110.151]:43559) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3uEO-0005xl-Sv for qemu-devel@nongnu.org; Thu, 16 Jan 2014 16:12:05 -0500 Received: from /spool/local by e33.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 16 Jan 2014 14:01:54 -0700 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Roth In-Reply-To: <52AE6ED5.9090803@ozlabs.ru> References: <1386282785-466-1-git-send-email-mdroth@linux.vnet.ibm.com> <1386282785-466-6-git-send-email-mdroth@linux.vnet.ibm.com> <52AE6ED5.9090803@ozlabs.ru> Message-ID: <20140116210150.32002.62004@loki> Date: Thu, 16 Jan 2014 15:01:50 -0600 Subject: Re: [Qemu-devel] [PATCH v2 05/14] spapr_pci: add get/set-power-level RTAS interfaces List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy , qemu-devel@nongnu.org Cc: agraf@suse.de, ncmike@ncultra.org, paulus@samba.org, tyreld@linux.vnet.ibm.com, nfont@linux.vnet.ibm.com, qemu-ppc@nongnu.org Quoting Alexey Kardashevskiy (2013-12-15 21:09:09) > On 12/06/2013 09:32 AM, Michael Roth wrote: > > From: Nathan Fontenot > > = > > Signed-off-by: Nathan Fontenot > > Signed-off-by: Michael Roth > > --- > > hw/ppc/spapr_pci.c | 22 ++++++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > = > > diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c > > index 1046ec8..8df44a3 100644 > > --- a/hw/ppc/spapr_pci.c > > +++ b/hw/ppc/spapr_pci.c > > @@ -488,6 +488,26 @@ static void rtas_set_indicator(PowerPCCPU *cpu, sP= APREnvironment *spapr, > > rtas_st(rets, 0, RTAS_OUT_SUCCESS); > > } > > = > > +static void rtas_set_power_level(PowerPCCPU *cpu, sPAPREnvironment *sp= apr, > > + uint32_t token, uint32_t nargs, > > + target_ulong args, uint32_t nret, > > + target_ulong rets) > > +{ > > + uint32_t power_lvl =3D rtas_ld(args, 1); > > + rtas_st(rets, 0, RTAS_OUT_SUCCESS); > > + rtas_st(rets, 1, power_lvl); > > +} > > + > > +static void rtas_get_power_level(PowerPCCPU *cpu, sPAPREnvironment *sp= apr, > > + uint32_t token, uint32_t nargs, > > + target_ulong args, uint32_t nret, > > + target_ulong rets) > > +{ > > + /* return SUCCESS with a power level of 100 */ > > + rtas_st(rets, 0, RTAS_OUT_SUCCESS); > > + rtas_st(rets, 1, 100); > > +} > > + > = > The PAPR spec says that rtas_set_power_level() returns "Actual_level The > power level actually set" but rtas_get_power_level() always returns 100 > (full power). > = > Is this inconsistency here for a reason? We advertise all PHB power-domains as being a "live insert connector", -1, which is considered invalid to call rtas_set_power_level with. So I think it should work either way. Will remove the inconsistency and re-test to confirm. > = > = > > static int pci_spapr_swizzle(int slot, int pin) > > { > > return (slot + pin) % PCI_NUM_PINS; > > @@ -1051,6 +1071,8 @@ void spapr_pci_rtas_init(void) > > spapr_rtas_register("ibm,change-msi", rtas_ibm_change_msi); > > } > > spapr_rtas_register("set-indicator", rtas_set_indicator); > > + spapr_rtas_register("set-power-level", rtas_set_power_level); > > + spapr_rtas_register("get-power-level", rtas_get_power_level); > > } > > = > > static void spapr_pci_register_types(void) > > = > = > = > -- = > Alexey