Commit fa758702 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'hwmon-for-linus' of git://github.com/groeck/linux

* 'hwmon-for-linus' of git://github.com/groeck/linux:
  hwmon: (coretemp) Initialize tmin
  hwmon: (pmbus) Fix low limit temperature alarms
parents f1fcd9f0 cd5bd3df
...@@ -601,7 +601,12 @@ static int create_core_data(struct platform_data *pdata, ...@@ -601,7 +601,12 @@ static int create_core_data(struct platform_data *pdata,
err = rdmsr_safe_on_cpu(cpu, tdata->intrpt_reg, &eax, &edx); err = rdmsr_safe_on_cpu(cpu, tdata->intrpt_reg, &eax, &edx);
if (!err) { if (!err) {
tdata->attr_size += MAX_THRESH_ATTRS; tdata->attr_size += MAX_THRESH_ATTRS;
tdata->ttarget = tdata->tjmax - ((eax >> 16) & 0x7f) * 1000; tdata->tmin = tdata->tjmax -
((eax & THERM_MASK_THRESHOLD0) >>
THERM_SHIFT_THRESHOLD0) * 1000;
tdata->ttarget = tdata->tjmax -
((eax & THERM_MASK_THRESHOLD1) >>
THERM_SHIFT_THRESHOLD1) * 1000;
} }
pdata->core_data[attr_no] = tdata; pdata->core_data[attr_no] = tdata;
......
...@@ -978,6 +978,8 @@ static void pmbus_find_max_attr(struct i2c_client *client, ...@@ -978,6 +978,8 @@ static void pmbus_find_max_attr(struct i2c_client *client,
struct pmbus_limit_attr { struct pmbus_limit_attr {
u16 reg; /* Limit register */ u16 reg; /* Limit register */
bool update; /* True if register needs updates */ bool update; /* True if register needs updates */
bool low; /* True if low limit; for limits with compare
functions only */
const char *attr; /* Attribute name */ const char *attr; /* Attribute name */
const char *alarm; /* Alarm attribute name */ const char *alarm; /* Alarm attribute name */
u32 sbit; /* Alarm attribute status bit */ u32 sbit; /* Alarm attribute status bit */
...@@ -1029,7 +1031,8 @@ static bool pmbus_add_limit_attrs(struct i2c_client *client, ...@@ -1029,7 +1031,8 @@ static bool pmbus_add_limit_attrs(struct i2c_client *client,
if (attr->compare) { if (attr->compare) {
pmbus_add_boolean_cmp(data, name, pmbus_add_boolean_cmp(data, name,
l->alarm, index, l->alarm, index,
cbase, cindex, l->low ? cindex : cbase,
l->low ? cbase : cindex,
attr->sbase + page, l->sbit); attr->sbase + page, l->sbit);
} else { } else {
pmbus_add_boolean_reg(data, name, pmbus_add_boolean_reg(data, name,
...@@ -1366,11 +1369,13 @@ static const struct pmbus_sensor_attr power_attributes[] = { ...@@ -1366,11 +1369,13 @@ static const struct pmbus_sensor_attr power_attributes[] = {
static const struct pmbus_limit_attr temp_limit_attrs[] = { static const struct pmbus_limit_attr temp_limit_attrs[] = {
{ {
.reg = PMBUS_UT_WARN_LIMIT, .reg = PMBUS_UT_WARN_LIMIT,
.low = true,
.attr = "min", .attr = "min",
.alarm = "min_alarm", .alarm = "min_alarm",
.sbit = PB_TEMP_UT_WARNING, .sbit = PB_TEMP_UT_WARNING,
}, { }, {
.reg = PMBUS_UT_FAULT_LIMIT, .reg = PMBUS_UT_FAULT_LIMIT,
.low = true,
.attr = "lcrit", .attr = "lcrit",
.alarm = "lcrit_alarm", .alarm = "lcrit_alarm",
.sbit = PB_TEMP_UT_FAULT, .sbit = PB_TEMP_UT_FAULT,
...@@ -1399,11 +1404,13 @@ static const struct pmbus_limit_attr temp_limit_attrs[] = { ...@@ -1399,11 +1404,13 @@ static const struct pmbus_limit_attr temp_limit_attrs[] = {
static const struct pmbus_limit_attr temp_limit_attrs23[] = { static const struct pmbus_limit_attr temp_limit_attrs23[] = {
{ {
.reg = PMBUS_UT_WARN_LIMIT, .reg = PMBUS_UT_WARN_LIMIT,
.low = true,
.attr = "min", .attr = "min",
.alarm = "min_alarm", .alarm = "min_alarm",
.sbit = PB_TEMP_UT_WARNING, .sbit = PB_TEMP_UT_WARNING,
}, { }, {
.reg = PMBUS_UT_FAULT_LIMIT, .reg = PMBUS_UT_FAULT_LIMIT,
.low = true,
.attr = "lcrit", .attr = "lcrit",
.alarm = "lcrit_alarm", .alarm = "lcrit_alarm",
.sbit = PB_TEMP_UT_FAULT, .sbit = PB_TEMP_UT_FAULT,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment