Skip to content

Commit d630478

Browse files
committed
platform/x86/intel-uncore-freq: Get rid of magic min_max argument
JIRA: https://issues.redhat.com/browse/RHEL-46062 commit 9058337 Author: Tero Kristo <tero.kristo@linux.intel.com> Date: Mon Jun 17 09:04:36 2024 +0300 platform/x86/intel-uncore-freq: Get rid of magic min_max argument Get rid of the hardcoded / magic min_max argument from internal APIs. Instead, use an enumerated index value for it. No functional change intended. Signed-off-by: Tero Kristo <tero.kristo@linux.intel.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Link: https://lore.kernel.org/r/20240617060708.892981-4-tero.kristo@linux.intel.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: David Arcari <darcari@redhat.com>
1 parent c420472 commit d630478

File tree

4 files changed

+30
-21
lines changed

4 files changed

+30
-21
lines changed

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ static DEFINE_IDA(intel_uncore_ida);
2020

2121
/* callbacks for actual HW read/write */
2222
static int (*uncore_read)(struct uncore_data *data, unsigned int *min, unsigned int *max);
23-
static int (*uncore_write)(struct uncore_data *data, unsigned int input, unsigned int min_max);
23+
static int (*uncore_write)(struct uncore_data *data, unsigned int input, enum uncore_index index);
2424
static int (*uncore_read_freq)(struct uncore_data *data, unsigned int *freq);
2525

