Re: [PATCH 07/15] hwmon, fam15h_power: add ratio of Tsample to the PTSC period

Guenter Roeck
2015-08-27T14:54:36Z

On 08/27/2015 01:07 AM, Huang Rui wrote:
> This patch adds a member (cpu_pwr_sample_ratio) of fam15h_power_data,
> that represents the ratio of compute unit power accumulator sample
> period to the PTSC counter period.
>
> Tsample: compute unit power accumulator sample period
> Tref: the performance timestamp counter period
> PTSC: performance timestamp counter
>
> Signed-off-by: Huang Rui <ray.huang@amd.com>

Applied to hwmon-next (after fixing spelling error 'detemine').

Thanks,
Guenter

> ---
> drivers/hwmon/fam15h_power.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
> index 55b25ef..d6efcf6 100644
> --- a/drivers/hwmon/fam15h_power.c
> +++ b/drivers/hwmon/fam15h_power.c
> @@ -48,6 +48,7 @@ struct fam15h_power_data {
> unsigned int tdp_to_watts;
> unsigned int base_tdp;
> unsigned int processor_pwr_watts;
> + unsigned int cpu_pwr_sample_ratio;
> };
>
> static ssize_t show_power(struct device *dev,
> @@ -201,7 +202,7 @@ static int fam15h_power_resume(struct pci_dev *pdev)
> static void fam15h_power_init_data(struct pci_dev *f4,
> struct fam15h_power_data *data)
> {
> - u32 val;
> + u32 val, eax, ebx, ecx, edx;
> u64 tmp;
>
> pci_read_config_dword(f4, REG_PROCESSOR_TDP, &val);
> @@ -222,6 +223,19 @@ static void fam15h_power_init_data(struct pci_dev *f4,
>
> /* convert to microWatt */
> data->processor_pwr_watts = (tmp * 15625) >> 10;
> +
> + cpuid(0x80000007, &eax, &ebx, &ecx, &edx);
> +
> + /* CPUID Fn8000_0007:EDX[12] indicates to support accumulated power */
> + if (!(edx & BIT(12)))
> + return;
> +
> + /*
> + * detemine the ratio of the compute unit power accumulator
> + * sample period to the PTSC counter period by executing CPUID
> + * Fn8000_0007:ECX
> + */
> + data->cpu_pwr_sample_ratio = ecx;
> }
>
> static int fam15h_power_probe(struct pci_dev *pdev,
>