summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Lukwinski <zbigniew.lukwinski@linux.intel.com>2021-02-25 01:53:53 +0300
committerJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>2021-10-20 01:10:38 +0300
commita143d9a3849e5ca445fc81765328f0190ed708bf (patch)
treedb1026773301103d6ca9e1191818a2084e840e6d
parentf0d3d1f57ec93c1acd390137b7a2cd704f54a770 (diff)
downloadlinux-a143d9a3849e5ca445fc81765328f0190ed708bf.tar.xz
hwmon: peci: TDP used for max DRAM power
This commit replaces 'Maximal DRAM Power' (MSR@61Ch - MSR_DRAM_POWER_INFO_HIGH) with the 'Spec DRAM Power'('TDP') (MSR@61Ch - MSR_DRAM_POWER_INFO_LOW) while maximal DRAM power calculation. This is to be compliant with SPS ME Node Manager. In case package power it already works with the same way - TDP is taken as maximal power. Signed-off-by: Zbigniew Lukwinski <zbigniew.lukwinski@linux.intel.com>
-rw-r--r--drivers/hwmon/peci-dimmpower.c8
-rw-r--r--drivers/hwmon/peci-hwmon.h26
2 files changed, 4 insertions, 30 deletions
diff --git a/drivers/hwmon/peci-dimmpower.c b/drivers/hwmon/peci-dimmpower.c
index 69c9a142b0d5..7c4eb86a1600 100644
--- a/drivers/hwmon/peci-dimmpower.c
+++ b/drivers/hwmon/peci-dimmpower.c
@@ -245,7 +245,7 @@ peci_dimmpower_read_max_power(void *ctx, struct peci_sensor_conf *sensor_conf,
struct peci_sensor_data *sensor_data)
{
struct peci_dimmpower *priv = (struct peci_dimmpower *)ctx;
- union peci_dram_power_info_high power_info;
+ union peci_dram_power_info_low power_info;
ulong jif;
int ret;
@@ -263,19 +263,19 @@ peci_dimmpower_read_max_power(void *ctx, struct peci_sensor_conf *sensor_conf,
}
jif = jiffies;
- ret = peci_pcs_read(priv->mgr, PECI_MBX_INDEX_DDR_PWR_INFO_HIGH,
+ ret = peci_pcs_read(priv->mgr, PECI_MBX_INDEX_DDR_PWR_INFO_LOW,
PECI_PCS_PARAM_ZERO, &power_info.value);
if (ret) {
dev_dbg(priv->dev, "not able to read power info\n");
return ret;
}
- sensor_data->value = peci_pcs_xn_to_munits(power_info.bits.max_pwr,
+ sensor_data->value = peci_pcs_xn_to_munits(power_info.bits.tdp,
priv->units.bits.pwr_unit);
peci_sensor_mark_updated_with_time(sensor_data, jif);
dev_dbg(priv->dev, "raw max power %u, unit %u, max power %dmW\n",
- power_info.bits.max_pwr, priv->units.bits.pwr_unit,
+ power_info.bits.tdp, priv->units.bits.pwr_unit,
sensor_data->value);
return ret;
diff --git a/drivers/hwmon/peci-hwmon.h b/drivers/hwmon/peci-hwmon.h
index 63ff624d475a..e8d5b63d0a79 100644
--- a/drivers/hwmon/peci-hwmon.h
+++ b/drivers/hwmon/peci-hwmon.h
@@ -282,32 +282,6 @@ static_assert(sizeof(union peci_package_power_limit_low) ==
PECI_PCS_REGISTER_SIZE);
/**
- * union peci_dram_power_info_high - DRAM Power Info high PCS
- * This PCS coresponds to the MSR@61Ch - MSR_DRAM_POWER_INFO, bits [63:32]
- * Accessing over PECI: PCS=0x23, Parameter=0x0000
- * @value: PCS register value
- * @bits: PCS register bits
- * @max_pwr: Bits [14:0] - Maximal DRAM Power
- * @rsvd0: Bits [15:15]
- * @max_win: Bits [22:16] - Maximal Time Window
- * @rsvd1: Bits [30:23]
- * @lock: Bits [31:31] - Locking bit
- */
-union peci_dram_power_info_high {
- u32 value;
- struct {
- u32 max_pwr : 15;
- u32 rsvd0 : 1;
- u32 max_win : 7;
- u32 rsvd1 : 8;
- u32 lock : 1;
- } __attribute__((__packed__)) bits;
-} __attribute__((__packed__));
-
-static_assert(sizeof(union peci_dram_power_info_high) ==
- PECI_PCS_REGISTER_SIZE);
-
-/**
* union peci_dram_power_info_low - DRAM Power Info low PCS
* This PCS coresponds to the MSR@61Ch - MSR_DRAM_POWER_INFO, bits [31:0]
* Accessing over PECI: PCS=0x24, Parameter=0x0000