Lines Matching full:gpu
36 * so it helps to be able to group the GPU devices by generation and if
72 int (*get_timestamp)(struct msm_gpu *gpu, uint64_t *value);
171 * of gpu firmware to linux-firmware, the fw files were
234 * GPU specific offsets will be exported by GPU specific
270 static inline uint8_t adreno_patchid(const struct adreno_gpu *gpu) in adreno_patchid() argument
276 WARN_ON_ONCE(gpu->info->family >= ADRENO_6XX_GEN1); in adreno_patchid()
277 return gpu->chip_id & 0xff; in adreno_patchid()
280 static inline bool adreno_is_revn(const struct adreno_gpu *gpu, uint32_t revn) in adreno_is_revn() argument
282 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_revn()
284 return gpu->info->revn == revn; in adreno_is_revn()
287 static inline bool adreno_has_gmu_wrapper(const struct adreno_gpu *gpu) in adreno_has_gmu_wrapper() argument
289 return gpu->gmu_is_wrapper; in adreno_has_gmu_wrapper()
292 static inline bool adreno_is_a2xx(const struct adreno_gpu *gpu) in adreno_is_a2xx() argument
294 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a2xx()
296 return gpu->info->family <= ADRENO_2XX_GEN2; in adreno_is_a2xx()
299 static inline bool adreno_is_a20x(const struct adreno_gpu *gpu) in adreno_is_a20x() argument
301 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a20x()
303 return gpu->info->family == ADRENO_2XX_GEN1; in adreno_is_a20x()
306 static inline bool adreno_is_a225(const struct adreno_gpu *gpu) in adreno_is_a225() argument
308 return adreno_is_revn(gpu, 225); in adreno_is_a225()
311 static inline bool adreno_is_a305(const struct adreno_gpu *gpu) in adreno_is_a305() argument
313 return adreno_is_revn(gpu, 305); in adreno_is_a305()
316 static inline bool adreno_is_a305b(const struct adreno_gpu *gpu) in adreno_is_a305b() argument
318 return gpu->info->chip_ids[0] == 0x03000512; in adreno_is_a305b()
321 static inline bool adreno_is_a306(const struct adreno_gpu *gpu) in adreno_is_a306() argument
324 return adreno_is_revn(gpu, 307); in adreno_is_a306()
327 static inline bool adreno_is_a306a(const struct adreno_gpu *gpu) in adreno_is_a306a() argument
330 return adreno_is_revn(gpu, 308); in adreno_is_a306a()
333 static inline bool adreno_is_a320(const struct adreno_gpu *gpu) in adreno_is_a320() argument
335 return adreno_is_revn(gpu, 320); in adreno_is_a320()
338 static inline bool adreno_is_a330(const struct adreno_gpu *gpu) in adreno_is_a330() argument
340 return adreno_is_revn(gpu, 330); in adreno_is_a330()
343 static inline bool adreno_is_a330v2(const struct adreno_gpu *gpu) in adreno_is_a330v2() argument
345 return adreno_is_a330(gpu) && (adreno_patchid(gpu) > 0); in adreno_is_a330v2()
348 static inline int adreno_is_a405(const struct adreno_gpu *gpu) in adreno_is_a405() argument
350 return adreno_is_revn(gpu, 405); in adreno_is_a405()
353 static inline int adreno_is_a420(const struct adreno_gpu *gpu) in adreno_is_a420() argument
355 return adreno_is_revn(gpu, 420); in adreno_is_a420()
358 static inline int adreno_is_a430(const struct adreno_gpu *gpu) in adreno_is_a430() argument
360 return adreno_is_revn(gpu, 430); in adreno_is_a430()
363 static inline int adreno_is_a505(const struct adreno_gpu *gpu) in adreno_is_a505() argument
365 return adreno_is_revn(gpu, 505); in adreno_is_a505()
368 static inline int adreno_is_a506(const struct adreno_gpu *gpu) in adreno_is_a506() argument
370 return adreno_is_revn(gpu, 506); in adreno_is_a506()
373 static inline int adreno_is_a508(const struct adreno_gpu *gpu) in adreno_is_a508() argument
375 return adreno_is_revn(gpu, 508); in adreno_is_a508()
378 static inline int adreno_is_a509(const struct adreno_gpu *gpu) in adreno_is_a509() argument
380 return adreno_is_revn(gpu, 509); in adreno_is_a509()
383 static inline int adreno_is_a510(const struct adreno_gpu *gpu) in adreno_is_a510() argument
385 return adreno_is_revn(gpu, 510); in adreno_is_a510()
388 static inline int adreno_is_a512(const struct adreno_gpu *gpu) in adreno_is_a512() argument
390 return adreno_is_revn(gpu, 512); in adreno_is_a512()
393 static inline int adreno_is_a530(const struct adreno_gpu *gpu) in adreno_is_a530() argument
395 return adreno_is_revn(gpu, 530); in adreno_is_a530()
398 static inline int adreno_is_a540(const struct adreno_gpu *gpu) in adreno_is_a540() argument
400 return adreno_is_revn(gpu, 540); in adreno_is_a540()
403 static inline int adreno_is_a610(const struct adreno_gpu *gpu) in adreno_is_a610() argument
405 return adreno_is_revn(gpu, 610); in adreno_is_a610()
408 static inline int adreno_is_a618(const struct adreno_gpu *gpu) in adreno_is_a618() argument
410 return adreno_is_revn(gpu, 618); in adreno_is_a618()
413 static inline int adreno_is_a619(const struct adreno_gpu *gpu) in adreno_is_a619() argument
415 return adreno_is_revn(gpu, 619); in adreno_is_a619()
418 static inline int adreno_is_a619_holi(const struct adreno_gpu *gpu) in adreno_is_a619_holi() argument
420 return adreno_is_a619(gpu) && adreno_has_gmu_wrapper(gpu); in adreno_is_a619_holi()
423 static inline int adreno_is_a621(const struct adreno_gpu *gpu) in adreno_is_a621() argument
425 return gpu->info->chip_ids[0] == 0x06020100; in adreno_is_a621()
428 static inline int adreno_is_a630(const struct adreno_gpu *gpu) in adreno_is_a630() argument
430 return adreno_is_revn(gpu, 630); in adreno_is_a630()
433 static inline int adreno_is_a640(const struct adreno_gpu *gpu) in adreno_is_a640() argument
435 return adreno_is_revn(gpu, 640); in adreno_is_a640()
438 static inline int adreno_is_a650(const struct adreno_gpu *gpu) in adreno_is_a650() argument
440 return adreno_is_revn(gpu, 650); in adreno_is_a650()
443 static inline int adreno_is_7c3(const struct adreno_gpu *gpu) in adreno_is_7c3() argument
445 return gpu->info->chip_ids[0] == 0x06030500; in adreno_is_7c3()
448 static inline int adreno_is_a660(const struct adreno_gpu *gpu) in adreno_is_a660() argument
450 return adreno_is_revn(gpu, 660); in adreno_is_a660()
453 static inline int adreno_is_a680(const struct adreno_gpu *gpu) in adreno_is_a680() argument
455 return adreno_is_revn(gpu, 680); in adreno_is_a680()
458 static inline int adreno_is_a690(const struct adreno_gpu *gpu) in adreno_is_a690() argument
460 return gpu->info->chip_ids[0] == 0x06090000; in adreno_is_a690()
463 static inline int adreno_is_a702(const struct adreno_gpu *gpu) in adreno_is_a702() argument
465 return gpu->info->chip_ids[0] == 0x07000200; in adreno_is_a702()
468 static inline int adreno_is_a610_family(const struct adreno_gpu *gpu) in adreno_is_a610_family() argument
470 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a610_family()
474 return adreno_is_a610(gpu) || adreno_is_a702(gpu); in adreno_is_a610_family()
478 static inline int adreno_is_a615_family(const struct adreno_gpu *gpu) in adreno_is_a615_family() argument
480 return adreno_is_a618(gpu) || in adreno_is_a615_family()
481 adreno_is_a619(gpu); in adreno_is_a615_family()
484 static inline int adreno_is_a630_family(const struct adreno_gpu *gpu) in adreno_is_a630_family() argument
486 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a630_family()
488 return gpu->info->family == ADRENO_6XX_GEN1; in adreno_is_a630_family()
491 static inline int adreno_is_a660_family(const struct adreno_gpu *gpu) in adreno_is_a660_family() argument
493 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a660_family()
495 return gpu->info->family == ADRENO_6XX_GEN4; in adreno_is_a660_family()
499 static inline int adreno_is_a650_family(const struct adreno_gpu *gpu) in adreno_is_a650_family() argument
501 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a650_family()
503 return gpu->info->family == ADRENO_6XX_GEN3 || in adreno_is_a650_family()
504 gpu->info->family == ADRENO_6XX_GEN4; in adreno_is_a650_family()
507 static inline int adreno_is_a640_family(const struct adreno_gpu *gpu) in adreno_is_a640_family() argument
509 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a640_family()
511 return gpu->info->family == ADRENO_6XX_GEN2; in adreno_is_a640_family()
514 static inline int adreno_is_a730(struct adreno_gpu *gpu) in adreno_is_a730() argument
516 return gpu->info->chip_ids[0] == 0x07030001; in adreno_is_a730()
519 static inline int adreno_is_a740(struct adreno_gpu *gpu) in adreno_is_a740() argument
521 return gpu->info->chip_ids[0] == 0x43050a01; in adreno_is_a740()
524 static inline int adreno_is_a750(struct adreno_gpu *gpu) in adreno_is_a750() argument
526 return gpu->info->chip_ids[0] == 0x43051401; in adreno_is_a750()
529 static inline int adreno_is_x185(struct adreno_gpu *gpu) in adreno_is_x185() argument
531 return gpu->info->chip_ids[0] == 0x43050c01; in adreno_is_x185()
534 static inline int adreno_is_a740_family(struct adreno_gpu *gpu) in adreno_is_a740_family() argument
536 if (WARN_ON_ONCE(!gpu->info)) in adreno_is_a740_family()
538 return gpu->info->family == ADRENO_7XX_GEN2 || in adreno_is_a740_family()
539 gpu->info->family == ADRENO_7XX_GEN3; in adreno_is_a740_family()
542 static inline int adreno_is_a7xx(struct adreno_gpu *gpu) in adreno_is_a7xx() argument
545 return gpu->info->family == ADRENO_7XX_GEN1 || in adreno_is_a7xx()
546 adreno_is_a740_family(gpu); in adreno_is_a7xx()
549 u64 adreno_private_address_space_size(struct msm_gpu *gpu);
550 int adreno_get_param(struct msm_gpu *gpu, struct msm_file_private *ctx,
552 int adreno_set_param(struct msm_gpu *gpu, struct msm_file_private *ctx,
556 struct drm_gem_object *adreno_fw_create_bo(struct msm_gpu *gpu,
558 int adreno_hw_init(struct msm_gpu *gpu);
559 void adreno_recover(struct msm_gpu *gpu);
560 void adreno_flush(struct msm_gpu *gpu, struct msm_ringbuffer *ring, u32 reg);
561 bool adreno_idle(struct msm_gpu *gpu, struct msm_ringbuffer *ring);
563 void adreno_show(struct msm_gpu *gpu, struct msm_gpu_state *state,
566 void adreno_dump_info(struct msm_gpu *gpu);
567 void adreno_dump(struct msm_gpu *gpu);
569 struct msm_ringbuffer *adreno_active_ring(struct msm_gpu *gpu);
576 struct adreno_gpu *gpu, const struct adreno_gpu_funcs *funcs,
578 void adreno_gpu_cleanup(struct adreno_gpu *gpu);
583 int adreno_gpu_state_get(struct msm_gpu *gpu, struct msm_gpu_state *state);
593 adreno_create_address_space(struct msm_gpu *gpu,
597 adreno_iommu_create_address_space(struct msm_gpu *gpu,
601 int adreno_fault_handler(struct msm_gpu *gpu, unsigned long iova, int flags,
608 * For a5xx and a6xx targets load the zap shader that is used to pull the GPU
611 int adreno_zap_shader_load(struct msm_gpu *gpu, u32 pasid);
703 #define gpu_poll_timeout(gpu, addr, val, cond, interval, timeout) \ argument
704 readl_poll_timeout((gpu)->mmio + ((addr) << 2), val, cond, \