diff options
author | davidwang <davidwang@zhaoxin.com> | 2018-03-29 21:04:48 -0400 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2018-03-30 10:53:57 -0400 |
commit | e3a2d2be510ec8a35ecd2a17a42467d417962bb7 (patch) | |
tree | c07afed1e38cc62321032c47460c2022091ddcf6 | |
parent | 415eb2a1aaa4881cf85bd86c683356fdd8094a23 (diff) |
hwmon: (via-cputemp) support new centaur CPUs
New centaur CPUs (Familiy == 7) also support this cpu temperature sensor.
Signed-off-by: David Wang <davidwang@zhaoxin.com>
[groeck: Dropped changelog, updated subject]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-rw-r--r-- | drivers/hwmon/via-cputemp.c | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c index 07a0cb0a1f28..0e81f287d305 100644 --- a/drivers/hwmon/via-cputemp.c +++ b/drivers/hwmon/via-cputemp.c | |||
@@ -136,20 +136,24 @@ static int via_cputemp_probe(struct platform_device *pdev) | |||
136 | data->id = pdev->id; | 136 | data->id = pdev->id; |
137 | data->name = "via_cputemp"; | 137 | data->name = "via_cputemp"; |
138 | 138 | ||
139 | switch (c->x86_model) { | 139 | if (c->x86 == 7) { |
140 | case 0xA: | ||
141 | /* C7 A */ | ||
142 | case 0xD: | ||
143 | /* C7 D */ | ||
144 | data->msr_temp = 0x1169; | ||
145 | data->msr_vid = 0x198; | ||
146 | break; | ||
147 | case 0xF: | ||
148 | /* Nano */ | ||
149 | data->msr_temp = 0x1423; | 140 | data->msr_temp = 0x1423; |
150 | break; | 141 | } else { |
151 | default: | 142 | switch (c->x86_model) { |
152 | return -ENODEV; | 143 | case 0xA: |
144 | /* C7 A */ | ||
145 | case 0xD: | ||
146 | /* C7 D */ | ||
147 | data->msr_temp = 0x1169; | ||
148 | data->msr_vid = 0x198; | ||
149 | break; | ||
150 | case 0xF: | ||
151 | /* Nano */ | ||
152 | data->msr_temp = 0x1423; | ||
153 | break; | ||
154 | default: | ||
155 | return -ENODEV; | ||
156 | } | ||
153 | } | 157 | } |
154 | 158 | ||
155 | /* test if we can access the TEMPERATURE MSR */ | 159 | /* test if we can access the TEMPERATURE MSR */ |
@@ -283,6 +287,7 @@ static const struct x86_cpu_id __initconst cputemp_ids[] = { | |||
283 | { X86_VENDOR_CENTAUR, 6, 0xa, }, /* C7 A */ | 287 | { X86_VENDOR_CENTAUR, 6, 0xa, }, /* C7 A */ |
284 | { X86_VENDOR_CENTAUR, 6, 0xd, }, /* C7 D */ | 288 | { X86_VENDOR_CENTAUR, 6, 0xd, }, /* C7 D */ |
285 | { X86_VENDOR_CENTAUR, 6, 0xf, }, /* Nano */ | 289 | { X86_VENDOR_CENTAUR, 6, 0xf, }, /* Nano */ |
290 | { X86_VENDOR_CENTAUR, 7, X86_MODEL_ANY, }, | ||
286 | {} | 291 | {} |
287 | }; | 292 | }; |
288 | MODULE_DEVICE_TABLE(x86cpu, cputemp_ids); | 293 | MODULE_DEVICE_TABLE(x86cpu, cputemp_ids); |