Skip to content

Commit 7ed6f1b

Browse files
davejiangvinodkoul
authored andcommitted
dmaengine: idxd: change bandwidth token to read buffers
DSA spec v1.2 has changed the term of "bandwidth tokens" to "read buffers" in order to make the concept clearer. Deprecate bandwidth token naming in the driver and convert to read buffers in order to match with the spec and reduce confusion when reading the spec. Signed-off-by: Dave Jiang <[email protected]> Link: https://lore.kernel.org/r/163951338932.2988321.6162640806935567317.stgit@djiang5-desk3.ch.intel.com Signed-off-by: Vinod Koul <[email protected]>
1 parent 0f22570 commit 7ed6f1b

File tree

5 files changed

+49
-50
lines changed

5 files changed

+49
-50
lines changed

drivers/dma/idxd/device.c

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -678,9 +678,9 @@ static void idxd_groups_clear_state(struct idxd_device *idxd)
678678
memset(&group->grpcfg, 0, sizeof(group->grpcfg));
679679
group->num_engines = 0;
680680
group->num_wqs = 0;
681-
group->use_token_limit = false;
682-
group->tokens_allowed = 0;
683-
group->tokens_reserved = 0;
681+
group->use_rdbuf_limit = false;
682+
group->rdbufs_allowed = 0;
683+
group->rdbufs_reserved = 0;
684684
group->tc_a = -1;
685685
group->tc_b = -1;
686686
}
@@ -748,10 +748,10 @@ static int idxd_groups_config_write(struct idxd_device *idxd)
748748
int i;
749749
struct device *dev = &idxd->pdev->dev;
750750

751-
/* Setup bandwidth token limit */
752-
if (idxd->hw.gen_cap.config_en && idxd->token_limit) {
751+
/* Setup bandwidth rdbuf limit */
752+
if (idxd->hw.gen_cap.config_en && idxd->rdbuf_limit) {
753753
reg.bits = ioread32(idxd->reg_base + IDXD_GENCFG_OFFSET);
754-
reg.token_limit = idxd->token_limit;
754+
reg.rdbuf_limit = idxd->rdbuf_limit;
755755
iowrite32(reg.bits, idxd->reg_base + IDXD_GENCFG_OFFSET);
756756
}
757757

@@ -889,13 +889,12 @@ static void idxd_group_flags_setup(struct idxd_device *idxd)
889889
group->tc_b = group->grpcfg.flags.tc_b = 1;
890890
else
891891
group->grpcfg.flags.tc_b = group->tc_b;
892-
group->grpcfg.flags.use_token_limit = group->use_token_limit;
893-
group->grpcfg.flags.tokens_reserved = group->tokens_reserved;
894-
if (group->tokens_allowed)
895-
group->grpcfg.flags.tokens_allowed =
896-
group->tokens_allowed;
892+
group->grpcfg.flags.use_rdbuf_limit = group->use_rdbuf_limit;
893+
group->grpcfg.flags.rdbufs_reserved = group->rdbufs_reserved;
894+
if (group->rdbufs_allowed)
895+
group->grpcfg.flags.rdbufs_allowed = group->rdbufs_allowed;
897896
else
898-
group->grpcfg.flags.tokens_allowed = idxd->max_tokens;
897+
group->grpcfg.flags.rdbufs_allowed = idxd->max_rdbufs;
899898
}
900899
}
901900

@@ -1086,7 +1085,7 @@ int idxd_device_load_config(struct idxd_device *idxd)
10861085
int i, rc;
10871086

10881087
reg.bits = ioread32(idxd->reg_base + IDXD_GENCFG_OFFSET);
1089-
idxd->token_limit = reg.token_limit;
1088+
idxd->rdbuf_limit = reg.rdbuf_limit;
10901089

