Skip to content

Commit 758acba

Browse files
mairacanalpelwell
authored andcommitted
drm/v3d: Associate a V3D tech revision to all supported devices
The V3D driver currently determines the GPU tech version (33, 41...) by reading a register. This approach has worked so far since this information wasn’t needed before powering on the GPU. V3D 7.1 introduces new registers that must be written to power on the GPU, requiring us to know the V3D version beforehand. To address this, associate each supported SoC with the corresponding VideoCore GPU version as part of the device data. To prevent possible mistakes, add an assertion to verify that the version specified in the device data matches the one reported by the hardware. If there is a mismatch, the kernel will trigger a warning. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Signed-off-by: Maíra Canal <mcanal@igalia.com>
1 parent c0cd166 commit 758acba

File tree

7 files changed

+138
-85
lines changed

7 files changed

+138
-85
lines changed

drivers/gpu/drm/v3d/v3d_debugfs.c

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -21,74 +21,74 @@ struct v3d_reg_def {
2121
};
2222

2323
static const struct v3d_reg_def v3d_hub_reg_defs[] = {
24-
REGDEF(33, 42, V3D_HUB_AXICFG),
25-
REGDEF(33, 71, V3D_HUB_UIFCFG),
26-
REGDEF(33, 71, V3D_HUB_IDENT0),
27-
REGDEF(33, 71, V3D_HUB_IDENT1),
28-
REGDEF(33, 71, V3D_HUB_IDENT2),
29-
REGDEF(33, 71, V3D_HUB_IDENT3),
30-
REGDEF(33, 71, V3D_HUB_INT_STS),
31-
REGDEF(33, 71, V3D_HUB_INT_MSK_STS),
32-
33-
REGDEF(33, 71, V3D_MMU_CTL),
34-
REGDEF(33, 71, V3D_MMU_VIO_ADDR),
35-
REGDEF(33, 71, V3D_MMU_VIO_ID),
36-
REGDEF(33, 71, V3D_MMU_DEBUG_INFO),
37-
38-
REGDEF(71, 71, V3D_GMP_STATUS(71)),
39-
REGDEF(71, 71, V3D_GMP_CFG(71)),
40-
REGDEF(71, 71, V3D_GMP_VIO_ADDR(71)),
24+
REGDEF(V3D_GEN_33, V3D_GEN_42, V3D_HUB_AXICFG),
25+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_UIFCFG),
26+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_IDENT0),
27+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_IDENT1),
28+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_IDENT2),
29+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_IDENT3),
30+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_INT_STS),
31+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_HUB_INT_MSK_STS),
32+
33+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_MMU_CTL),
34+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_MMU_VIO_ADDR),
35+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_MMU_VIO_ID),
36+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_MMU_DEBUG_INFO),
37+
38+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_GMP_STATUS(71)),
39+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_GMP_CFG(71)),
40+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_GMP_VIO_ADDR(71)),
4141
};
4242

4343
static const struct v3d_reg_def v3d_gca_reg_defs[] = {
44-
REGDEF(33, 33, V3D_GCA_SAFE_SHUTDOWN),
45-
REGDEF(33, 33, V3D_GCA_SAFE_SHUTDOWN_ACK),
44+
REGDEF(V3D_GEN_33, V3D_GEN_33, V3D_GCA_SAFE_SHUTDOWN),
45+
REGDEF(V3D_GEN_33, V3D_GEN_33, V3D_GCA_SAFE_SHUTDOWN_ACK),
4646
};
4747

