Source
53
53
u8 vrm;
54
54
u32 id;
55
55
u32 msr_temp;
56
56
u32 msr_vid;
57
57
};
58
58
59
59
/*
60
60
* Sysfs stuff
61
61
*/
62
62
63
-
static ssize_t show_name(struct device *dev, struct device_attribute
64
-
*devattr, char *buf)
63
+
static ssize_t name_show(struct device *dev, struct device_attribute *devattr,
64
+
char *buf)
65
65
{
66
66
int ret;
67
67
struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
68
68
struct via_cputemp_data *data = dev_get_drvdata(dev);
69
69
70
70
if (attr->index == SHOW_NAME)
71
71
ret = sprintf(buf, "%s\n", data->name);
72
72
else /* show label */
73
73
ret = sprintf(buf, "Core %d\n", data->id);
74
74
return ret;
75
75
}
76
76
77
-
static ssize_t show_temp(struct device *dev,
78
-
struct device_attribute *devattr, char *buf)
77
+
static ssize_t temp_show(struct device *dev, struct device_attribute *devattr,
78
+
char *buf)
79
79
{
80
80
struct via_cputemp_data *data = dev_get_drvdata(dev);
81
81
u32 eax, edx;
82
82
int err;
83
83
84
84
err = rdmsr_safe_on_cpu(data->id, data->msr_temp, &eax, &edx);
85
85
if (err)
86
86
return -EAGAIN;
87
87
88
88
return sprintf(buf, "%lu\n", ((unsigned long)eax & 0xffffff) * 1000);
95
95
u32 eax, edx;
96
96
int err;
97
97
98
98
err = rdmsr_safe_on_cpu(data->id, data->msr_vid, &eax, &edx);
99
99
if (err)
100
100
return -EAGAIN;
101
101
102
102
return sprintf(buf, "%d\n", vid_from_reg(~edx & 0x7f, data->vrm));
103
103
}
104
104
105
-
static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL,
106
-
SHOW_TEMP);
107
-
static SENSOR_DEVICE_ATTR(temp1_label, S_IRUGO, show_name, NULL, SHOW_LABEL);
108
-
static SENSOR_DEVICE_ATTR(name, S_IRUGO, show_name, NULL, SHOW_NAME);
105
+
static SENSOR_DEVICE_ATTR_RO(temp1_input, temp, SHOW_TEMP);
106
+
static SENSOR_DEVICE_ATTR_RO(temp1_label, name, SHOW_LABEL);
107
+
static SENSOR_DEVICE_ATTR_RO(name, name, SHOW_NAME);
109
108
110
109
static struct attribute *via_cputemp_attributes[] = {
111
110
&sensor_dev_attr_name.dev_attr.attr,
112
111
&sensor_dev_attr_temp1_label.dev_attr.attr,
113
112
&sensor_dev_attr_temp1_input.dev_attr.attr,
114
113
NULL
115
114
};
116
115
117
116
static const struct attribute_group via_cputemp_group = {
118
117
.attrs = via_cputemp_attributes,