Skip to content

Commit d766abf

Browse files
Tero Kristoij-intel
authored andcommitted
platform/x86/intel-uncore-freq: Get rid of uncore_read_freq driver API
Get rid of uncore_read_freq driver API. Instead, add a new entry to the enumerated read interface and use this. No functional change intended. Signed-off-by: Tero Kristo <[email protected]> Acked-by: Srinivas Pandruvada <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Ilpo Järvinen <[email protected]> Signed-off-by: Ilpo Järvinen <[email protected]>
1 parent 69207a0 commit d766abf

File tree

4 files changed

+52
-22
lines changed

4 files changed

+52
-22
lines changed

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ static DEFINE_IDA(intel_uncore_ida);
2121
/* callbacks for actual HW read/write */
2222
static int (*uncore_read)(struct uncore_data *data, unsigned int *value, enum uncore_index index);
2323
static int (*uncore_write)(struct uncore_data *data, unsigned int input, enum uncore_index index);
24-
static int (*uncore_read_freq)(struct uncore_data *data, unsigned int *freq);
2524

2625
static ssize_t show_domain_id(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
2726
{
@@ -85,7 +84,7 @@ static ssize_t show_perf_status_freq_khz(struct uncore_data *data, char *buf)
8584
int ret;
8685

8786
mutex_lock(&uncore_lock);
88-
ret = uncore_read_freq(data, &freq);
87+
ret = uncore_read(data, &freq, UNCORE_INDEX_CURRENT_FREQ);
8988
mutex_unlock(&uncore_lock);
9089
if (ret)
9190
return ret;
@@ -195,7 +194,7 @@ static int create_attr_group(struct uncore_data *data, char *name)
195194
data->uncore_attrs[index++] = &data->initial_min_freq_khz_kobj_attr.attr;
196195
data->uncore_attrs[index++] = &data->initial_max_freq_khz_kobj_attr.attr;
197196

198-
ret = uncore_read_freq(data, &freq);
197+
ret = uncore_read(data, &freq, UNCORE_INDEX_CURRENT_FREQ);
199198
if (!ret)
200199
data->uncore_attrs[index++] = &data->current_freq_khz_kobj_attr.attr;
201200

@@ -267,17 +266,15 @@ void uncore_freq_remove_die_entry(struct uncore_data *data)
267266
}
268267
EXPORT_SYMBOL_NS_GPL(uncore_freq_remove_die_entry, INTEL_UNCORE_FREQUENCY);
269268

270-
int uncore_freq_common_init(int (*read_control_freq)(struct uncore_data *data, unsigned int *value,
271-
enum uncore_index index),
272-
int (*write_control_freq)(struct uncore_data *data, unsigned int input,
273-
enum uncore_index index),
274-
int (*read_freq)(struct uncore_data *data, unsigned int *freq))
269+
int uncore_freq_common_init(int (*read)(struct uncore_data *data, unsigned int *value,
270+
enum uncore_index index),
271+
int (*write)(struct uncore_data *data, unsigned int input,
272+
enum uncore_index index))
275273
{
276274
mutex_lock(&uncore_lock);
277275

278-
uncore_read = read_control_freq;
279-
uncore_write = write_control_freq;
280-
uncore_read_freq = read_freq;
276+
uncore_read = read;
277+
uncore_write = write;
281278

282279
if (!uncore_root_kobj) {
283280
struct device *dev_root = bus_get_dev_root(&cpu_subsys);

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ struct uncore_data {
6969
enum uncore_index {
7070
UNCORE_INDEX_MIN_FREQ,
7171
UNCORE_INDEX_MAX_FREQ,
72+
UNCORE_INDEX_CURRENT_FREQ,
7273
};
7374

74-
int uncore_freq_common_init(int (*read_control_freq)(struct uncore_data *data, unsigned int *value,
75-
enum uncore_index index),
76-
int (*write_control_freq)(struct uncore_data *data, unsigned int input,
77-
enum uncore_index index),
78-
int (*uncore_read_freq)(struct uncore_data *data, unsigned int *freq));
75+
int uncore_freq_common_init(int (*read)(struct uncore_data *data, unsigned int *value,
76+
enum uncore_index index),
77+
int (*write)(struct uncore_data *data, unsigned int input,
78+
enum uncore_index index));
7979
void uncore_freq_common_exit(void);
8080
int uncore_freq_add_entry(struct uncore_data *data, int cpu);
8181
void uncore_freq_remove_die_entry(struct uncore_data *data);

drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ static void read_control_freq(struct tpmi_uncore_cluster_info *cluster_info,
9191

9292
#define UNCORE_MAX_RATIO FIELD_MAX(UNCORE_MAX_RATIO_MASK)
9393

94-
/* Callback for sysfs read for max/min frequencies. Called under mutex locks */
94+
/* Helper for sysfs read for max/min frequencies. Called under mutex locks */
9595
static int uncore_read_control_freq(struct uncore_data *data, unsigned int *value,
9696
enum uncore_index index)
9797
{
@@ -207,7 +207,7 @@ static int uncore_write_control_freq(struct uncore_data *data, unsigned int inpu
207207
return 0;
208208
}
209209

210-
/* Callback for sysfs read for the current uncore frequency. Called under mutex locks */
210+
/* Helper for sysfs read for the current uncore frequency. Called under mutex locks */
211211
static int uncore_read_freq(struct uncore_data *data, unsigned int *freq)
212212
{
213213
struct tpmi_uncore_cluster_info *cluster_info;
@@ -223,6 +223,24 @@ static int uncore_read_freq(struct uncore_data *data, unsigned int *freq)
223223
return 0;
224224
}
225225

226+
/* Callback for sysfs read for TPMI uncore values. Called under mutex locks. */
227+
static int uncore_read(struct uncore_data *data, unsigned int *value, enum uncore_index index)
228+
{
229+
switch (index) {
230+
case UNCORE_INDEX_MIN_FREQ:
231+
case UNCORE_INDEX_MAX_FREQ:
232+
return uncore_read_control_freq(data, value, index);
233+
234+
case UNCORE_INDEX_CURRENT_FREQ:
235+
return uncore_read_freq(data, value);
236+
237+
default:
238+
break;
239+
}
240+
241+
return -EOPNOTSUPP;
242+
}
243+
226244
static void remove_cluster_entries(struct tpmi_uncore_struct *tpmi_uncore)
227245
{
228246
int i;
@@ -273,8 +291,7 @@ static int uncore_probe(struct auxiliary_device *auxdev, const struct auxiliary_
273291
return -EINVAL;
274292

275293
/* Register callbacks to uncore core */
276-
ret = uncore_freq_common_init(uncore_read_control_freq, uncore_write_control_freq,
277-
uncore_read_freq);
294+
ret = uncore_freq_common_init(uncore_read, uncore_write_control_freq);
278295
if (ret)
279296
return ret;
280297

drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,23 @@ static int uncore_read_freq(struct uncore_data *data, unsigned int *freq)
114114
return 0;
115115
}
116116

117+
static int uncore_read(struct uncore_data *data, unsigned int *value, enum uncore_index index)
118+
{
119+
switch (index) {
120+
case UNCORE_INDEX_MIN_FREQ:
121+
case UNCORE_INDEX_MAX_FREQ:
122+
return uncore_read_control_freq(data, value, index);
123+
124+
case UNCORE_INDEX_CURRENT_FREQ:
125+
return uncore_read_freq(data, value);
126+
127+
default:
128+
break;
129+
}
130+
131+
return -EOPNOTSUPP;
132+
}
133+
117134
/* Caller provides protection */
118135
static struct uncore_data *uncore_get_instance(unsigned int cpu)
119136
{
@@ -256,8 +273,7 @@ static int __init intel_uncore_init(void)
256273
if (!uncore_instances)
257274
return -ENOMEM;
258275

259-
ret = uncore_freq_common_init(uncore_read_control_freq, uncore_write_control_freq,
260-
uncore_read_freq);
276+
ret = uncore_freq_common_init(uncore_read, uncore_write_control_freq);
261277
if (ret)
262278
goto err_free;
263279

0 commit comments

Comments
 (0)