4848
static const struct v3d_reg_def v3d_core_reg_defs[] = {
49-
REGDEF(33, 71, V3D_CTL_IDENT0),
50-
REGDEF(33, 71, V3D_CTL_IDENT1),
51-
REGDEF(33, 71, V3D_CTL_IDENT2),
52-
REGDEF(33, 71, V3D_CTL_MISCCFG),
53-
REGDEF(33, 71, V3D_CTL_INT_STS),
54-
REGDEF(33, 71, V3D_CTL_INT_MSK_STS),
55-
REGDEF(33, 71, V3D_CLE_CT0CS),
56-
REGDEF(33, 71, V3D_CLE_CT0CA),
57-
REGDEF(33, 71, V3D_CLE_CT0EA),
58-
REGDEF(33, 71, V3D_CLE_CT1CS),
59-
REGDEF(33, 71, V3D_CLE_CT1CA),
60-
REGDEF(33, 71, V3D_CLE_CT1EA),
61-
62-
REGDEF(33, 71, V3D_PTB_BPCA),
63-
REGDEF(33, 71, V3D_PTB_BPCS),
64-
65-
REGDEF(33, 42, V3D_GMP_STATUS(33)),
66-
REGDEF(33, 42, V3D_GMP_CFG(33)),
67-
REGDEF(33, 42, V3D_GMP_VIO_ADDR(33)),
68-
69-
REGDEF(33, 71, V3D_ERR_FDBGO),
70-
REGDEF(33, 71, V3D_ERR_FDBGB),
71-
REGDEF(33, 71, V3D_ERR_FDBGS),
72-
REGDEF(33, 71, V3D_ERR_STAT),
49+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CTL_IDENT0),
50+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CTL_IDENT1),
51+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CTL_IDENT2),
52+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CTL_MISCCFG),
53+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CTL_INT_STS),
54+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CTL_INT_MSK_STS),
55+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CLE_CT0CS),
56+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CLE_CT0CA),
57+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CLE_CT0EA),
58+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CLE_CT1CS),
59+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CLE_CT1CA),
60+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_CLE_CT1EA),
61+
62+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_PTB_BPCA),
63+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_PTB_BPCS),
64+
65+
REGDEF(V3D_GEN_33, V3D_GEN_42, V3D_GMP_STATUS(33)),
66+
REGDEF(V3D_GEN_33, V3D_GEN_42, V3D_GMP_CFG(33)),
67+
REGDEF(V3D_GEN_33, V3D_GEN_42, V3D_GMP_VIO_ADDR(33)),
68+
69+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_ERR_FDBGO),
70+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_ERR_FDBGB),
71+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_ERR_FDBGS),
72+
REGDEF(V3D_GEN_33, V3D_GEN_71, V3D_ERR_STAT),
7373
};
7474

7575
static const struct v3d_reg_def v3d_csd_reg_defs[] = {
76-
REGDEF(41, 71, V3D_CSD_STATUS),
77-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG0(41)),
78-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG1(41)),
79-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG2(41)),
80-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG3(41)),
81-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG4(41)),
82-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG5(41)),
83-
REGDEF(41, 42, V3D_CSD_CURRENT_CFG6(41)),
84-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG0(71)),
85-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG1(71)),
86-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG2(71)),
87-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG3(71)),
88-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG4(71)),
89-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG5(71)),
90-
REGDEF(71, 71, V3D_CSD_CURRENT_CFG6(71)),
91-
REGDEF(71, 71, V3D_V7_CSD_CURRENT_CFG7),
76+
REGDEF(V3D_GEN_41, V3D_GEN_71, V3D_CSD_STATUS),
77+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG0(41)),
78+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG1(41)),
79+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG2(41)),
80+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG3(41)),
81+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG4(41)),
82+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG5(41)),
83+
REGDEF(V3D_GEN_41, V3D_GEN_42, V3D_CSD_CURRENT_CFG6(41)),
84+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG0(71)),
85+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG1(71)),
86+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG2(71)),
87+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG3(71)),
88+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG4(71)),
89+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG5(71)),
90+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_CSD_CURRENT_CFG6(71)),
91+
REGDEF(V3D_GEN_71, V3D_GEN_71, V3D_V7_CSD_CURRENT_CFG7),
9292
};
9393

