Messages in this thread | | | From | "Ghannam, Yazen" <> | Subject | RE: [PATCH 5/6] acpi/cppc: Add support for optional CPPC registers | Date | Fri, 29 Mar 2019 20:18:04 +0000 |
| |
> -----Original Message----- > From: linux-acpi-owner@vger.kernel.org <linux-acpi-owner@vger.kernel.org> On Behalf Of Pandruvada, Srinivas > Sent: Wednesday, March 27, 2019 10:48 AM > To: linux-kernel@vger.kernel.org; devel@acpica.org; Natarajan, Janakarajan <Janakarajan.Natarajan@amd.com>; linux- > acpi@vger.kernel.org; linux-pm@vger.kernel.org > Cc: Ghannam, Yazen <Yazen.Ghannam@amd.com>; lenb@kernel.org; viresh.kumar@linaro.org; Moore, Robert > <robert.moore@intel.com>; Schmauss, Erik <erik.schmauss@intel.com>; rjw@rjwysocki.net > Subject: Re: [PATCH 5/6] acpi/cppc: Add support for optional CPPC registers > > On Fri, 2019-03-22 at 20:26 +0000, Natarajan, Janakarajan wrote: > > From: Yazen Ghannam <Yazen.Ghannam@amd.com> > > > > Newer AMD processors support a subset of the optional CPPC registers. > > Create show, store and helper routines for supported CPPC registers. > > > > Signed-off-by: Yazen Ghannam <Yazen.Ghannam@amd.com> > > [ carved out into a patch, cleaned up, productized ] > > Signed-off-by: Janakarajan Natarajan <Janakarajan.Natarajan@amd.com> > > > > [..] > > > + /* desired_perf is the only mandatory value in perf_ctrls */ > > + if (cpc_read(cpu, desired_reg, &desired)) > > + ret = -EFAULT; > > + > > + if (CPC_SUPPORTED(max_reg) && cpc_read(cpu, max_reg, &max)) > > + ret = -EFAULT; > > + > We should create and use different macro other than CPPC_SUPPORTED. > CPC_SUPPORTED doesn't validate the correctness of object type for a > field. For example "Maximum Performance Register" can only be buffer > not integer. In this way invalid field definitions can be ignored. >
So create something like "CPPC_SUPPORTED_BUFFER" for buffer-only registers?
And then buffer/integer registers will continue to use "CPPC_SUPPORTED".
These seem to be the only two cases at this time. Is this okay?
Thanks, Yazen
> > > + if (CPC_SUPPORTED(min_reg) && cpc_read(cpu, min_reg, &min)) > > + ret = -EFAULT; > > + > > + if (CPC_SUPPORTED(energy_reg) && cpc_read(cpu, energy_reg, > > &energy)) > > + ret = -EFAULT; > > + > > + if (CPC_SUPPORTED(auto_sel_enable_reg) && > > + cpc_read(cpu, auto_sel_enable_reg, &auto_sel_enable)) > > + ret = -EFAULT; > > + > Here it is fine to use CPC_SUPPORTED as the "Autonomous Selection > Enable" can be both integer and buffer. > > Thanks, > Srinivas
| |