@@ -256,6 +256,7 @@ static const struct adreno_info gpulist[] = {
256
256
},
257
257
.gmem = SZ_512K ,
258
258
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
259
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT ,
259
260
.init = a6xx_gpu_init ,
260
261
}, {
261
262
.rev = ADRENO_REV (6 , 1 , 9 , ANY_ID ),
@@ -266,6 +267,7 @@ static const struct adreno_info gpulist[] = {
266
267
},
267
268
.gmem = SZ_512K ,
268
269
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
270
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT ,
269
271
.init = a6xx_gpu_init ,
270
272
.zapfw = "a615_zap.mdt" ,
271
273
.hwcg = a615_hwcg ,
@@ -278,6 +280,7 @@ static const struct adreno_info gpulist[] = {
278
280
},
279
281
.gmem = SZ_1M ,
280
282
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
283
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT ,
281
284
.init = a6xx_gpu_init ,
282
285
.zapfw = "a630_zap.mdt" ,
283
286
.hwcg = a630_hwcg ,
@@ -290,6 +293,7 @@ static const struct adreno_info gpulist[] = {
290
293
},
291
294
.gmem = SZ_1M ,
292
295
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
296
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT ,
293
297
.init = a6xx_gpu_init ,
294
298
.zapfw = "a640_zap.mdt" ,
295
299
.hwcg = a640_hwcg ,
@@ -302,7 +306,8 @@ static const struct adreno_info gpulist[] = {
302
306
},
303
307
.gmem = SZ_1M + SZ_128K ,
304
308
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
305
- .quirks = ADRENO_QUIRK_HAS_HW_APRIV ,
309
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
310
+ ADRENO_QUIRK_HAS_HW_APRIV ,
306
311
.init = a6xx_gpu_init ,
307
312
.zapfw = "a650_zap.mdt" ,
308
313
.hwcg = a650_hwcg ,
@@ -316,7 +321,8 @@ static const struct adreno_info gpulist[] = {
316
321
},
317
322
.gmem = SZ_1M + SZ_512K ,
318
323
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
319
- .quirks = ADRENO_QUIRK_HAS_HW_APRIV ,
324
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
325
+ ADRENO_QUIRK_HAS_HW_APRIV ,
320
326
.init = a6xx_gpu_init ,
321
327
.zapfw = "a660_zap.mdt" ,
322
328
.hwcg = a660_hwcg ,
@@ -329,7 +335,8 @@ static const struct adreno_info gpulist[] = {
329
335
},
330
336
.gmem = SZ_512K ,
331
337
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
332
- .quirks = ADRENO_QUIRK_HAS_HW_APRIV ,
338
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
339
+ ADRENO_QUIRK_HAS_HW_APRIV ,
333
340
.init = a6xx_gpu_init ,
334
341
.hwcg = a660_hwcg ,
335
342
.address_space_size = SZ_16G ,
@@ -342,6 +349,7 @@ static const struct adreno_info gpulist[] = {
342
349
},
343
350
.gmem = SZ_2M ,
344
351
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
352
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT ,
345
353
.init = a6xx_gpu_init ,
346
354
.zapfw = "a640_zap.mdt" ,
347
355
.hwcg = a640_hwcg ,
@@ -353,7 +361,8 @@ static const struct adreno_info gpulist[] = {
353
361
},
354
362
.gmem = SZ_4M ,
355
363
.inactive_period = DRM_MSM_INACTIVE_PERIOD ,
356
- .quirks = ADRENO_QUIRK_HAS_HW_APRIV ,
364
+ .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT |
365
+ ADRENO_QUIRK_HAS_HW_APRIV ,
357
366
.init = a6xx_gpu_init ,
358
367
.zapfw = "a690_zap.mdt" ,
359
368
.hwcg = a690_hwcg ,
@@ -565,9 +574,9 @@ static int adreno_bind(struct device *dev, struct device *master, void *data)
565
574
if (ret )
566
575
return ret ;
567
576
568
- if ( config . rev . core >= 6 )
569
- if (! adreno_has_gmu_wrapper ( to_adreno_gpu ( gpu )))
570
- priv -> has_cached_coherent = true ;
577
+ priv -> has_cached_coherent =
578
+ !!( info -> quirks & ADRENO_QUIRK_HAS_CACHED_COHERENT ) &&
579
+ ! adreno_has_gmu_wrapper ( to_adreno_gpu ( gpu )) ;
571
580
572
581
return 0 ;
573
582
}
0 commit comments