9494
static int v3d_v3d_debugfs_regs(struct seq_file *m, void *unused)
@@ -164,7 +164,7 @@ static int v3d_v3d_debugfs_ident(struct seq_file *m, void *unused)
164164
str_yes_no(ident2 & V3D_HUB_IDENT2_WITH_MMU));
165165
seq_printf(m, "TFU: %s\n",
166166
str_yes_no(ident1 & V3D_HUB_IDENT1_WITH_TFU));
167-
if (v3d->ver <= 42) {
167+
if (v3d->ver <= V3D_GEN_42) {
168168
seq_printf(m, "TSY: %s\n",
169169
str_yes_no(ident1 & V3D_HUB_IDENT1_WITH_TSY));
170170
}
@@ -196,11 +196,11 @@ static int v3d_v3d_debugfs_ident(struct seq_file *m, void *unused)
196196
seq_printf(m, " QPUs: %d\n", nslc * qups);
197197
seq_printf(m, " Semaphores: %d\n",
198198
V3D_GET_FIELD(ident1, V3D_IDENT1_NSEM));
199-
if (v3d->ver <= 42) {
199+
if (v3d->ver <= V3D_GEN_42) {
200200
seq_printf(m, " BCG int: %d\n",
201201
(ident2 & V3D_IDENT2_BCG_INT) != 0);
202202
}
203-
if (v3d->ver < 40) {
203+
if (v3d->ver < V3D_GEN_41) {
204204
seq_printf(m, " Override TMU: %d\n",
205205
(misccfg & V3D_MISCCFG_OVRTMUOUT) != 0);
206206
}
@@ -234,7 +234,7 @@ static int v3d_measure_clock(struct seq_file *m, void *unused)
234234
int core = 0;
235235
int measure_ms = 1000;
236236

237-
if (v3d->ver >= 40) {
237+
if (v3d->ver >= V3D_GEN_41) {
238238
int cycle_count_reg = V3D_PCTR_CYCLE_COUNT(v3d->ver);
239239
V3D_CORE_WRITE(core, V3D_V4_PCTR_0_SRC_0_3,
240240
V3D_SET_FIELD_VER(cycle_count_reg,

drivers/gpu/drm/v3d/v3d_drv.c

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
9797
args->value = 1;
9898
return 0;
9999
case DRM_V3D_PARAM_SUPPORTS_PERFMON:
100-
args->value = (v3d->ver >= 40);
100+
args->value = (v3d->ver >= V3D_GEN_41);
101101
return 0;
102102
case DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT:
103103
args->value = 1;
@@ -260,15 +260,44 @@ static const struct drm_driver v3d_drm_driver = {
260260
};
261261

262262
static const struct of_device_id v3d_of_match[] = {
263-
{ .compatible = "brcm,2712-v3d" },
264-
{ .compatible = "brcm,2711-v3d" },
265-
{ .compatible = "brcm,2712-v3d" },
266-
{ .compatible = "brcm,7268-v3d" },
267-
{ .compatible = "brcm,7278-v3d" },
263+
{ .compatible = "brcm,2711-v3d", .data = (void *)V3D_GEN_42 },
264+
{ .compatible = "brcm,2712-v3d", .data = (void *)V3D_GEN_71 },
265+
{ .compatible = "brcm,7268-v3d", .data = (void *)V3D_GEN_33 },
266+
{ .compatible = "brcm,7278-v3d", .data = (void *)V3D_GEN_41 },
268267
{},
269268
};
270269
MODULE_DEVICE_TABLE(of, v3d_of_match);
271270

271+
static void
272+
v3d_idle_sms(struct v3d_dev *v3d)
273+
{
274+
if (v3d->ver < V3D_GEN_71)
275+
return;
276+
277+
V3D_SMS_WRITE(V3D_SMS_TEE_CS, V3D_SMS_CLEAR_POWER_OFF);
278+
279+
if (wait_for((V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_TEE_CS),
280+
V3D_SMS_STATE) == V3D_SMS_IDLE), 100)) {
281+
DRM_ERROR("Failed to power up SMS\n");
282+
}
283+
284+
v3d_reset_sms(v3d);
285+
}
286+
287+
static void
288+
v3d_power_off_sms(struct v3d_dev *v3d)
289+
{
290+
if (v3d->ver < V3D_GEN_71)
291+
return;
292+
293+
V3D_SMS_WRITE(V3D_SMS_TEE_CS, V3D_SMS_POWER_OFF);
294+
295+
if (wait_for((V3D_GET_FIELD(V3D_SMS_READ(V3D_SMS_TEE_CS),
296+
V3D_SMS_STATE) == V3D_SMS_POWER_OFF_STATE), 100)) {
297+
DRM_ERROR("Failed to power off SMS\n");
298+
}
299+
}
300+
272301
static int
273302
map_regs(struct v3d_dev *v3d, void __iomem **regs, const char *name)
274303
{
@@ -283,6 +312,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
283312
struct device_node *node;
284313
struct drm_device *drm;
285314
struct v3d_dev *v3d;
315+
enum v3d_gen gen;
286316
int ret;
287317
u32 mmu_debug;
288318
u32 ident1, ident3;
@@ -296,6 +326,9 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
296326

297327
platform_set_drvdata(pdev, drm);
298328

329+
gen = (enum v3d_gen)of_device_get_match_data(dev);
330+
v3d->ver = gen;
331+
299332
ret = map_regs(v3d, &v3d->hub_regs, "hub");
300333
if (ret)
301334
return ret;
@@ -304,6 +337,12 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
304337
if (ret)
305338
return ret;
306339

340+
if (v3d->ver >= V3D_GEN_71) {
341+
ret = map_regs(v3d, &v3d->sms_regs, "sms");
342+
if (ret)
343+
return ret;
344+
}
345+
307346
v3d->clk = devm_clk_get_optional(dev, NULL);
308347
if (IS_ERR(v3d->clk))
309348
return dev_err_probe(dev, PTR_ERR(v3d->clk), "Failed to get V3D clock\n");
@@ -314,6 +353,8 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
314353
return ret;
315354
}
316355

356+
v3d_idle_sms(v3d);
357+
317358
mmu_debug = V3D_READ(V3D_MMU_DEBUG_INFO);
318359
mask = DMA_BIT_MASK(30 + V3D_GET_FIELD(mmu_debug, V3D_MMU_PA_WIDTH));
319360
ret = dma_set_mask_and_coherent(dev, mask);
@@ -325,6 +366,11 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
325366
ident1 = V3D_READ(V3D_HUB_IDENT1);
326367
v3d->ver = (V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_TVER) * 10 +
327368
V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_REV));
369+
/* Make sure that the V3D tech version retrieved from the HW is equal
370+
* to the one advertised by the device tree.
371+
*/
372+
WARN_ON(v3d->ver != gen);
373+
328374
v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES);
329375
WARN_ON(v3d->cores > 1); /* multicore not yet implemented */
330376

@@ -377,7 +423,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
377423
v3d->clk_down_rate =
378424
(clk_get_rate(clk_get_parent(v3d->clk)) / (1 << 4)) + 10000;
379425

380-
if (v3d->ver < 41) {
426+
if (v3d->ver < V3D_GEN_41) {
381427
ret = map_regs(v3d, &v3d->gca_regs, "gca");
382428
if (ret)
383429
goto clk_disable;

drivers/gpu/drm/v3d/v3d_drv.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,18 @@ struct v3d_perfmon {
9494
u64 values[] __counted_by(ncounters);
9595
};
9696

97+
enum v3d_gen {
98+
V3D_GEN_33 = 33,
99+
V3D_GEN_41 = 41,
100+
V3D_GEN_42 = 42,
101+
V3D_GEN_71 = 71,
102+
};
103+
97104
struct v3d_dev {
98105
struct drm_device drm;
99106

100107
/* Short representation (e.g. 33, 41) of the V3D tech version */
101-
int ver;
108+
enum v3d_gen ver;
102109

103110
/* Short representation (e.g. 5, 6) of the V3D tech revision */
104111
int rev;
@@ -205,7 +212,7 @@ to_v3d_dev(struct drm_device *dev)
205212
static inline bool
206213
v3d_has_csd(struct v3d_dev *v3d)
207214
{
208-
return v3d->ver >= 41;
215+
return v3d->ver >= V3D_GEN_41;
209216
}
210217

211218
#define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev)

drivers/gpu/drm/v3d/v3d_gem.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ v3d_init_core(struct v3d_dev *v3d, int core)
2626
* type. If you want the default behavior, you can still put
2727
* "2" in the indirect texture state's output_type field.
2828
*/
29-
if (v3d->ver < 40)
29+
if (v3d->ver < V3D_GEN_41)
3030
V3D_CORE_WRITE(core, V3D_CTL_MISCCFG, V3D_MISCCFG_OVRTMUOUT);
3131

3232
/* Whenever we flush the L2T cache, we always want to flush
@@ -59,7 +59,7 @@ v3d_idle_axi(struct v3d_dev *v3d, int core)
5959
static void
6060
v3d_idle_gca(struct v3d_dev *v3d)
6161
{
62-
if (v3d->ver >= 41)
62+
if (v3d->ver >= V3D_GEN_41)
6363
return;
6464

6565
V3D_GCA_WRITE(V3D_GCA_SAFE_SHUTDOWN, V3D_GCA_SAFE_SHUTDOWN_EN);
@@ -133,13 +133,13 @@ v3d_reset(struct v3d_dev *v3d)
133133
static void
134134
v3d_flush_l3(struct v3d_dev *v3d)
135135
{
136-
if (v3d->ver < 41) {
136+
if (v3d->ver < V3D_GEN_41) {
137137
u32 gca_ctrl = V3D_GCA_READ(V3D_GCA_CACHE_CTRL);
138138

139139
V3D_GCA_WRITE(V3D_GCA_CACHE_CTRL,
140140
gca_ctrl | V3D_GCA_CACHE_CTRL_FLUSH);
141141

142-
if (v3d->ver < 33) {
142+
if (v3d->ver < V3D_GEN_33) {
143143
V3D_GCA_WRITE(V3D_GCA_CACHE_CTRL,
144144
gca_ctrl & ~V3D_GCA_CACHE_CTRL_FLUSH);
145145
}
@@ -152,7 +152,7 @@ v3d_flush_l3(struct v3d_dev *v3d)
152152
static void
153153
v3d_invalidate_l2c(struct v3d_dev *v3d, int core)
154154
{
155-
if (v3d->ver > 32)
155+
if (v3d->ver >= V3D_GEN_33)
156156
return;
157157

158158
V3D_CORE_WRITE(core, V3D_CTL_L2CACTL,

drivers/gpu/drm/v3d/v3d_irq.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ v3d_irq(int irq, void *arg)
143143
/* We shouldn't be triggering these if we have GMP in
144144
* always-allowed mode.
145145
*/
146-
if (v3d->ver < 71 && (intsts & V3D_INT_GMPV))
146+
if (v3d->ver < V3D_GEN_71 && (intsts & V3D_INT_GMPV))
147147
dev_err(v3d->drm.dev, "GMP violation\n");
148148

149149
/* V3D 4.2 wires the hub and core IRQs together, so if we &
@@ -201,7 +201,7 @@ v3d_hub_irq(int irq, void *arg)
201201

202202
V3D_WRITE(V3D_MMU_CTL, V3D_READ(V3D_MMU_CTL));
203203

204-
if (v3d->ver >= 41) {
204+
if (v3d->ver >= V3D_GEN_41) {
205205
axi_id = axi_id >> 5;
206206
if (axi_id < ARRAY_SIZE(v3d41_axi_ids))
207207
client = v3d41_axi_ids[axi_id];
@@ -220,7 +220,7 @@ v3d_hub_irq(int irq, void *arg)
220220
status = IRQ_HANDLED;
221221
}
222222

223-
if (v3d->ver >= 71 && (intsts & V3D_V7_HUB_INT_GMPV)) {
223+
if (v3d->ver >= V3D_GEN_71 && (intsts & V3D_V7_HUB_INT_GMPV)) {
224224
dev_err(v3d->drm.dev, "GMP Violation\n");
225225
status = IRQ_HANDLED;
226226
}

drivers/gpu/drm/v3d/v3d_perfmon.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,10 @@ void v3d_perfmon_init(struct v3d_dev *v3d)
200200
const struct v3d_perf_counter_desc *counters = NULL;
201201
unsigned int max = 0;
202202

203-
if (v3d->ver >= 71) {
203+
if (v3d->ver >= V3D_GEN_71) {
204204
counters = v3d_v71_performance_counters;
205205
max = ARRAY_SIZE(v3d_v71_performance_counters);
206-
} else if (v3d->ver >= 42) {
206+
} else if (v3d->ver >= V3D_GEN_42) {
207207
counters = v3d_v42_performance_counters;
208208
max = ARRAY_SIZE(v3d_v42_performance_counters);
209209
}

0 commit comments

Comments
 (0)