2626
static ssize_t show_domain_id(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
@@ -45,7 +45,7 @@ static ssize_t show_package_id(struct kobject *kobj, struct kobj_attribute *attr
4545
}
4646

4747
static ssize_t show_min_max_freq_khz(struct uncore_data *data,
48-
char *buf, int min_max)
48+
char *buf, enum uncore_index index)
4949
{
5050
unsigned int min, max;
5151
int ret;
@@ -56,15 +56,15 @@ static ssize_t show_min_max_freq_khz(struct uncore_data *data,
5656
if (ret)
5757
return ret;
5858

59-
if (min_max)
59+
if (index == UNCORE_INDEX_MAX_FREQ)
6060
return sprintf(buf, "%u\n", max);
6161

6262
return sprintf(buf, "%u\n", min);
6363
}
6464

6565
static ssize_t store_min_max_freq_khz(struct uncore_data *data,
6666
const char *buf, ssize_t count,
67-
int min_max)
67+
enum uncore_index index)
6868
{
6969
unsigned int input;
7070
int ret;
@@ -73,7 +73,7 @@ static ssize_t store_min_max_freq_khz(struct uncore_data *data,
7373
return -EINVAL;
7474

7575
mutex_lock(&uncore_lock);
76-
ret = uncore_write(data, input, min_max);
76+
ret = uncore_write(data, input, index);
7777
mutex_unlock(&uncore_lock);
7878

7979
if (ret)
@@ -125,11 +125,11 @@ static ssize_t show_perf_status_freq_khz(struct uncore_data *data, char *buf)
125125
return show_perf_status_freq_khz(data, buf); \
126126
}
127127

128-
store_uncore_min_max(min_freq_khz, 0);
129-
store_uncore_min_max(max_freq_khz, 1);
128+
store_uncore_min_max(min_freq_khz, UNCORE_INDEX_MIN_FREQ);
129+
store_uncore_min_max(max_freq_khz, UNCORE_INDEX_MAX_FREQ);
130130

131-
show_uncore_min_max(min_freq_khz, 0);
132-
show_uncore_min_max(max_freq_khz, 1);
131+
show_uncore_min_max(min_freq_khz, UNCORE_INDEX_MIN_FREQ);
132+
show_uncore_min_max(max_freq_khz, UNCORE_INDEX_MAX_FREQ);
133133

134134
show_uncore_perf_status(current_freq_khz);
135135

@@ -270,7 +270,8 @@ void uncore_freq_remove_die_entry(struct uncore_data *data)
270270
EXPORT_SYMBOL_NS_GPL(uncore_freq_remove_die_entry, INTEL_UNCORE_FREQUENCY);
271271

272272
int uncore_freq_common_init(int (*read_control_freq)(struct uncore_data *data, unsigned int *min, unsigned int *max),
273-
int (*write_control_freq)(struct uncore_data *data, unsigned int input, unsigned int set_max),
273+
int (*write_control_freq)(struct uncore_data *data, unsigned int input,
274+
enum uncore_index index),
274275
int (*read_freq)(struct uncore_data *data, unsigned int *freq))
275276
{
276277
mutex_lock(&uncore_lock);

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,14 @@ struct uncore_data {
6666

6767
#define UNCORE_DOMAIN_ID_INVALID -1
6868

69+
enum uncore_index {
70+
UNCORE_INDEX_MIN_FREQ,
71+
UNCORE_INDEX_MAX_FREQ,
72+
};
73+
6974
int uncore_freq_common_init(int (*read_control_freq)(struct uncore_data *data, unsigned int *min, unsigned int *max),
70-
int (*write_control_freq)(struct uncore_data *data, unsigned int input, unsigned int min_max),
75+
int (*write_control_freq)(struct uncore_data *data, unsigned int input,
76+
enum uncore_index index),
7177
int (*uncore_read_freq)(struct uncore_data *data, unsigned int *freq));
7278
void uncore_freq_common_exit(void);
7379
int uncore_freq_add_entry(struct uncore_data *data, int cpu);

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

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,13 @@ static int uncore_read_control_freq(struct uncore_data *data, unsigned int *min,
130130

131131
/* Helper function to write MMIO offset for max/min control frequency */
132132
static void write_control_freq(struct tpmi_uncore_cluster_info *cluster_info, unsigned int input,
133-
unsigned int min_max)
133+
unsigned int index)
134134
{
135135
u64 control;
136136

137137
control = readq(cluster_info->cluster_base + UNCORE_CONTROL_INDEX);
138138

139-
if (min_max) {
139+
if (index == UNCORE_INDEX_MAX_FREQ) {
140140
control &= ~UNCORE_MAX_RATIO_MASK;
141141
control |= FIELD_PREP(UNCORE_MAX_RATIO_MASK, input);
142142
} else {
@@ -149,7 +149,7 @@ static void write_control_freq(struct tpmi_uncore_cluster_info *cluster_info, un
149149

150150
/* Callback for sysfs write for max/min frequencies. Called under mutex locks */
151151
static int uncore_write_control_freq(struct uncore_data *data, unsigned int input,
152-
unsigned int min_max)
152+
enum uncore_index index)
153153
{
154154
struct tpmi_uncore_cluster_info *cluster_info;
155155
struct tpmi_uncore_struct *uncore_root;
@@ -174,24 +174,26 @@ static int uncore_write_control_freq(struct uncore_data *data, unsigned int inpu
174174

175175
for (j = 0; j < uncore_root->pd_info[i].cluster_count; ++j)
176176
write_control_freq(&uncore_root->pd_info[i].cluster_infos[j],
177-
input, min_max);
177+
input, index);
178178
}
179179

180-
if (min_max)
180+
if (index == UNCORE_INDEX_MAX_FREQ)
181181
uncore_root->max_ratio = input;
182182
else
183183
uncore_root->min_ratio = input;
184184

185185
return 0;
186186
}
187187

188-
if (min_max && uncore_root->max_ratio && uncore_root->max_ratio < input)
188+
if (index == UNCORE_INDEX_MAX_FREQ && uncore_root->max_ratio &&
189+
uncore_root->max_ratio < input)
189190
return -EINVAL;
190191

191-
if (!min_max && uncore_root->min_ratio && uncore_root->min_ratio > input)
192+
if (index == UNCORE_INDEX_MIN_FREQ && uncore_root->min_ratio &&
193+
uncore_root->min_ratio > input)
192194
return -EINVAL;
193195

194-
write_control_freq(cluster_info, input, min_max);
196+
write_control_freq(cluster_info, input, index);
195197

196198
return 0;
197199
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ static int uncore_read_control_freq(struct uncore_data *data, unsigned int *min,
6262
}
6363

6464
static int uncore_write_control_freq(struct uncore_data *data, unsigned int input,
65-
unsigned int min_max)
65+
enum uncore_index index)
6666
{
6767
int ret;
6868
u64 cap;
@@ -78,7 +78,7 @@ static int uncore_write_control_freq(struct uncore_data *data, unsigned int inpu
7878
if (ret)
7979
return ret;
8080

81-
if (min_max) {
81+
if (index == UNCORE_INDEX_MAX_FREQ) {
8282
cap &= ~UNCORE_MAX_RATIO_MASK;
8383
cap |= FIELD_PREP(UNCORE_MAX_RATIO_MASK, input);
8484
} else {

0 commit comments

Comments
 (0)