From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsOYe-0006QO-Hf for qemu-devel@nongnu.org; Sun, 15 Dec 2013 22:09:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsOYX-0002IC-7n for qemu-devel@nongnu.org; Sun, 15 Dec 2013 22:09:24 -0500 Received: from mail-pb0-f41.google.com ([209.85.160.41]:44216) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsOYX-0002I4-1h for qemu-devel@nongnu.org; Sun, 15 Dec 2013 22:09:17 -0500 Received: by mail-pb0-f41.google.com with SMTP id jt11so4885813pbb.14 for ; Sun, 15 Dec 2013 19:09:16 -0800 (PST) Message-ID: <52AE6ED5.9090803@ozlabs.ru> Date: Mon, 16 Dec 2013 14:09:09 +1100 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1386282785-466-1-git-send-email-mdroth@linux.vnet.ibm.com> <1386282785-466-6-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1386282785-466-6-git-send-email-mdroth@linux.vnet.ibm.com> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit 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: Michael Roth , 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 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, sPAPREnvironment *spapr, > rtas_st(rets, 0, RTAS_OUT_SUCCESS); > } > > +static void rtas_set_power_level(PowerPCCPU *cpu, sPAPREnvironment *spapr, > + uint32_t token, uint32_t nargs, > + target_ulong args, uint32_t nret, > + target_ulong rets) > +{ > + uint32_t power_lvl = 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 *spapr, > + 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? > 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