Skip to content

Commit c2777ee

Browse files
mairacanalpopcornmix
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 <[email protected]> Signed-off-by: Maíra Canal <[email protected]>
1 parent 876c499 commit c2777ee

File tree

7 files changed

+100
-84
lines changed

7 files changed

+100
-84
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: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ static int v3d_get_param_ioctl(struct drm_device *dev, void *data,
9696
args->value = 1;
9797
return 0;
9898
case DRM_V3D_PARAM_SUPPORTS_PERFMON:
99-
args->value = (v3d->ver >= 40);
99+
args->value = (v3d->ver >= V3D_GEN_41);
100100
return 0;
101101
case DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT:
102102
args->value = 1;
@@ -258,10 +258,10 @@ static const struct drm_driver v3d_drm_driver = {
258258
};
259259

260260
static const struct of_device_id v3d_of_match[] = {
261-
{ .compatible = "brcm,2711-v3d" },
262-
{ .compatible = "brcm,2712-v3d" },
263-
{ .compatible = "brcm,7268-v3d" },
264-
{ .compatible = "brcm,7278-v3d" },
261+
{ .compatible = "brcm,2711-v3d", .data = (void *)V3D_GEN_42 },
262+
{ .compatible = "brcm,2712-v3d", .data = (void *)V3D_GEN_71 },
263+
{ .compatible = "brcm,7268-v3d", .data = (void *)V3D_GEN_33 },
264+
{ .compatible = "brcm,7278-v3d", .data = (void *)V3D_GEN_41 },
265265
{},
266266
};
267267
MODULE_DEVICE_TABLE(of, v3d_of_match);
@@ -280,6 +280,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
280280
struct device_node *node;
281281
struct drm_device *drm;
282282
struct v3d_dev *v3d;
283+
enum v3d_gen gen;
283284
int ret;
284285
u32 mmu_debug;
285286
u32 ident1, ident3;
@@ -293,6 +294,9 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
293294

294295
platform_set_drvdata(pdev, drm);
295296

297+
gen = (enum v3d_gen)of_device_get_match_data(dev);
298+
v3d->ver = gen;
299+
296300
ret = map_regs(v3d, &v3d->hub_regs, "hub");
297301
if (ret)
298302
return ret;
@@ -322,6 +326,11 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
322326
ident1 = V3D_READ(V3D_HUB_IDENT1);
323327
v3d->ver = (V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_TVER) * 10 +
324328
V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_REV));
329+
/* Make sure that the V3D tech version retrieved from the HW is equal
330+
* to the one advertised by the device tree.
331+
*/
332+
WARN_ON(v3d->ver != gen);
333+
325334
v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES);
326335
WARN_ON(v3d->cores > 1); /* multicore not yet implemented */
327336

@@ -374,7 +383,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
374383
v3d->clk_down_rate =
375384
(clk_get_rate(clk_get_parent(v3d->clk)) / (1 << 4)) + 10000;
376385

377-
if (v3d->ver < 41) {
386+
if (v3d->ver < V3D_GEN_41) {
378387
ret = map_regs(v3d, &v3d->gca_regs, "gca");
379388
if (ret)
380389
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
}

drivers/gpu/drm/v3d/v3d_sched.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,11 @@ v3d_tfu_job_run(struct drm_sched_job *sched_job)
357357
V3D_WRITE(V3D_TFU_ICA(v3d->ver), job->args.ica);
358358
V3D_WRITE(V3D_TFU_IUA(v3d->ver), job->args.iua);
359359
V3D_WRITE(V3D_TFU_IOA(v3d->ver), job->args.ioa);
360-
if (v3d->ver >= 71)
360+
if (v3d->ver >= V3D_GEN_71)
361361
V3D_WRITE(V3D_V7_TFU_IOC, job->args.v71.ioc);
362362
V3D_WRITE(V3D_TFU_IOS(v3d->ver), job->args.ios);
363363
V3D_WRITE(V3D_TFU_COEF0(v3d->ver), job->args.coef[0]);
364-
if (v3d->ver >= 71 || (job->args.coef[0] & V3D_TFU_COEF0_USECOEF)) {
364+
if (v3d->ver >= V3D_GEN_71 || (job->args.coef[0] & V3D_TFU_COEF0_USECOEF)) {
365365
V3D_WRITE(V3D_TFU_COEF1(v3d->ver), job->args.coef[1]);
366366
V3D_WRITE(V3D_TFU_COEF2(v3d->ver), job->args.coef[2]);
367367
V3D_WRITE(V3D_TFU_COEF3(v3d->ver), job->args.coef[3]);
@@ -412,7 +412,7 @@ v3d_csd_job_run(struct drm_sched_job *sched_job)
412412
*
413413
* XXX: Set the CFG7 register
414414
*/
415-
if (v3d->ver >= 71)
415+
if (v3d->ver >= V3D_GEN_71)
416416
V3D_CORE_WRITE(0, V3D_V7_CSD_QUEUED_CFG7, 0);
417417

418418
/* CFG0 write kicks off the job. */

0 commit comments

Comments
 (0)