10911090
for (i = 0; i < idxd->max_groups; i++) {
10921091
struct idxd_group *group = idxd->groups[i];

drivers/dma/idxd/idxd.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ struct idxd_group {
9090
int id;
9191
int num_engines;
9292
int num_wqs;
93-
bool use_token_limit;
94-
u8 tokens_allowed;
95-
u8 tokens_reserved;
93+
bool use_rdbuf_limit;
94+
u8 rdbufs_allowed;
95+
u8 rdbufs_reserved;
9696
int tc_a;
9797
int tc_b;
9898
};
@@ -292,11 +292,11 @@ struct idxd_device {
292292
u32 max_batch_size;
293293
int max_groups;
294294
int max_engines;
295-
int max_tokens;
295+
int max_rdbufs;
296296
int max_wqs;
297297
int max_wq_size;
298-
int token_limit;
299-
int nr_tokens; /* non-reserved tokens */
298+
int rdbuf_limit;
299+
int nr_rdbufs; /* non-reserved read buffers */
300300
unsigned int wqcfg_size;
301301

302302
union sw_err_reg sw_err;

drivers/dma/idxd/init.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -400,9 +400,9 @@ static void idxd_read_caps(struct idxd_device *idxd)
400400
dev_dbg(dev, "group_cap: %#llx\n", idxd->hw.group_cap.bits);
401401
idxd->max_groups = idxd->hw.group_cap.num_groups;
402402
dev_dbg(dev, "max groups: %u\n", idxd->max_groups);
403-
idxd->max_tokens = idxd->hw.group_cap.total_tokens;
404-
dev_dbg(dev, "max tokens: %u\n", idxd->max_tokens);
405-
idxd->nr_tokens = idxd->max_tokens;
403+
idxd->max_rdbufs = idxd->hw.group_cap.total_rdbufs;
404+
dev_dbg(dev, "max read buffers: %u\n", idxd->max_rdbufs);
405+
idxd->nr_rdbufs = idxd->max_rdbufs;
406406

407407
/* read engine capabilities */
408408
idxd->hw.engine_cap.bits =

drivers/dma/idxd/registers.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ union wq_cap_reg {
6464
union group_cap_reg {
6565
struct {
6666
u64 num_groups:8;
67-
u64 total_tokens:8;
68-
u64 token_en:1;
69-
u64 token_limit:1;
67+
u64 total_rdbufs:8; /* formerly total_tokens */
68+
u64 rdbuf_ctrl:1; /* formerly token_en */
69+
u64 rdbuf_limit:1; /* formerly token_limit */
7070
u64 rsvd:46;
7171
};
7272
u64 bits;
@@ -110,7 +110,7 @@ union offsets_reg {
110110
#define IDXD_GENCFG_OFFSET 0x80
111111
union gencfg_reg {
112112
struct {
113-
u32 token_limit:8;
113+
u32 rdbuf_limit:8;
114114
u32 rsvd:4;
115115
u32 user_int_en:1;
116116
u32 rsvd2:19;
@@ -288,10 +288,10 @@ union group_flags {
288288
u32 tc_a:3;
289289
u32 tc_b:3;
290290
u32 rsvd:1;
291-
u32 use_token_limit:1;
292-
u32 tokens_reserved:8;
291+
u32 use_rdbuf_limit:1;
292+
u32 rdbufs_reserved:8;
293293
u32 rsvd2:4;
294-
u32 tokens_allowed:8;
294+
u32 rdbufs_allowed:8;
295295
u32 rsvd3:4;
296296
};
297297
u32 bits;

drivers/dma/idxd/sysfs.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,17 @@ struct device_type idxd_engine_device_type = {
9999

100100
/* Group attributes */
101101

102-
static void idxd_set_free_tokens(struct idxd_device *idxd)
102+
static void idxd_set_free_rdbufs(struct idxd_device *idxd)
103103
{
104-
int i, tokens;
104+
int i, rdbufs;
105105

106-
for (i = 0, tokens = 0; i < idxd->max_groups; i++) {
106+
for (i = 0, rdbufs = 0; i < idxd->max_groups; i++) {
107107
struct idxd_group *g = idxd->groups[i];
108108

109-
tokens += g->tokens_reserved;
109+
rdbufs += g->rdbufs_reserved;
110110
}
111111

112-
idxd->nr_tokens = idxd->max_tokens - tokens;
112+
idxd->nr_rdbufs = idxd->max_rdbufs - rdbufs;
113113
}
114114

115115
static ssize_t group_tokens_reserved_show(struct device *dev,
@@ -118,7 +118,7 @@ static ssize_t group_tokens_reserved_show(struct device *dev,
118118
{
119119
struct idxd_group *group = confdev_to_group(dev);
120120

121-
return sysfs_emit(buf, "%u\n", group->tokens_reserved);
121+
return sysfs_emit(buf, "%u\n", group->rdbufs_reserved);
122122
}
123123

124124
static ssize_t group_tokens_reserved_store(struct device *dev,
@@ -143,14 +143,14 @@ static ssize_t group_tokens_reserved_store(struct device *dev,
143143
if (idxd->state == IDXD_DEV_ENABLED)
144144
return -EPERM;
145145

146-
if (val > idxd->max_tokens)
146+
if (val > idxd->max_rdbufs)
147147
return -EINVAL;
148148

149-
if (val > idxd->nr_tokens + group->tokens_reserved)
149+
if (val > idxd->nr_rdbufs + group->rdbufs_reserved)
150150
return -EINVAL;
151151

152-
group->tokens_reserved = val;
153-
idxd_set_free_tokens(idxd);
152+
group->rdbufs_reserved = val;
153+
idxd_set_free_rdbufs(idxd);
154154
return count;
155155
}
156156

@@ -164,7 +164,7 @@ static ssize_t group_tokens_allowed_show(struct device *dev,
164164
{
165165
struct idxd_group *group = confdev_to_group(dev);
166166

167-
return sysfs_emit(buf, "%u\n", group->tokens_allowed);
167+
return sysfs_emit(buf, "%u\n", group->rdbufs_allowed);
168168
}
169169

170170
static ssize_t group_tokens_allowed_store(struct device *dev,
@@ -190,10 +190,10 @@ static ssize_t group_tokens_allowed_store(struct device *dev,
190190
return -EPERM;
191191

192192
if (val < 4 * group->num_engines ||
193-
val > group->tokens_reserved + idxd->nr_tokens)
193+
val > group->rdbufs_reserved + idxd->nr_rdbufs)
194194
return -EINVAL;
195195

196-
group->tokens_allowed = val;
196+
group->rdbufs_allowed = val;
197197
return count;
198198
}
199199

@@ -207,7 +207,7 @@ static ssize_t group_use_token_limit_show(struct device *dev,
207207
{
208208
struct idxd_group *group = confdev_to_group(dev);
209209

210-
return sysfs_emit(buf, "%u\n", group->use_token_limit);
210+
return sysfs_emit(buf, "%u\n", group->use_rdbuf_limit);
211211
}
212212

213213
static ssize_t group_use_token_limit_store(struct device *dev,
@@ -232,10 +232,10 @@ static ssize_t group_use_token_limit_store(struct device *dev,
232232
if (idxd->state == IDXD_DEV_ENABLED)
233233
return -EPERM;
234234

235-
if (idxd->token_limit == 0)
235+
if (idxd->rdbuf_limit == 0)
236236
return -EPERM;
237237

238-
group->use_token_limit = !!val;
238+
group->use_rdbuf_limit = !!val;
239239
return count;
240240
}
241241

@@ -1197,7 +1197,7 @@ static ssize_t max_tokens_show(struct device *dev,
11971197
{
11981198
struct idxd_device *idxd = confdev_to_idxd(dev);
11991199

1200-
return sysfs_emit(buf, "%u\n", idxd->max_tokens);
1200+
return sysfs_emit(buf, "%u\n", idxd->max_rdbufs);
12011201
}
12021202
static DEVICE_ATTR_RO(max_tokens);
12031203

@@ -1206,7 +1206,7 @@ static ssize_t token_limit_show(struct device *dev,
12061206
{
12071207
struct idxd_device *idxd = confdev_to_idxd(dev);
12081208

1209-
return sysfs_emit(buf, "%u\n", idxd->token_limit);
1209+
return sysfs_emit(buf, "%u\n", idxd->rdbuf_limit);
12101210
}
12111211

12121212
static ssize_t token_limit_store(struct device *dev,
@@ -1227,13 +1227,13 @@ static ssize_t token_limit_store(struct device *dev,
12271227
if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags))
12281228
return -EPERM;
12291229

1230-
if (!idxd->hw.group_cap.token_limit)
1230+
if (!idxd->hw.group_cap.rdbuf_limit)
12311231
return -EPERM;
12321232

1233-
if (val > idxd->hw.group_cap.total_tokens)
1233+
if (val > idxd->hw.group_cap.total_rdbufs)
12341234
return -EINVAL;
12351235

1236-
idxd->token_limit = val;
1236+
idxd->rdbuf_limit = val;
12371237
return count;
12381238
}
12391239
static DEVICE_ATTR_RW(token_limit);

0 commit comments

Comments
 (0)