diff options
| -rw-r--r-- | drivers/hwmon/k8temp.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/hwmon/k8temp.c b/drivers/hwmon/k8temp.c index ca56f2e26fd1..a6381bc9189c 100644 --- a/drivers/hwmon/k8temp.c +++ b/drivers/hwmon/k8temp.c | |||
| @@ -48,6 +48,7 @@ struct k8temp_data { | |||
| 48 | /* registers values */ | 48 | /* registers values */ |
| 49 | u8 sensorsp; /* sensor presence bits - SEL_CORE & SEL_PLACE */ | 49 | u8 sensorsp; /* sensor presence bits - SEL_CORE & SEL_PLACE */ |
| 50 | u32 temp[2][2]; /* core, place */ | 50 | u32 temp[2][2]; /* core, place */ |
| 51 | u8 swap_core_select; /* meaning of SEL_CORE is inverted */ | ||
| 51 | }; | 52 | }; |
| 52 | 53 | ||
| 53 | static struct k8temp_data *k8temp_update_device(struct device *dev) | 54 | static struct k8temp_data *k8temp_update_device(struct device *dev) |
| @@ -117,6 +118,9 @@ static ssize_t show_temp(struct device *dev, | |||
| 117 | int place = attr->index; | 118 | int place = attr->index; |
| 118 | struct k8temp_data *data = k8temp_update_device(dev); | 119 | struct k8temp_data *data = k8temp_update_device(dev); |
| 119 | 120 | ||
| 121 | if (data->swap_core_select) | ||
| 122 | core = core ? 0 : 1; | ||
| 123 | |||
| 120 | return sprintf(buf, "%d\n", | 124 | return sprintf(buf, "%d\n", |
| 121 | TEMP_FROM_REG(data->temp[core][place])); | 125 | TEMP_FROM_REG(data->temp[core][place])); |
| 122 | } | 126 | } |
| @@ -162,7 +166,12 @@ static int __devinit k8temp_probe(struct pci_dev *pdev, | |||
| 162 | goto exit_free; | 166 | goto exit_free; |
| 163 | } | 167 | } |
| 164 | 168 | ||
| 169 | /* | ||
| 170 | * AMD NPT family 0fh, i.e. RevF and RevG: | ||
| 171 | * meaning of SEL_CORE bit is inverted | ||
| 172 | */ | ||
| 165 | if (model >= 0x40) { | 173 | if (model >= 0x40) { |
| 174 | data->swap_core_select = 1; | ||
| 166 | dev_warn(&pdev->dev, "Temperature readouts might be " | 175 | dev_warn(&pdev->dev, "Temperature readouts might be " |
| 167 | "wrong - check erratum #141\n"); | 176 | "wrong - check erratum #141\n"); |
| 168 | } | 177 | } |
