qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 05/14] spapr_pci: add get/set-power-level RTA


From: Michael Roth
Subject: Re: [Qemu-devel] [PATCH v2 05/14] spapr_pci: add get/set-power-level RTAS interfaces
Date: Thu, 16 Jan 2014 15:01:50 -0600
User-agent: alot/0.3.4

Quoting Alexey Kardashevskiy (2013-12-15 21:09:09)
> On 12/06/2013 09:32 AM, Michael Roth wrote:
> > From: Nathan Fontenot <address@hidden>
> > 
> > Signed-off-by: Nathan Fontenot <address@hidden>
> > Signed-off-by: Michael Roth <address@hidden>
> > ---
> >  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?

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]